
    Mh>                     2   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 g Z ej                    Zej        Ze
j        ej        e
j        ej        e
j        ej        e
j         ej!        e
j"        ej#        e
j$        ej%        e
j&        ej'        e
j(        ej)        e
j*        ej+        e
j,        ej-        e
j.        ej/        e
j0        ej1        iZ2e
j3        ej4        e
j5        ej6        e
j7        ej8        e
j9        ej:        e
j;        ej<        iZ= e>ddddddddddd          Z? e>dddddddd          Z@ edg d          ZA edg d           ZB ed!g d"          ZC ed#eCjD        d$z             ZEd% ZFd& ZGd' ZHd( ZId) ZJd* ZKd+ ZLd, ZMejN        ZNe
jO        ZOd:d.ZPd/ ZQe
jR        ZRejS        ZSd;d1ZTd2 ZUd3 ZVd4 ZWd5 ZXejY        ZYd6 ZZd7 Z[ G d8 d9          Z\dS )<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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   r4   )	r5   r:   r;   r<   r9   speculativeavailr8   r7   s	            M/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/psutil/_psosx.pyvirtual_memoryrH   o   sq    8<8H8J8J5E68UD+ tOEE>D 	KDUU]U1===GwdFHeLLL    c                      t          j                    \  } }}}}t          || d          }t          j        | |||||          S )z=Swap system memory as a (total, used, free, sin, sout) tuple.r   rA   )rC   swap_memr   r   sswap)r5   r8   r9   sinsoutr7   s         rG   swap_memoryrO   ~   sF    #'=?? E4sDD%222G=dGS$???rI   c                  V    t          j                    \  } }}}t          | |||          S )z(Return system CPU times as a namedtuple.)rC   	cpu_timesr.   r/   s       rG   rQ   rQ      s,    #~//D$T4...rI   c                      g } t          j                    D ]0}|\  }}}}t          ||||          }|                     |           1| S )z)Return system CPU times as a named tuple.)rC   per_cpu_timesr.   append)retcpu_tr0   r1   r2   r3   items          rG   rS   rS      sZ    
C#%%  #( dFDtVT22

4JrI   c                  (    t          j                    S )z0Return the number of logical CPUs in the system.)rC   cpu_count_logical rI   rG   rY   rY      s    !###rI   c                  (    t          j                    S )z-Return the number of CPU cores in the system.)rC   cpu_count_coresrZ   rI   rG   r\   r\      s    !!!rI   c                  b    t          j                    \  } }}}}t          j        | |||          S N)rC   	cpu_statsr   	scpustats)ctx_switches
interruptssoft_interruptssyscalls_trapss        rG   r_   r_      s=     @L*ox j/8  rI   c                  ^    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.
    )rC   cpu_freqr   scpufreq)currmin_max_s      rG   rg   rg      s.     }D$T4..//rI   Fc                 2   g }t          j                    }|D ]~}|\  }}}}|dk    rd}| s?t          j                            |          rt          j                            |          sRt          j        ||||          }|                    |           |S )z8Return mounted disk partitions as a list of namedtuples.none )	rC   disk_partitionsospathisabsexistsr   	sdiskpartrT   )	allretlist
partitions	partitiondevice
mountpointfstypeoptsntuples	            rG   ro   ro      s    G%''J  	+4(
FDVF 	7==(( v0F0F "6:vtDDvNrI   c                      	 t          j                    \  } }}n# t          $ r Y dS w xY w|dk    }|rt          j        }n|dk    rt          j        }n|dz  }t          j        | ||          S )zReturn battery information.Nr   <   )rC   sensors_batteryNotImplementedErrorr   POWER_TIME_UNLIMITEDPOWER_TIME_UNKNOWNsbattery)r7   minsleftpower_pluggedsecslefts       rG   r   r      s    +/+?+A+A(==   tt "Q&M !/	R-b=GX}===s    
((inetc                    g }t                      D ]p}	 t          |                              |           }|r9|D ]6}t          |          |gz   }|                    t          j        |            7a# t          $ r Y mw xY w|S )z System-wide network connections.)pidsProcessnet_connectionslistrT   r   sconnr
   )kindrU   pidconscs        rG   r   r      s     Cvv 	2 	2	23<<//55D  2 2 2AQ3%AJJw}a01111  	 	 	H	 Js   "A22
A?>A?c                     t                                                      } i }| D ]}	 t          j        |          }t          j        |          }t          j        |          \  }}t          t          d          rt          j        |          }d	                    |          }d|v }t          j
        |||||          ||<   # t          $ r }	|	j        t          j        k    r Y d}	~	d}	~	ww xY w|S )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)
namesrU   r%   mtuflagsduplexspeedoutput_flagsisuperrs
             rG   net_if_statsr     s   ""$$E
