+
     h>  c                   s   R t ^ RIt^ RIt^ RIt^ RIHt ^RIHt ^RIHt ^RIH	t
 ^RIHt ^RIHt ^RIHt ^R	IHt ^R
IHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt . t]P.                  ! 4       t]P2                  t]
P4                  ]P6                  ]
P8                  ]P:                  ]
P<                  ]P>                  ]
P@                  ]PB                  ]
PD                  ]PF                  ]
PH                  ]PJ                  ]
PL                  ]PN                  ]
PP                  ]PR                  ]
PT                  ]PV                  ]
PX                  ]PZ                  ]
P\                  ]P^                  ]
P`                  ]Pb                  /t2]
Pf                  ]Ph                  ]
Pj                  ]Pl                  ]
Pn                  ]Pp                  ]
Pr                  ]Pt                  ]
Pv                  ]Px                  /t=]>! ^ ^^^^^^^^^	^
R7      t?]>! ^ ^^^^^^^R7      t@]! R. R)O4      tA]! R. R*O4      tB]! R. R+O4      tC]! R]CP                  R,,           4      tER tFR tGR tHR tIR tJR tKR tLR tM]P                  tN]
P                  tOR-R ltPR tQ]
P                  tR]P                  tSR.R  ltTR! tUR" tVR# tWR$ tX]P                  tYR% tZR& t[ ! R' R(4      t\R# )/zmacOS platform implementation.N)
namedtuple)_common)_psposix)_psutil_osx)_psutil_posix)AccessDenied)NoSuchProcess)ZombieProcess)	conn_tmap)conn_to_ntuple)isfile_strict)memoize_when_activated)parse_environ_block)usage_percent)ppidruideuidsuidrgidegidsgidttynrctimestatusname)cpuutimecpustimerssvmspfaultspageins
numthreadsvolctxsw	scputimessvmempmempfullmemc            
     s    \         P                  ! 4       w  rr#rEW$,           pW,           pWE,          p\        W,
          V ^R7      p\        WWWAW#4      # )z&System virtual memory as a namedtuple.Zround_)cextZvirtual_memr   r"   )	totalactiveinactivewiredfreeZspeculativeZavailusedpercent	            4/usr/lib64/python3.14/site-packages/psutil/_psosx.pyvirtual_memoryr0   o   sR    8<8H8H8J5E8D OE>D 	DU]U1=GwdHLL    c                 s~    \         P                  ! 4       w  rr#p\        W^R7      p\        P                  ! WW%W44      # )z=Swap system memory as a (total, used, free, sin, sout) tuple.r%   )r&   Zswap_memr   r   Zsswap)r'   r,   r+   ZsinZsoutr-   s         r/   swap_memoryr2   ~   s3    #'==? EDD2G==dS??r1   c                 sJ    \         P                  ! 4       w  rr#\        WW#4      # )z(Return system CPU times as a namedtuple.)r&   	cpu_timesr!   usernicesystemidle       r/   r3   r3      s     #~~/DT..r1   c                 s    . p \         P                  ! 4        F%  pVw  r#rE\        W#WE4      pV P                  V4       K'  	  V # )z)Return system CPU times as a named tuple.)r&   per_cpu_timesr!   append)retZcpu_tr5   r6   r7   r8   items          r/   r:   r:      sC    
C##%#( FV2

4 & Jr1   c                 ,    \         P                  ! 4       # )z0Return the number of logical CPUs in the system.)r&   cpu_count_logical r1   r/   r?   r?      s    !!##r1   c                 r>   )z-Return the number of CPU cores in the system.)r&   cpu_count_coresr@   r1   r/   rA   rA      s    !!r1   c                  sb    \         P                  ! 4       w  rr#p\        P                  ! WW#4      # N)r&   	cpu_statsr   Z	scpustats)Zctx_switchesZ
interruptsZsoft_interruptsZsyscallsZ_trapss        r/   rC   rC      s2     @Lo / r1   c                 sb    \         P                  ! 4       w  rp\        P                  ! WV4      .# )zReturn CPU frequency.
On macOS per-cpu frequency is not supported.
Also, the returned frequency never changes, see:
https://arstechnica.com/civis/viewtopic.php?f=19&t=465002.
)r&   cpu_freqr   Zscpufreq)ZcurrZmin_Zmax_s      r/   rD   rD      s*     }}DT.//r1   c                sZ   . p\         P                  ! 4       pV F  pVw  rErgVR8X  d   RpV '       gM   \        P                  P	                  V4      '       d&   \        P                  P                  V4      '       g   Ke  \        P                  ! WEWg4      pVP                  V4       K  	  V# )z8Return mounted disk partitions as a list of namedtuples.Znone )	r&   disk_partitionsospathZisabsZexistsr   Z	sdiskpartr;   )	ZallretlistZ
partitionsZ	partitionZdeviceZ
mountpointZfstypeZoptsntuples	   &        r/   rF   rF      s    G%%'J	+4(FVF77==((v0F0F""6vDv   Nr1   c                 s    \         P                  ! 4       w  rpT^8H  pT'       d   \        P                  pM!TR8X  d   \        P
                  pM	T^<,          p\        P                  ! YT4      #   \         d     R# i ; i)zReturn battery information.Ni)r&   sensors_batteryZNotImplementedErrorr   ZPOWER_TIME_UNLIMITEDZPOWER_TIME_UNKNOWNZsbattery)r-   ZminsleftZpower_pluggedZsecsleftr9   r/   rK   rK      sv    +/+?+?+A(= "Q&M//	R--b=G}==  s   A0 0A?>A?c                s   . p\        4        Fg  p \        V4      P                  V 4      pV'       dB   V F9  p\        V4      V.,           pVP	                  \
        P                  ! V!  4       K;  	  Kg  Ki  	  V#   \         d     K{  i ; i)z System-wide network connections.)pidsProcessnet_connectionsZlistr;   r   Zsconnr   )kindr<   pidZconsZcs   &    r/   rN   rN      s     Cv	23<//5D AQ3%AJJw}}a01    J  		s   A::B	B	c                 s    \        4       P                  4       p / pV  F  p \        P                  ! V4      p\        P                  ! V4      p\        P
                  ! V4      w  rV\        \        R4      '       d   \        P                  ! V4      pRP                  V4      pRV9   p\        P                  ! WWcV4      W&   K  	  V#   \         d,   p	T	P                  \        P                  8w  d   h  Rp	?	K  Rp	?	ii ; i)z)Get NIC stats (isup, duplex, speed, mtu).	NicDuplexZ,ZrunningN)net_io_countersZkeys
cext_posixZ
net_if_mtuZnet_if_flagsZnet_if_duplex_speedZhasattrr   rQ   ZjoinZ	snicstatsOSErrorerrnoZENODEV)
Znamesr<   r   ZmtuZflagsZduplexZspeedZoutput_flagsZisuperrs
             r/   net_if_statsrW     s    ""$E
C	''-C++D1E&::4@MF w,, **6288E?L%D))e,CI " J  	yyELL( )	s   ACC= C88C=c                 r>   )z:The system boot time expressed in seconds since the epoch.)r&   	boot_timer@   r1   r/   rX   rX     s    >>r1   c                 s    . p \         P                  ! 4       pV FY  pVw  r4rVpVR8X  d   K  V'       g   K  \        P                  ! Y4;'       g    RT;'       g    RWg4      pV P	                  V4       K[  	  V # )z:Return currently connected users as a list of namedtuples.Z~N)r&   usersr   Zsuserr;   )	rI   rawlistr=   r5   ZttyZhostnameZtstamprP   ntr.   r/   rY   rY   #  sk    GjjlG+/(8S#:]]4h.>.>$Lr  Nr1   c                  s    \         P                  ! 4       p ^ V 9  d/    \        ^ 4      P                  4        V P	                  ^ ^ 4       V # V #   \
         d     T # \         d    T P	                  ^ ^ 4        T # i ; ii    )r&   rL   rM   create_timeZinsertr   r   )Zlss    r/   rL   rL   7  sx    	B{	AJ""$IIaO
 I2I	  	 I  	IIaOI	s   +A A;A;$A;:A;c                 s     \         P                  ! V 4      \        R ,          ,          pV\         P                  8H  #   \         d     R# i ; i)r   F)r&   proc_kinfo_oneshotkinfo_proc_mapSZOMBrT   )rP   Zst   & r/   	is_zombierb   J  sB    $$S).*BCTZZ s   := AAc                sF   a  \         P                  ! S 4      V 3R l4       pV# )zXDecorator which translates bare OSError exceptions into
NoSuchProcess and AccessDenied.
c                 s  < V P                   V P                  V P                  rTp S! V .VO5/ VB #   \         d0   p\	        T4      '       d   \        Y5T4      Th\        Y54      ThR p?i\         d   p\        Y54      ThR p?ii ; irB   )	rP   _ppid_nameZProcessLookupErrorrb   r   r   ZPermissionErrorr   )selfZargsZkwargsrP   r   r   rV   funs   &*,    r/   wrapperZ wrap_exceptions.<locals>.wrapperW  s    ((DJJ

4	3t-d-f--! 	4~~#Ct4#=*3 	3s)s2	3s&   2 B*A''B4B5BB)	functoolsZwraps)rf   rg   s   f r/   wrap_exceptionsri   R  s'    
 __S	3 	3 Nr1   c                   s  a  ] tR tRt o Rt. R!OtR t]]R 4       4       t	]]R 4       4       t
R tR t]R 4       t]R	 4       t]R
 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R"R l4       t]R 4       t]R#R l4       t]R 4       t ]R 4       t!]R 4       t"]R 4       t#R t$V t%R# )$rM   if  z1Wrapper class around underlying C implementation.c                s.    Wn         R V n        R V n        R # rB   )rP   rd   rc   )re   rP      &&r/   __init__ZProcess.__init__k  s    

r1   c                F    \         P                  ! V P                  4      pV# rB   )r&   r^   rP   re   r<   ra   r/   _get_kinfo_procZProcess._get_kinfo_procp  s     %%dhh/
r1   c                rl   rB   )r&   Zproc_pidtaskinfo_oneshotrP   rm   ra   r/   _get_pidtaskinfoZProcess._get_pidtaskinfox  s     ++DHH5
r1   c                r    V P                   P                  V 4       V P                  P                  V 4       R # rB   )rn   Zcache_activatero   re      &r/   oneshot_enterZProcess.oneshot_enter  s*    ++D1,,T2r1   c                rp   rB   )rn   Zcache_deactivatero   rq   rr   r/   oneshot_exitZProcess.oneshot_exit  s*    --d3..t4r1   c                s    V P                  4       \        R ,          ,          pVe   V# \        P                  ! V P                  4      # )r   )rn   r_   r&   Z	proc_namerP   )re   r   ra   r/   r   ZProcess.name  s7    ##%nV&<='tET^^DHH-EEr1   c                B    \         P                  ! V P                  4      # rB   )r&   Zproc_exerP   rq   rr   r/   exeZProcess.exe      }}TXX&&r1   c                ru   rB   )r&   Zproc_cmdlinerP   rq   rr   r/   cmdlineZProcess.cmdline  s      **r1   c                sT    \        \        P                  ! V P                  4      4      # rB   )r   r&   Zproc_environrP   rq   rr   r/   environZProcess.environ  s    "4#4#4TXX#>??r1   c                sh    V P                  4       \        R ,          ,          V n        V P                  # )r   )rn   r_   rc   rq   rr   r/   r   ZProcess.ppid  s&    ))+N6,BC
zzr1   c                ru   rB   )r&   Zproc_cwdrP   rq   rr   r/   cwdZProcess.cwd  rw   r1   c                    V P                  4       p\        P                  ! V\        R ,          ,          V\        R,          ,          V\        R,          ,          4      # )r   r   r   rn   r   Zpuidsr_   re   Zrawtuplera   r/   uidsZProcess.uids  H    '')}}^F+,^F+,^F+,
 	
r1   c                r{   )r   r   r   r|   r}   ra   r/   gidsZProcess.gids  r   r1   c                s    V P                  4       \        R ,          ,          p\        P                  ! 4       p W!,          #   \         d     R# i ; i)r   N)rn   r_   r   Zget_terminal_mapZKeyError)re   Ztty_nrZtmap   &  r/   terminalZProcess.terminal  sG    %%'w(?@((*	< 		s   A AAc                s    V P                  4       p\        V\        R ,          ,          V\        R,          ,          V\        R,          ,          V\        R,          ,          4      # r   r   r   r   )ro   r#   pidtaskinfo_mapr}   ra   r/   memory_infoZProcess.memory_info  sQ    ((*_U+,_U+,_Y/0_Y/0	
 	
r1   c                s    V P                  4       p\        P                  ! V P                  4      p\	        W3,           !  # rB   )r   r&   Zproc_memory_ussrP   r$   )re   Z	basic_memussr   r/   memory_full_infoZProcess.memory_full_info  s4    $$&	""488,V+,,r1   c                s    V P                  4       p\        P                  ! V\        R ,          ,          V\        R,          ,          RR4      # )r   r   g        )ro   r   Z	pcputimesr   r}   ra   r/   r3   ZProcess.cpu_times  sC    ((*  _Z01_Z01
 	
r1   c                F    V P                  4       \        R ,          ,          # )r   )rn   r_   rq   rr   r/   r]   ZProcess.create_time  s    ##%nW&=>>r1   c                st    V P                  4       \        R ,          ,          p\        P                  ! V^ 4      # )r    )ro   r   r   Zpctxsw)re   Zvolra   r/   num_ctx_switchesZProcess.num_ctx_switches  s-    
 ##%oj&AB~~c1%%r1   c                r   )r   )ro   r   rq   rr   r/   num_threadsZProcess.num_threads  s    $$&|'DEEr1   c                s    V P                   ^ 8X  d   . # . p\        P                  ! V P                   4      pV F?  w  r4\        V4      '       g   K  \        P
                  ! W44      pVP                  V4       KA  	  V# r\   )rP   r&   Zproc_open_filesr
   r   Z	popenfiler;   )re   ZfilesrZ   rH   fdrJ   s   &     r/   
open_filesZProcess.open_files  se    88q=I&&txx0HDT"" **44V$   r1   c           
     s    \         V,          w  r#\        P                  ! V P                  W#4      p. pV F,  pVw  rxrr\	        WxWW\
        4      pVP                  V4       K.  	  V# rB   )r   r&   Zproc_net_connectionsrP   r	   TCP_STATUSESr;   )re   rO   ZfamiliesZtypesrZ   r<   r=   r   ZfamZtypeZladdrZraddrr   r[   s   &&            r/   rN   ZProcess.net_connections  se    #D/++DHHhFD26/BT%e\B JJrN  
r1   c                sh    V P                   ^ 8X  d   ^ # \        P                  ! V P                   4      # r\   )rP   r&   Zproc_num_fdsrq   rr   r/   num_fdsZProcess.num_fds  s%    88q=  **r1   Nc                sX    \         P                  ! V P                  WP                  4      # rB   )r   Zwait_pidrP   rd   )re   Ztimeoutrj   r/   waitZProcess.wait  s      7JJ??r1   c                ru   rB   )rS   ZgetpriorityrP   rq   rr   r/   nice_getZProcess.nice_get  s    %%dhh//r1   c                sD    \         P                  ! V P                  V4      # rB   )rS   ZsetpriorityrP   )re   Zvaluerj   r/   nice_setZProcess.nice_set  s    %%dhh66r1   c                sr    V P                  4       \        R ,          ,          p\        P                  VR4      # )r   Z?)rn   r_   PROC_STATUSESZget)re   Zcodera   r/   r   ZProcess.status  s-    ##%nX&>?  s++r1   c                s    \         P                  ! V P                  4      p. pV F.  w  r4p\        P                  ! W4V4      pVP                  V4       K0  	  V# rB   )r&   Zproc_threadsrP   r   Zpthreadr;   )re   rZ   rI   Z	thread_idZutimeZstimerJ   s   &      r/   threadsZProcess.threads  sM    ##DHH-'.#Ie__Yu=FNN6" (/ r1   )rd   rc   rP   )Z_cacherd   rc   rP   ZinetrB   )&Z__name__Z
__module__Z__qualname__Z__firstlineno____doc__Z	__slots__rk   ri   r   rn   ro   rs   rt   r   rv   rx   ry   r   rz   r~   r   r   r   r   r3   r]   r   r   r   rN   r   r   r   r   r   r   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r/   rM   rM   f  s(    ;3I
      35 F F ' ' + + @ @   ' ' 
 
 
 
   
 
 - -
 
 
 ? ? & & F F 	 	 
 
 + +
 @ @ 0 0 7 7 , ,
  r1   rM   r4   )r'   Z	availabler-   r,   r+   r(   r)   r*   r   )r   )Fr   )]r   rU   rh   rG   Zcollectionsr    rE   r   r   r   r&   r   rS   r   r   r   r   r	   r
   r   r   r   Z__extra__all__ZgetpagesizeZPAGESIZEZAF_LINKZTCPS_ESTABLISHEDZCONN_ESTABLISHEDZTCPS_SYN_SENTZCONN_SYN_SENTZTCPS_SYN_RECEIVEDZCONN_SYN_RECVZTCPS_FIN_WAIT_1ZCONN_FIN_WAIT1ZTCPS_FIN_WAIT_2ZCONN_FIN_WAIT2ZTCPS_TIME_WAITZCONN_TIME_WAITZTCPS_CLOSEDZ
CONN_CLOSEZTCPS_CLOSE_WAITZCONN_CLOSE_WAITZTCPS_LAST_ACKZCONN_LAST_ACKZTCPS_LISTENZCONN_LISTENZTCPS_CLOSINGZCONN_CLOSINGZPSUTIL_CONN_NONEZ	CONN_NONEr   ZSIDLZSTATUS_IDLEZSRUNZSTATUS_RUNNINGZSSLEEPZSTATUS_SLEEPINGZSSTOPZSTATUS_STOPPEDr`   ZSTATUS_ZOMBIEr   Zdictr_   r   r!   r"   r#   Z_fieldsr$   r0   r2   r3   r:   r?   rA   rC   rD   Z
disk_usageZdisk_io_countersrF   rK   rR   Znet_if_addrsrN   rW   rX   rY   rL   Z
pid_existsrb   ri   rM   r@   r1   r/   <module>r      s  
 %   	 "   ! ) ! " "  # " + ( "  !!#


 	733--G11'00'00//g(('11--g))w++7,,  	IIw""IIw%%KK((JJ&&JJ%% 	
	
	
	
	
	
	


	 			& {$FG	 -	. &>?j$,,":;M@/$
"
0   
(( *>, &&&&$:
(    
(z zr1   