
    Xh*A                     &   d Z ddlZddlZddlZddlmZ ddlmZ ddlmZ ddlm	Z
 ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ g Z ej0                         Zej4                  Ze
j6                  ej8                  e
j:                  ej<                  e
j>                  ej@                  e
jB                  ejD                  e
jF                  ejH                  e
jJ                  ejL                  e
jN                  ejP                  e
jR                  ejT                  e
jV                  ejX                  e
jZ                  ej\                  e
j^                  ej`                  e
jb                  ejd                  iZ3e
jh                  ejj                  e
jl                  ejn                  e
jp                  ejr                  e
jt                  ejv                  e
jx                  ejz                  iZ> e?ddddddddddd      Z@ e?dddddddd      ZA edg d      ZB ed g d!      ZC ed"g d#      ZD ed$eDj                  d%z         ZFd& ZGd' ZHd( ZId) ZJd* ZKd+ ZLd, ZM e
j                         rd- ZOej                  ZPe
j                  ZQd;d.ZRd/ ZSe
j                  ZTej                  ZUd<d0ZVd1 ZWd2 ZX	  eX       ZYd4 Z\d5 Z]d6 Z^ej                  Z_d7 Z`d8 Za G d9 d:      Zby# eZ$ rZ[ ed3e[       dZYY dZ[[[=dZ[[[ww xY w)=zmacOS platform implementation.    N)
namedtuple   )_common)_psposix)_psutil_osx)_psutil_posix)AccessDenied)NoSuchProcess)ZombieProcess)	conn_tmap)conn_to_ntuple)debug)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usernicesystemidlesvmem)total	availablepercentusedfreeactiveinactivewiredpmem)r)   r*   r+   r,   pfullmem)ussc            
          t        j                         \  } }}}}}||z   }||z   }||z  }t        | |z
  | d      }t        | |||||||      S )z&System virtual memory as a namedtuple.r   round_)cextvirtual_memr   r5   )	r6   r;   r<   r=   r:   speculativeavailr9   r8   s	            A/var/www/html/myenv/lib/python3.12/site-packages/psutil/_psosx.pyvirtual_memoryrI   o   sh    8<8H8H8J5E68UD+ tOEE>D 	KDUU]U1=GwdFHeLL    c                      t        j                         \  } }}}}t        || d      }t        j                  | |||||      S )z=Swap system memory as a (total, used, free, sin, sout) tuple.r   rB   )rD   swap_memr   r   sswap)r6   r9   r:   sinsoutr8   s         rH   swap_memoryrP   ~   s?    #'==? E4sDD%2G==dGS$??rJ   c                  P    t        j                         \  } }}}t        | |||      S )z(Return system CPU times as a namedtuple.)rD   	cpu_timesr/   r0   s       rH   rR   rR      s(    #~~/D$T4..rJ   c                      g } t        j                         D ](  }|\  }}}}t        ||||      }| j                  |       * | S )z)Return system CPU times as a named tuple.)rD   per_cpu_timesr/   append)retcpu_tr1   r2   r3   r4   items          rH   rT   rT      sP    
C##% #( dFDtVT2

4 JrJ   c                  *    t        j                         S )z0Return the number of logical CPUs in the system.)rD   cpu_count_logical rJ   rH   rZ   rZ      s    !!##rJ   c                  *    t        j                         S )z-Return the number of CPU cores in the system.)rD   cpu_count_coresr[   rJ   rH   r]   r]      s    !!rJ   c                  f    t        j                         \  } }}}}t        j                  | |||      S N)rD   	cpu_statsr   	scpustats)ctx_switches
interruptssoft_interruptssyscalls_trapss        rH   r`   r`      s:     @L*ox j/8 rJ   c                  b    t        j                         \  } }}t        j                  | ||      gS )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.
        )rD   cpu_freqr   scpufreq)currmin_max_s      rH   rh   rh      s.      ==?dD  tT233rJ   c                 0   g }t        j                         }|D ]z  }|\  }}}}|dk(  rd}| s?t        j                  j	                  |      rt        j                  j                  |      sRt        j                  ||||      }|j                  |       | |S )z8Return mounted disk partitions as a list of namedtuples.none )	rD   disk_partitionsospathisabsexistsr   	sdiskpartrU   )	allretlist