C  	'--C+D11E&:4@@MFE w,, 3 *62288E??L%D)feS, CII  	 	 	yEL(( )((((	 Js   ?C
C/C**C/c                  (    t          j                    S )z:The system boot time expressed in seconds since the epoch.)rC   	boot_timerZ   rI   rG   r   r     s    >rI   c                      g } t          j                    }|D ]E}|\  }}}}}|dk    r|st          j        ||pd|pd||          }|                     |           F| S )z:Return currently connected users as a list of namedtuples.~N)rC   usersr   suserrT   )	rv   rawlistrW   r0   ttyhostnametstampr   nts	            rG   r   r   #  s    GjllG  +/(c8VS#:: 	]4h.>$LLrNrI   c                     t          j                    } d| vrj	 t          d                                           |                     dd           n1# t
          $ r Y n%t          $ r |                     dd           Y nw xY w| S Nr   )rC   r   r   create_timeinsertr
   r	   )lss    rG   r   r   7  s    	B{{	AJJ""$$$IIaOOOO 	 	 	D 	 	 	IIaOOOOO	Is   7A 
A?A?>A?c                     	 t          j        |           t          d                  }|t           j        k    S # t          $ r Y dS w xY w)Nr$   F)rC   proc_kinfo_oneshotkinfo_proc_mapSZOMBr   )r   sts     rG   	is_zombier   J  sP    $S)).*BCTZ   uus   47 
AAc                 F     t          j                    fd            }|S )z`Decorator which translates bare OSError exceptions into
    NoSuchProcess and AccessDenied.
    c                    | j         | j        | j        }}}	  | g|R i |S # t          $ r7}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          rG   wrapperz wrap_exceptions.<locals>.wrapperW  s    (DJ
4T	33t-d---f---! 	4 	4 	4~~ >#Ct44#=T**3 	3 	3 	3sD))s2	3s    $ 
B2A  B-A>>B)	functoolswraps)r   r   s   ` rG   wrap_exceptionsr   R  s:    
 _S	3 	3 	3 	3 	3 NrI   c                   v   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             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"dS )#r   z1Wrapper class around underlying C implementation.)_cacher   r   r   c                 0    || _         d | _        d | _        d S r^   )r   r   r   )r   r   s     rG   __init__zProcess.__init__k  s    



rI   c                     t          j        | j                  }t          |          t          t                    k    sJ |S r^   )rC   r   r   lenr   r   rU   s     rG   _get_kinfo_proczProcess._get_kinfo_procp  s:     %dh//3xx3~......
rI   c                     t          j        | j                  }t          |          t          t                    k    sJ |S r^   )rC   proc_pidtaskinfo_oneshotr   r   pidtaskinfo_mapr   s     rG   _get_pidtaskinfozProcess._get_pidtaskinfox  s:     +DH553xx3//////
rI   c                 n    | j                             |            | j                            |            d S r^   )r   cache_activater   r   s    rG   oneshot_enterzProcess.oneshot_enter  s6    ++D111,,T22222rI   c                 n    | j                             |            | j                            |            d S r^   )r   cache_deactivater   r   s    rG   oneshot_exitzProcess.oneshot_exit  s6    --d333..t44444rI   c                     |                                  t          d                  }||nt          j        | j                  S )Nr%   )r   r   rC   	proc_namer   )r   r%   s     rG   r%   zProcess.name  s8    ##%%nV&<='ttT^DH-E-EErI   c                 4    t          j        | j                  S r^   )rC   proc_exer   r   s    rG   exezProcess.exe      }TX&&&rI   c                 4    t          j        | j                  S r^   )rC   proc_cmdliner   r   s    rG   cmdlinezProcess.cmdline  s     ***rI   c                 N    t          t          j        | j                            S r^   )r   rC   proc_environr   r   s    rG   environzProcess.environ  s    "4#4TX#>#>???rI   c                 d    |                                  t          d                  | _        | j        S )Nr   )r   r   r   r   s    rG   r   zProcess.ppid  s'    ))++N6,BC
zrI   c                 4    t          j        | j                  S r^   )rC   proc_cwdr   r   s    rG   cwdzProcess.cwd  r   rI   c                     |                                  }t          j        |t          d                  |t          d                  |t          d                            S )Nr   r   r   r   r   puidsr   r   rawtuples     rG   uidszProcess.uids  N    ''))}^F+,^F+,^F+,
 
 	
rI   c                     |                                  }t          j        |t          d                  |t          d                  |t          d                            S )Nr   r    r!   r   r   s     rG   gidszProcess.gids  r   rI   c                     |                                  t          d                  }t          j                    }	 ||         S # t          $ r Y d S w xY w)Nr"   )r   r   r   get_terminal_mapKeyError)r   tty_nrtmaps      rG   terminalzProcess.terminal  s\    %%''w(?@(**	< 	 	 	44	s   A 
AAc                     |                                  }t          |t          d                  |t          d                  |t          d                  |t          d                            S )Nr(   r)   r*   r+   )r   r=   r   r   s     rG   memory_infozProcess.memory_info  sY    ((**_U+,_U+,_Y/0_Y/0	
 
 	
rI   c                 v    |                                  }t          j        | j                  }t	          ||fz    S r^   )r  rC   proc_memory_ussr   r>   )r   	basic_memr?   s      rG   memory_full_infozProcess.memory_full_info  s7    $$&&	"48,,cV+,,rI   c                     |                                  }t          j        |t          d                  |t          d                  dd          S )Nr&   r'   g        )r   r   	pcputimesr   r   s     rG   rQ   zProcess.cpu_times  sH    ((** _Z01_Z01
 
 	
rI   c                 L    |                                  t          d                  S )Nr#   )r   r   r   s    rG   r   zProcess.create_time  s    ##%%nW&=>>rI   c                 v    |                                  t          d                  }t          j        |d          S )Nr-   r   )r   r   r   pctxsw)r   vols     rG   num_ctx_switcheszProcess.num_ctx_switches  s1    
 ##%%oj&AB~c1%%%rI   c                 L    |                                  t          d                  S )Nr,   )r   r   r   s    rG   num_threadszProcess.num_threads  s    $$&&|'DEErI   c                     | j         dk    rg S g }t          j        | j                   }|D ]>\  }}t          |          r*t	          j        ||          }|                    |           ?|S r   )r   rC   proc_open_filesr   r   	popenfilerT   )r   filesr   rq   fdr}   s         rG   