partitions	partitiondevice
mountpointfstypeoptsntuples	            rH   rp   rp      s    G%%'J 	+4(
FDVF77==(v0F""6:vtDv NrJ   c                      	 t        j                         \  } }}|dk(  }|rt        j                  }n|dk(  rt        j
                  }n|dz  }t        j                  | ||      S # t        $ r Y yw xY w)zReturn battery information.Nr   <   )rD   sensors_batteryNotImplementedErrorr   POWER_TIME_UNLIMITEDPOWER_TIME_UNKNOWNsbattery)r8   minsleftpower_pluggedsecslefts       rH   r   r      sz    +/+?+?+A(= "Q&M//	R--b=GX}==  s   A$ $	A0/A0c                     g }t               D ]W  }	 t        |      j                  |       }|s!|D ]2  }t        |      |gz   }|j	                  t        j                  |        4 Y |S # t        $ r Y gw xY w)z System-wide network connections.)pidsProcessnet_connectionslistrU   r   sconnr
   )kindrV   pidconscs        rH   r   r      s     Cv 	2	23<//5D  2AQ3%AJJw}}a012	2 J  		s   A))	A54A5c                     t               j                         } i }| D ]  }	 t        j                  |      }t        j                  |      }t        j
                  |      \  }}t        t        d      rt        j                  |      }dj                  |      }d|v }t        j                  |||||      ||<    |S # t        $ r(}	|	j                  t        j                  k7  r Y d}	~	d}	~	ww xY w)z)Get NIC stats (isup, duplex, speed, mtu).	NicDuplex,runningN)net_io_counterskeys
cext_posix
net_if_mtunet_if_flagsnet_if_duplex_speedhasattrr   r   join	snicstatsOSErrorerrnoENODEV)
namesrV   r&   mtuflagsduplexspeedoutput_flagsisuperrs
             rH   net_if_statsr     s    ""$E
C 	''-C++D1E&::4@MFE w, **6288E?L%D))feS,CI" J  	yyELL( )	s   AB==	C.C))C.c                  *    t        j                         S )z:The system boot time expressed in seconds since the epoch.)rD   	boot_timer[   rJ   rH   r   r      s    >>rJ   zignoring exception on import: c                     t         dk(  r| S t         t               z
  }|dk(  st        |      dk  r| S t        d       |dk  r| |z
  S | |z   S )z!Account for system clock updates.r   r   z9system clock was updated; adjusting process create_time())INIT_BOOT_TIMEr   absr   )r$   diffs     rH   adjust_proc_create_timer   -  sU    IK'DqyCIM	