open_fileszProcess.open_files  sv    8q==I&tx00 	% 	%HD"T"" % *444V$$$rI   r   c           
          t           |         \  }}t          j        | j        ||          }g }|D ]:}|\  }}}	}
}}t	          |||	|
||t
                    }|                    |           ;|S r^   )r   rC   proc_net_connectionsr   r   TCP_STATUSESrT   )r   r   familiestypesr   rU   rW   r  famtypeladdrraddrr$   r   s                 rG   r   zProcess.net_connections  s    #D/%+DHhFF 	 	D26/BT5%CueV\ B JJrNNNN
rI   c                 N    | j         dk    rdS t          j        | j                   S r   )r   rC   proc_num_fdsr   s    rG   num_fdszProcess.num_fds  s%    8q==1 ***rI   Nc                 B    t          j        | j        || j                  S r^   )r   wait_pidr   r   )r   timeouts     rG   waitzProcess.wait  s     7DJ???rI   c                 4    t          j        | j                  S r^   )r   getpriorityr   r   s    rG   nice_getzProcess.nice_get  s    %dh///rI   c                 6    t          j        | j        |          S r^   )r   setpriorityr   )r   values     rG   nice_setzProcess.nice_set  s    %dh666rI   c                     |                                  t          d                  }t                              |d          S )Nr$   ?)r   r   PROC_STATUSESget)r   codes     rG   r$   zProcess.status  s3    ##%%nX&>?  s+++rI   c                     t          j        | j                  }g }|D ]1\  }}}t          j        |||          }|                    |           2|S r^   )rC   proc_threadsr   r   pthreadrT   )r   r   rv   	thread_idutimestimer}   s          rG   threadszProcess.threads  s\    #DH--'. 	# 	##Iue_Yu==FNN6""""rI   r   r^   )#__name__
__module____qualname____doc__	__slots__r   r   r   r   r   r   r   r%   r   r   r   r   r   r   r   r  r  r  rQ   r   r  r  r  r   r#  r'  r*  r.  r$   r:  rZ   rI   rG   r   r   f  s"       ;;333I  
    _    _3 3 35 5 5 F F _F ' ' _' + + _+ @ @ _@   _ ' ' _' 
 
 _
 
 
 _
   _ 
 
 _
 - - _-
 
 
 _
 ? ? _? & & _& F F _F 	 	 _	 
 
 
 _
 + + _+
 @ @ @ _@ 0 0 _0 7 7 _7 , , _,
   _  rI   r   )Fr;  )]r?  r   r   rp   collectionsr   rn   r   r   r   rC   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_ZOMBIEr1  dictr   r   r.   r4   r=   _fieldsr>   rH   rO   rQ   rS   rY   r\   r_   rg   
disk_usagedisk_io_countersro   r   r   net_if_addrsr   r   r   r   r   
pid_existsr   r   r   rZ   rI   rG   <module>rm     sb  
 % $      				 " " " " " "             ! ! ! ! ! ! ) ) ) ) ) ) ! ! ! ! ! ! " " " " " " " " " " " "       # # # # # # " " " " " " + + + + + + ( ( ( ( ( ( " " " " " "  ":!##

 	73-G1'0'0/g('1-g)w+7,  	Iw"Iw%K(J&J% 	
	
	
	
	
	
	

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