EFaxt|4<rJ   c                      g } t        j                         }|D ]E  }|\  }}}}}|dk(  r|st        j                  ||xs d|xs d||      }| j	                  |       G | S )z:Return currently connected users as a list of namedtuples.~N)r   usersr   suserrU   )	rw   rawlistrX   r1   ttyhostnametstampr   nts	            rH   r   r   <  sv    G G +/(c8VS#:]]4h.>$Lr NrJ   c                      t        j                         } d| vr.	 t        d      j                          | j	                  dd       | S | S # t
        $ r Y | S t        $ r | j	                  dd       Y | S w xY wNr   )rD   r   r   create_timeinsertr
   r	   )lss    rH   r   r   P  sx    	B{	AJ""$IIaO
 I2I	  	 I  	IIaOI	s   +A	 		A3A32A3c                     	 t        j                  |       t        d      }|t         j                  k(  S # t        $ r Y yw xY w)Nr%   F)rD   proc_kinfo_oneshotkinfo_proc_mapSZOMBr   )r   sts     rH   	is_zombier   c  sB    $$S).*BCTZZ s   14 	A A c                 B     t        j                          fd       }|S )z`Decorator which translates bare OSError exceptions into
    NoSuchProcess and AccessDenied.
    c                    | j                   | j                  | j                  }}}	  | g|i |S # t        $ r+}t	        |      rt        |||      |t        ||      |d }~wt        $ r}t        ||      |d }~ww xY wr_   )	r   _ppid_nameProcessLookupErrorr   r   r
   PermissionErrorr	   )selfargskwargsr   r   r&   r   funs          rH   wrapperz wrap_exceptions.<locals>.wrapperp  s    ((DJJ

4T	3t-d-f--! 	4~#Ct4#=T*3 	3sD)s2	3s    3 	B &A""B .A;;B )	functoolswraps)r   r   s   ` rH   wrap_exceptionsr   k  s'    
 __S	3 	3 NrJ   c                      e Zd ZdZg dZd Zeed               Zeed               Z	d Z
d Zed        Zed	        Zed
        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed d       Zed        Zed        Zed        Zed!d       Zed        Zed"d       Zed        Zed        Z ed        Z!ed        Z"y)#r   z1Wrapper class around underlying C implementation.)_cacher   r   r   c                 .    || _         d | _        d | _        y r_   )r   r   r   )r   r   s     rH   __init__zProcess.__init__  s    

rJ   c                 ~    t        j                  | j                        }t        |      t        t              k(  sJ |S r_   )rD   r   r   lenr   r   rV   s     rH   _get_kinfo_proczProcess._get_kinfo_proc  s4     %%dhh/3x3~....
rJ   c                 ~    t        j                  | j                        }t        |      t        t              k(  sJ |S r_   )rD   proc_pidtaskinfo_oneshotr   r   pidtaskinfo_mapr   s     rH   _get_pidtaskinfozProcess._get_pidtaskinfo  s4     ++DHH53x3////
rJ   c                 p    | j                   j                  |        | j                  j                  |        y r_   )r   cache_activater   r   s    rH   oneshot_enterzProcess.oneshot_enter  s*    ++D1,,T2rJ   c                 p    | j                   j                  |        | j                  j                  |        y r_   )r   cache_deactivater   r   s    rH   oneshot_exitzProcess.oneshot_exit  s*    --d3..t4rJ   c                 |    | j                         t        d      }||S t        j                  | j                        S )Nr&   )r   r   rD   	proc_namer   )r   r&   s     rH   r&   zProcess.name  s7    ##%nV&<='tET^^DHH-EErJ   c                 @    t        j                  | j                        S r_   )rD   proc_exer   r   s    rH   exezProcess.exe      }}TXX&&rJ   c                 @    t        j                  | j                        S r_   )rD   proc_cmdliner   r   s    rH   cmdlinezProcess.cmdline  s      **rJ   c                 R    t        t        j                  | j                              S r_   )r   rD   proc_environr   r   s    rH   environzProcess.environ  s    "4#4#4TXX#>??rJ   c                 X    | j                         t        d      | _        | j                  S )Nr   )r   r   r   r   s    rH   r   zProcess.ppid  s&    ))+N6,BC
zzrJ   c                 @    t        j                  | j                        S r_   )rD   proc_cwdr   r   s    rH   cwdzProcess.cwd  r   rJ   c                     | j                         }t        j                  |t        d      |t        d      |t        d            S )Nr   r   r   r   r   puidsr   r   rawtuples     rH   uidszProcess.uids  H    '')}}^F+,^F+,^F+,
 	
rJ   c                     | j                         }t        j                  |t        d      |t        d      |t        d            S )Nr    r!   r"   r   r   s     rH   gidszProcess.gids  r   rJ   c                     | j                         t        d      }t        j                         }	 ||   S # t        $ r Y y w xY w)Nr#   )r   r   r   get_terminal_mapKeyError)r   tty_nrtmaps      rH   terminalzProcess.terminal  sI    %%'w(?@((*	< 		s   5 	A Ac                     | j                         }t        |t        d      |t        d      |t        d      |t        d            S )Nr)   r*   r+   r,   )r   r>   r   r   s     rH   memory_infozProcess.memory_info  sQ    ((*_U+,_U+,_Y/0_Y/0	
 	
rJ   c                 x    | j                         }t        j                  | j                        }t	        ||fz    S r_   )r	  rD   proc_memory_ussr   r?   )r   	basic_memr@   s      rH   memory_full_infozProcess.memory_full_info  s6    $$&	""488,cV+,,rJ   c                 z    | j                         }t        j                  |t        d      |t        d      dd      S )Nr'   r(   g        )r   r   	pcputimesr   r   s     rH   rR   zProcess.cpu_times  sC    ((*  _Z01_Z01
 	
rJ   c                 T    | j                         t        d      }|st        |      }|S )Nr$   )r   r   r   )r   	monotonicr$   s      rH   r   zProcess.create_time  s,    $$&~g'>?+E2ErJ   c                 b    | j                         t        d      }t        j                  |d      S )Nr.   r   )r   r   r   pctxsw)r   vols     rH   num_ctx_switcheszProcess.num_ctx_switches  s-    
 ##%oj&AB~~c1%%rJ   c                 6    | j                         t        d      S )Nr-   )r   r   r   s    rH   num_threadszProcess.num_threads   s    $$&|'DEErJ   c                     | j                   dk(  rg S g }t        j                  | j                         }|D ]8  \  }}t        |      st	        j
                  ||      }|j                  |       : |S r   )r   rD   proc_open_filesr   r   	popenfilerU   )r   filesr   rr   fdr~   s         rH   
open_fileszProcess.open_files  sk    88q=I&&txx0 	%HD"T" **44V$	% rJ   c           
          t         |   \  }}t        j                  | j                  ||      }g }|D ]1  }|\  }}}	}
}}t	        |||	|
||t
              }|j                  |       3 |S r_   )r   rD   proc_net_connectionsr   r   TCP_STATUSESrU   )r   r   familiestypesr   rV   rX   r  famtypeladdrraddrr%   r   s                 rH   r   zProcess.net_connections  sz    #D/%++DHHhF 	D26/BT5%CueV\B JJrN	 
rJ   c                 `    | j                   dk(  ryt        j                  | j                         S r   )r   rD   proc_num_fdsr   s    rH   num_fdszProcess.num_fds  s%    88q=  **rJ   Nc                 X    t        j                  | j                  || j                        S r_   )r   wait_pidr   r   )r   timeouts     rH   waitzProcess.wait#  s      7DJJ??rJ   c                 @    t        j                  | j                        S r_   )r   getpriorityr   r   s    rH   nice_getzProcess.nice_get'  s    %%dhh//rJ   c                 B    t        j                  | j                  |      S r_   )r   setpriorityr   )r   values     rH   nice_setzProcess.nice_set+  s    %%dhh66rJ   c                 b    | j                         t        d      }t        j                  |d      S )Nr%   ?)r   r   PROC_STATUSESget)r   codes     rH   r%   zProcess.status/  s-    ##%nX&>?  s++rJ   c                     t        j                  | j                        }g }|D ].  \  }}}t        j                  |||      }|j                  |       0 |S r_   )rD   proc_threadsr   r   pthreadrU   )r   r   rw   	thread_idutimestimer~   s          rH   threadszProcess.threads5  sV    ##DHH-'. 	##Iue__Yu=FNN6"	# rJ   Finetr_   )#__name__
__module____qualname____doc__	__slots__r   r   r   r   r   r   r   r&   r   r   r   r   r   r   r  r  r	  r  rR   r   r  r  r  r   r)  r-  r0  r4  r%   r@  r[   rJ   rH   r   r     s%   ;3I
      35 F F ' ' + + @ @   ' ' 
 
 
 
   
 
 - -
 
 
   & & F F 	 	 
 
 + +
 @ @ 0 0 7 7 , ,
  rJ   r   rA  rB  )crG  r   r   rq   collectionsr   ro   r   r   r   rD   r   r   r	   r
   r   r   r   r   r   r   r   r   __extra__all__getpagesizePAGESIZEAF_LINKTCPS_ESTABLISHEDCONN_ESTABLISHEDTCPS_SYN_SENTCONN_SYN_SENTTCPS_SYN_RECEIVEDCONN_SYN_RECVTCPS_FIN_WAIT_1CONN_FIN_WAIT1TCPS_FIN_WAIT_2CONN_FIN_WAIT2TCPS_TIME_WAITCONN_TIME_WAITTCPS_CLOSED
CONN_CLOSETCPS_CLOSE_WAITCONN_CLOSE_WAITTCPS_LAST_ACKCONN_LAST_ACKTCPS_LISTENCONN_LISTENTCPS_CLOSINGCONN_CLOSINGPSUTIL_CONN_NONE	CONN_NONEr   SIDLSTATUS_IDLESRUNSTATUS_RUNNINGSSLEEPSTATUS_SLEEPINGSSTOPSTATUS_STOPPEDr   STATUS_ZOMBIEr7  dictr   r   r/   r5   r>   _fieldsr?   rI   rP   rR   rT   rZ   r]   r`   has_cpu_freqrh   
disk_usagedisk_io_countersrp   r   r   net_if_addrsr   r   r   r   	Exceptionr   r   r   r   
pid_existsr   r   r   r[   rJ   rH   <module>rw     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@/$
"
 44   
(( *>, &&&&$:
[N(    
(} }q  	*3'
23Ns   K4 4L9LL