
    ;^hm                     R   S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJ	r	  SSK
Jr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr   SSK
Jr  / SQr(Sr)S r*S!\RV                  ;   r,\RZ                  " S"S#S$05      r.\.R^                  r/\R`                  \Rb                  \Rd                  \Rf                  \Rh                  \Rj                  \Rl                  \Rn                  \Rp                  \Rr                  \Rt                  \Rv                  \Rx                  \Rz                  \R|                  \R~                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \)\R                  \R                  0rI " S% S&\RZ                  5      rJ\K" 5       R                  \JR                  5         " S' S(\RZ                  5      rN\K" 5       R                  \NR                  5        \O" S0 S)S_S*S_S+S,_S-S._S/S0_S1S2_S3S_S4S5_S6S7_S8S9_S:S;_S<S=_S>S?_S@SA_SBSC_SDSE_SFSG_SHSI_SJSK_SLSM_SNSO_SPSQ_6rP\	" SR/ SSQ5      rQ\	" ST/ SUQ5      rR\	" SV/ SWQ5      rS\	" SX\SR                  SY-   5      rU\	" SZS[S\/5      rV\	" S]S^S_R                  \VR                  5      -   5      rX\	" S`/ SaQ5      rY\R                  " SbSc9Sd 5       r[\Se 5       r\Sf r]Sg r^\R                  r_Sh r`Si raSj rbSk rcSl rdSm reSn rfSo rgSpqhSq riSSr jrjSs rkSt rlSu rmSv rnSqoSw rpSx rqSy rrSz rs " S{ S|5      rt\R                  ru\R                  rv\R                  rwS} rxSS~ jryS rzS r{ " S S5      r|g! \  a]  r!\"" \!5      RG                  5       RI                  S5      (       a-  \RJ                  " 5       S   S:  a  Sr&\&S-  r&\&S-  r&\'" \&5      \!ee Sr!C!ff = f)z Windows platform implementation.    N)
namedtuple   )_common)ENCODING)AccessDenied)NoSuchProcess)TimeoutExpired)	conn_tmap)conn_to_ntuple)debug)isfile_strict)memoize)memoize_when_activated)parse_environ_block)usage_percent)ABOVE_NORMAL_PRIORITY_CLASS)BELOW_NORMAL_PRIORITY_CLASS)HIGH_PRIORITY_CLASS)IDLE_PRIORITY_CLASS)NORMAL_PRIORITY_CLASS)REALTIME_PRIORITY_CLASS)_psutil_windowszdll load failed   z3this Windows version is too old (< Windows Vista); z:psutil 3.4.2 is the latest version which supports Windows z2000, XP and 2003 server)win_service_iterwin_service_getr   r   r   r   r   r   IOPRIO_VERYLOW
IOPRIO_LOWIOPRIO_NORMALIOPRIO_HIGHCONN_DELETE_TCBAF_LINK
DELETE_TCBi+  __pypy__AddressFamilyr!   c                   ,    \ rS rSr\r\r\r\r\r\	r	Sr
g)Prioritye    N)__name__
__module____qualname____firstlineno__r   r   r   r   r   r   __static_attributes__r)       C/var/www/html/env/lib/python3.13/site-packages/psutil/_pswindows.pyr'   r'   e   s&    "="=--15r/   r'   c                   $    \ rS rSrSrSrSrSrSrg)
IOPriorityq   r   r         r)   N)	r*   r+   r,   r-   r   r   r   r   r.   r)   r/   r0   r2   r2   q   s    NJMKr/   r2   num_handlesctx_switches	user_timer4   kernel_timer5   create_time   num_threads   	io_rcount	io_wcount   	io_rbytes   	io_wbytes	   io_count_others
   io_bytes_others   num_page_faults   	peak_wset   wset   peak_paged_pool   
paged_pool   peak_non_paged_pool   non_paged_pool   pagefile   peak_pagefile   mem_private   	scputimes)usersystemidle	interruptdpcsvmem)total	availablepercentusedfreepmem)rssvmsrI   rK   rM   rO   rQ   peak_nonpaged_poolnonpaged_poolrW   rY   privatepfullmem)usspmmap_groupedpathrj   	pmmap_extzaddr perms  pio)
read_countwrite_count
read_byteswrite_bytesother_countother_bytesi   )maxsizec                     SR                  U R                  S5      SS 5      n[        R                  " U5      nU [	        U5      S n[
        R                  R                  X#5      $ )zConvert paths using native DOS format like:
    "\Device\HarddiskVolume1\Windows\systemew\file.txt"
into:
    "C:\Windows\systemew\file.txt".
\Nr5   )joinsplitcextQueryDosDevicelenosrr   )srawdrivedriveletter	remainders       r0   convert_dos_pathr      sT     yyr*+H%%h/K#h-/"I77<<//r/   c                  ,    [         R                  " 5       $ N)r   getpagesizer)   r/   r0   r   r      s    r/   c                  ~    [         R                  " 5       n U u  pp4UnUnUnXV-
  n[        XV-
  USS9n	[        XVXU5      $ )z&System virtual memory as a namedtuple.r   round_)r   virtual_memr   rc   )
memtotphys	availphys_totsys	_availsysrd   availrh   rg   rf   s
             r0   virtual_memoryr      sO    



C-0*GEED=DU]U1=Gwd33r/   c                      [         R                  " 5       n U S   nU S   nX!-
  nUS:  a'  [         R                  " 5       n[        SU-  U-  5      nOSnSnX5-
  n[	        US5      n[
        R                  " X5XgSS5      $ )z=Swap system memory as a (total, used, free, sin, sout) tuple.r   r4   g{Gz?        r   )r   r   swap_percentintroundr   sswap)r   
total_phystotal_systemrd   percentswaprg   rh   rf   s           r0   swap_memoryr      s    



CQJq6L %E
 qy'')4+%-.<DK#G==dQ::r/   c                     [        U [        5      (       a  U R                  [        SS9n [        R
                  " U 5      u  pX-
  n[        X1SS9n[        R                  " XX$5      $ )z'Return disk usage associated with path.strict)errorsr   r   )	
isinstancebytesdecoder   r   
disk_usager   r   
sdiskusage)rr   rd   rh   rg   rf   s        r0   r   r      sY    $ {{8H{5//$'KE<DD2Ge499r/   c                     [         R                  " U 5      nU Vs/ s H  n[        R                  " U6 PM     sn$ s  snf )zReturn disk partitions.)r   disk_partitionsr   	sdiskpart)allrawlistxs      r0   r   r   	  s5    ""3'G+237aGq!7333s   ;c                      [         R                  " 5       u  pn[        [        [         R                  " 5       6  Vs/ s H  n[        U5      PM     sn6 n[        XX$R                  UR                  5      $ s  snf )z)Return system CPU times as a named tuple.)r   	cpu_timesr]   zipper_cpu_timessumra   rb   )r^   r_   r`   npercpu_summeds        r0   r   r     sh    )D$ T5G5G5I0JK0J1A0JKLMd33]5F5F   Ls   A5c                      / n [         R                  " 5        H%  u  pp4n[        XX4U5      nU R                  U5        M'     U $ )z6Return system per-CPU times as a list of named tuples.)r   r   r]   append)retr^   r_   r`   ra   rb   items          r0   r   r      sC    
C.2.@.@.B*dst<

4 /C Jr/   c                  ,    [         R                  " 5       $ )z0Return the number of logical CPUs in the system.)r   cpu_count_logicalr)   r/   r0   r   r   )  s    !!##r/   c                  ,    [         R                  " 5       $ )z-Return the number of CPU cores in the system.)r   cpu_count_coresr)   r/   r0   r   r   .  s    !!r/   c                  d    [         R                  " 5       u  pp#Sn[        R                  " XXC5      $ )zReturn CPU statistics.r   )r   	cpu_statsr   	scpustats)r7   
interrupts_dpcssyscallssoft_interruptss        r0   r   r   3  s0    040@-LeO/ r/   c                      [         R                  " 5       u  pSn[        R                  " [	        U 5      U[	        U5      5      /$ )zEReturn CPU frequency.
On Windows per-cpu frequency is not supported.
r   )r   cpu_freqr   scpufreqfloat)currmax_min_s      r0   r   r   <  s6     JDDU4[$d<==r/   Fc                      [         (       d  [        R                  " 5         Sq [        R                  " 5       n [	        S U  5       5      $ )z|Return the number of processes in the system run queue averaged
over the last 1, 5, and 15 minutes respectively as a tuple.
Tc              3   :   #    U  H  n[        US 5      v   M     g7f)r4   N)r   ).0loads     r0   	<genexpr>getloadavg.<locals>.<genexpr>T  s     6IDtQIs   )_loadavg_inititializedr   init_loadavg_counter
getloadavgtuple)	raw_loadss    r0   r   r   H  s;     "!!!#!% !I6I666r/   c                     [         U    u  p#[        R                  " XU5      n[        5       nU H7  nUu  pxppn[	        UUU	U
UU[
        US:X  a  UOSS9nUR                  U5        M9     [        U5      $ )zReturn socket connections.  If pid == -1 return system-wide
connections (as opposed to connections opened by one process only).
r%   N)pid)r
   r   net_connectionssetr   TCP_STATUSESaddlist)kind_pidfamiliestypesr   r   r   fdfamtypeladdrraddrstatusr   nts                  r0   r   r   \  s      oOH""459G
%C370eSrzt	
 	  9r/   c                      0 n [         R                  " 5       nUR                  5        HO  u  p#Uu  pEpg[        [        S5      (       a  [        R
                  " U5      n[        R                  " XEXgS5      X'   MQ     U $ )z)Get NIC stats (isup, duplex, speed, mtu).	NicDuplex )r   net_if_statsitemshasattrr   r   	snicstats)r   rawdictnamer   isupduplexspeedmtus           r0   r   r   s  sk    
C!G}}#( e7K((&&v.F%%dEC		 '
 Jr/   c                  ,    [         R                  " 5       $ )zkReturn network I/O statistics for every network interface
installed on the system as a dict of raw tuples.
)r   net_io_countersr)   r/   r0   r   r     s     !!r/   c                  ,    [         R                  " 5       $ )z,Return the addresses associated to each NIC.)r   net_if_addrsr)   r/   r0   r   r     s    r/   c                     [         R                  " 5       u  pp#U S:H  n[        US-  5      n[        US-  5      nU(       a  gU(       d  U(       a  [        R                  nOUS:X  a  [        R
                  n[        R                  " X#U5      $ )zReturn battery information.r      rB   Nr%   )r   sensors_batteryboolr   POWER_TIME_UNLIMITEDPOWER_TIME_UNKNOWNsbattery)acline_statusflagsrf   secsleftpower_plugged
no_batterychargings          r0   r   r     sw    
 /3.B.B.D+M'!Q&Meck"JEAIH//	R--G}==r/   c                  ~    [        [        R                  " 5       5      n [        U [        -
  5      S::  a  [        $ U qU $ )z:The system boot time expressed in seconds since the epoch.r   )r   r   	boot_timeabs_last_btime)r   s    r0   r	  r	    s7      
!C
3"
r/   c                      / n [         R                  " 5       nU H2  nUu  p4n[        R                  " USXES5      nU R	                  U5        M4     U $ )z:Return currently connected users as a list of namedtuples.N)r   usersr   suserr   )retlistr   r   r^   hostnametstampr   s          r0   r  r    sM    GjjlG!%]]4x>r  Nr/   c               #   b   #    [         R                  " 5        H  u  p[        X5      v   M     g7f)z*Yields a list of WindowsService instances.N)r   winservice_enumerateWindowsService)r   display_names     r0   r   r     s&     "779T00 :s   -/c                 N    [        U S5      nUR                  5       S   Ul        U$ )zBOpen a Windows service and return it as a WindowsService instance.Nr  )r  _query_config_display_name)r   services     r0   r   r     s)    T4(G#113NCGNr/   c                       \ rS rSrSrS rS rS rS rS r	S r
S	 r\R                  S
 5       rS rS rS rS rS rS rS rS rS rSrg)r  i  z(Represents an installed Windows service.c                     Xl         X l        g r   )_namer  )selfr   r  s      r0   __init__WindowsService.__init__  s    
)r/   c                 t    SU R                   < SU R                  < S3nU R                  R                   U 3$ )Nz(name=z, display_name=))r  r  	__class__r*   )r  detailss     r0   __str__WindowsService.__str__  s;    4::.8J8J7MQO..))*7)44r/   c                 B    SU R                  5        S[        U 5       S3$ )N<z at >)r$  idr  s    r0   __repr__WindowsService.__repr__  s"    4<<>"$r$xj22r/   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r   )r   r  NotImplementedr  r  others     r0   __eq__WindowsService.__eq__  s*     %00!!zzU[[((r/   c                     X:X  + $ r   r)   r/  s     r0   __ne__WindowsService.__ne__  s      r/   c                     U R                  5          [        R                  " U R                  5      u  pp4S S S 5        [	        WWWWS9$ ! , (       d  f       N= f)N)r  binpathusername
start_type)_wrap_exceptionsr   winservice_query_configr  dict)r  r  r7  r8  r9  s        r0   r  WindowsService._query_config  sR    ""$,,TZZ8 8L8 %
 %!	
 	
 %$s   $A		
Ac                     U R                  5          [        R                  " U R                  5      u  pS S S 5        WS:X  a  S n[	        WUS9$ ! , (       d  f       N = f)Nr   )r   r   )r:  r   winservice_query_statusr  r<  )r  r   r   s      r0   _query_statusWindowsService._query_status  sK    ""$66tzzBKF %!8C6s++	 %$s   #A
Ac              #     #     Sv   g! [          at  nU R                  n[        U5      (       a  SU< S3n[        SX#S9UeUR                  [
        R                  [
        R                  1;   a  SU< S3n[        SX#S9Uee SnAff = f7f)zkCtx manager which translates bare OSError and WindowsError
exceptions into NoSuchProcess and AccessDenied.
Nzservice z( is not querable (not enough privileges)r   r   msgz does not exist)	OSErrorr  is_permission_errr   winerrorr   ERROR_INVALID_NAMEERROR_SERVICE_DOES_NOT_EXISTr   )r  errr   rD  s       r0   r:  WindowsService._wrap_exceptions  s     
	 	::D %%th&NO  #t$@cI''11"  !8#4AsJ	s%   B
	 B

BA/BBB
c                     U R                   $ )zThe service name. This string is how a service is referenced
and can be passed to win_service_get() to get a new
WindowsService instance.
)r  r*  s    r0   r   WindowsService.name  s    
 zzr/   c                     U R                   $ )zOThe service display name. The value is cached when this class
is instantiated.
)r  r*  s    r0   r  WindowsService.display_name#  s     !!!r/   c                 (    U R                  5       S   $ )zgThe fully qualified path to the service binary/exe file as
a string, including command line arguments.
r7  r  r*  s    r0   r7  WindowsService.binpath)  s     !!#I..r/   c                 (    U R                  5       S   $ )z,The name of the user that owns this service.r8  rQ  r*  s    r0   r8  WindowsService.username/  s    !!#J//r/   c                 (    U R                  5       S   $ )zBA string which can either be "automatic", "manual" or
"disabled".
r9  rQ  r*  s    r0   r9  WindowsService.start_type3  s     !!#L11r/   c                 (    U R                  5       S   $ )zjThe process PID, if any, else None. This can be passed
to Process class to control the service's process.
r   r@  r*  s    r0   r   WindowsService.pid;  s     !!#E**r/   c                 (    U R                  5       S   $ )zService status as a string.r   rX  r*  s    r0   r   WindowsService.statusA  s    !!#H--r/   c                 J    [         R                  " U R                  5       5      $ )zService long description.)r   winservice_query_descrr   r*  s    r0   descriptionWindowsService.descriptionE  s    **499;77r/   c                     U R                  5       nUR                  U R                  5       5        U R                  5       US'   U R	                  5       US'   U R                  5       US'   U$ )zEUtility method retrieving all the information above as a
dictionary.
r   r  r^  )r  updater@  r   r  r^  )r  ds     r0   as_dictWindowsService.as_dictK  sa      	##%&IIK&	 --/.++--r/   )r  r  N)r*   r+   r,   r-   __doc__r  r$  r+  r1  r4  r  r@  
contextlibcontextmanagerr:  r   r  r7  r8  r9  r   r   r^  rc  r.   r)   r/   r0   r  r    so    2*53)!
,  0"/02+.8	r/   r  c                     [        U [        5      (       d   U 5       e[        U [        5      =(       d-    U R                  [        R
                  [        R                  1;   $ )z*Return True if this is a permission error.)r   rE  PermissionErrorrG  r   ERROR_ACCESS_DENIEDERROR_PRIVILEGE_NOT_HELD)excs    r0   rF  rF    sQ    c7##(S(#c?+ s||  %%@ 0 r/   c                     [        U [        5      (       d   U 5       e[        U 5      (       a	  [        XS9$ [        U [        5      (       a	  [        XS9$ U e)z3Convert OSError into NoSuchProcess or AccessDenied.r   r   )r   rE  rF  r   ProcessLookupErrorr   )rl  r   r   s      r0   convert_oserrorrp    sN    c7##(S(#//#)**00
Ir/   c                 F   ^  [         R                  " T 5      U 4S j5       nU$ )zDDecorator which converts OSError into NoSuchProcess or AccessDenied.c                    >  T" U /UQ70 UD6$ ! [          a$  n[        X0R                  U R                  S9UeS nAff = f)Nrn  )rE  rp  r   r  )r  argskwargsrJ  funs       r0   wrapper wrap_exceptions.<locals>.wrapper  sG    	Ot-d-f-- 	O!#88$**E3N	Os    
=8=	functoolswrapsru  rv  s   ` r0   wrap_exceptionsr|    s)     __SO O Nr/   c                 F   ^  [         R                  " T 5      U 4S j5       nU$ )zyWorkaround for https://github.com/giampaolo/psutil/issues/875.
See: https://stackoverflow.com/questions/4457745#4457745.
c                 D  > SnSn[        U5       H  n T" U /UQ70 UD6s  $    T SU SW 3n[        U R                  U R                  US9e! [         aG  nUnUR                  [        :X  a+  [        R
                  " U5        [        US-  S5      n S nAM  e S nAff = f)N-C6?!   r4   {Gz?z	 retried z: times, converted to AccessDenied as it's still returning rC  )
rangerE  rG  ERROR_PARTIAL_COPYtimesleepminr   r   r  )	r  rs  rt  delaytimes_rJ  rD  ru  s	           r0   rv  )retry_error_partial_copy.<locals>.wrapper  s    uA41$1&11  e9UG $"e% 	 txxdjjcBB  <<#55JJu%	40Es   A
B;BBBrx  r{  s   ` r0   retry_error_partial_copyr    s)    
 __SC C& Nr/   c                   N   \ rS rSrSr/ SQrS rS rS r\	S 5       r
S r\\	S	 5       5       r\\S
 5       5       r\\S 5       5       rS rS r\S 5       r\S 5       rS r\S 5       r\S 5       r\S*S j5       r\S 5       r\S+S j5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\\S 5       5       r \S 5       r!\S,S j5       r"\S 5       r#\S  5       r$\S! 5       r%\S" 5       r&\S# 5       r'\S$ 5       r(\S% 5       r)\S& 5       r*\S' 5       r+\S( 5       r,S)r-g)-Processi  z1Wrapper class around underlying C implementation.)_cacher  _ppidr   c                 ,    Xl         S U l        S U l        g r   )r   r  r  )r  r   s     r0   r  Process.__init__  s    

r/   c                 p    U R                   R                  U 5        U R                  R                  U 5        g r   )
_proc_infocache_activateexer*  s    r0   oneshot_enterProcess.oneshot_enter  s&    &&t,%r/   c                 p    U R                   R                  U 5        U R                  R                  U 5        g r   )r  cache_deactivater  r*  s    r0   oneshot_exitProcess.oneshot_exit  s&    ((.!!$'r/   c                     [         R                  " U R                  5      n[        U5      [        [        5      :X  d   eU$ )z?Return multiple information about this process as a
raw tuple.
)r   	proc_infor   r   	pinfo_mapr  r   s     r0   r  Process._proc_info  s1    
 nnTXX&3x3y>)))
r/   c                     U R                   S:X  a  gU R                   S:X  a  g[        R                  R                  U R	                  5       5      $ )zRReturn process name, which on Windows is always the final
part of the executable.
r   zSystem Idle Processr;   System)r   r   rr   basenamer  r*  s    r0   r   Process.name  s;     88q=(88q=ww
++r/   c                    [         (       a"   [        R                  " U R                  5      nO [        R                  " U R                  5      nUR                  S5      (       a  [        U5      $ U$ ! [         aF  nUR
                  S:X  a0  [        U< S35        [        U R                  U R                  5      Uee S nAff = f)N   z translated into AccessDeniedr~   )PYPYr   proc_exer   rE  errnor   r   r  
startswithr   )r  r  rJ  s      r0   r  Process.exe  s     4mmDHH- --)C>>$#C((
   99?SG#@AB&txx<#Es    A1 1
C;AB<<Cc                 R   [         R                  [         R                  :  a    [         R                  " U R                  SS9$ [         R                  " U R                  SS9$ ! [
         a:  n[        U5      (       a$  [         R                  " U R                  SS9s S nA$ e S nAff = f)NT)use_pebF)r   WINVERWINDOWS_8_1proc_cmdliner   rE  rF  r  rJ  s     r0   cmdlineProcess.cmdline   s     ;;$***((4@@ $$TXXt<<  $S)),,TXXuEE	s#   A" "
B&,.B!B& B!!B&c                 X    [         R                  " U R                  5      n[        U5      $ r   )r   proc_environr   r   )r  r   s     r0   environProcess.environ  s#     dhh'"1%%r/   c                      [        5       U R                     $ ! [         a"    [        U R                  U R                  5      S ef = fr   )ppid_mapr   KeyErrorr   r  r*  s    r0   ppidProcess.ppid  sA    	@:dhh'' 	@$**54?	@s	    ,Ac                     [         R                  " U R                  5      $ ! [         a  n[	        U5      (       a  [        S5        U R                  5       nU[        S      U[        S      U[        S      U[        S      U[        S      U[        S      U[        S      U[        S	      U[        S
      U[        S      4
s S nA$ e S nAff = f)Nz*attempting memory_info() fallback (slower)rI   rK   rM   rO   rQ   rS   rU   rW   rY   r[   )r   proc_memory_infor   rE  rF  r   r  r  )r  rJ  infos      r0   _get_raw_meminfoProcess._get_raw_meminfo  s    	((22 	 %% BC(#456;/06*+#456<01#89:#345:./?34=12  %	s!   " 
CBCCCCc                 N    U R                  5       nUS   nUS   n[        X#4U-   6 $ )Nr4   r@   )r  ri   )r  trj   rk   s       r0   memory_infoProcess.memory_info3  s5    
 !!#ddcZ!^$$r/   c                     U R                  5       n[        R                  " U R                  5      nU[	        5       -  n[        X4-   6 $ r   )r  r   proc_memory_ussr   r   ro   )r  	basic_memrp   s      r0   memory_full_infoProcess.memory_full_info=  s@    $$&	""488,{}V+,,r/   c              #     #     [         R                  " U R                  5      nU H"  u  p#pE[        U5      n[	        U5      nX#XE4v   M$     g ! [
         a&  n[        X`R                  U R                  5      UeS nAff = f7fr   )r   proc_memory_mapsr   r   hexrE  rp  r  )r  rawaddrpermrr   rj   rJ  s          r0   memory_mapsProcess.memory_mapsD  sy     
	.''1C *-%D'-4y4-- *-  	F "#xx<#E	Fs'   B  A )B 
A=!A88A==B c                 B    [         R                  " U R                  5      $ r   )r   	proc_killr   r*  s    r0   killProcess.killQ  s    ~~dhh''r/   c                    U[         R                  :X  a!  [        R                  " U R                  5        g U[         R
                  [         R                  1;   a"  [        R                  " U R                  U5        g Sn[        U5      e)NzPonly SIGTERM, CTRL_C_EVENT and CTRL_BREAK_EVENT signals are supported on Windows)
signalSIGTERMr   r  r   CTRL_C_EVENTCTRL_BREAK_EVENTr   r  
ValueError)r  sigrD  s      r0   send_signalProcess.send_signalU  s_    &.. NN488$V((&*A*ABBGGDHHc"+  S/!r/   Nc                 z   Uc  [         R                  nO[        US-  5      n[        [        S[        R                  5      nUb
  U" 5       U-   OS n [         R
                  " U R                  U5      nSn [        U R                  5      (       d  U$ U(       a)  U" 5       U:  a  [        XR                  U R                  S9e[        R                  " U5        [        US-  S5      nMs  ! [         R                   a&  n[        XR                  U R                  5      UeS nAf[         R                   a    S n Nf = f)Ni  	monotonicr  rn  r4   r  )r   INFINITEr   getattrr  	proc_waitr   r	   r  TimeoutAbandoned
pid_existsr  r  )r  timeoutcext_timeouttimerstop_at	exit_coderJ  r  s           r0   waitProcess.waitb  s   ?==L w~.Lk4995'.':%'G#	 txx>I& dhh''  57g-$W((LLJJu	4(E ' "" 	I ((DJJ?SH$$ 		 I		s   !C) )D:=!DD:9D:c                 v    U R                   S;   a  g[        R                  " U R                   5      u  pU SU 3$ )N   r   r;   zNT AUTHORITY\SYSTEMr~   )r   r   proc_username)r  domainr^   s      r0   r8  Process.username  s8    88v)))$((3D6""r/   c                      [         R                  " U R                  5      u  p#nU$ ! [         aH  n[	        U5      (       a2  U(       a  e [        S5        U R                  5       [        S      s S nA$ e S nAff = f)Nz*attempting create_time() fallback (slower)r:   )r   
proc_timesr   rE  rF  r   r  r  )r  	fast_only_user_systemcreatedrJ  s         r0   r:   Process.create_time  sg    		&*oodhh&?#EGN 	 %%BC(=)ABB	s    $' 
A9<A4-A93A44A9c                 6    U R                  5       [        S      $ )Nr<   )r  r  r*  s    r0   r<   Process.num_threads  s     =!9::r/   c                     [         R                  " U R                  5      n/ nU H.  u  p4n[        R                  " X4U5      nUR                  U5        M0     U$ r   )r   proc_threadsr   r   pthreadr   )r  r   r  	thread_idutimestimentuples          r0   threadsProcess.threads  sM    ##DHH-'.#Ie__Yu=FNN6" (/ r/   c                 0    [         R                  " U R                  5      u  pn[        R                  " XSS5      $ ! [         aN  n[	        U5      (       d  e [        S5        U R                  5       nU[        S      nU[        S      n S nANkS nAff = f)Nz(attempting cpu_times() fallback (slower)r8   r9   r   )
r   r  r   rE  rF  r   r  r  r   	pcputimes)r  r^   r_   _createdrJ  r  s         r0   r   Process.cpu_times  s    	4%)__TXX%>"D(   sC88  	4$S))<=??$D	+./D)M23F	4s   #= 
BABBc                 F    [         R                  " U R                  S5        g )NTr   proc_suspend_or_resumer   r*  s    r0   suspendProcess.suspend  s    ##DHHd3r/   c                 F    [         R                  " U R                  S5        g )NFr
  r*  s    r0   resumeProcess.resume  s    ##DHHe4r/   c                     U R                   S;   a   [        U R                   U R                  5      e[        R                  " U R                   5      n[
        R                  R                  U5      $ )Nr  )r   r   r  r   proc_cwdr   rr   normpath)r  rr   s     r0   cwdProcess.cwd  sN     88vtxx44 }}TXX&ww%%r/   c                 ,   U R                   S;   a  / $ [        5       n[        R                  " U R                   5      nU HH  n[	        U5      n[        U5      (       d  M   [        R                  " US5      nUR                  U5        MJ     [        U5      $ )Nr  r%   )
r   r   r   proc_open_filesr   r   r   	popenfiler   r   )r  r   raw_file_namesfiler  s        r0   
open_filesProcess.open_files  sx    88vIe
 --dhh7"D#D)DT"" **44	 #
 Cyr/   c                 (    [        XR                  S9$ )N)r   )r   r   )r  r   s     r0   r   Process.net_connections  s    t((33r/   c                 \    [         R                  " U R                  5      n[        U5      nU$ r   )r   proc_priority_getr   r'   r  values     r0   nice_getProcess.nice_get  s$    &&txx0r/   c                 D    [         R                  " U R                  U5      $ r   )r   proc_priority_setr   r!  s     r0   nice_setProcess.nice_set  s    %%dhh66r/   c                 \    [         R                  " U R                  5      n[        U5      nU$ r   )r   proc_io_priority_getr   r2   r  s     r0   
ionice_getProcess.ionice_get  s$    ''1o
r/   c                    U(       a  Sn[        U5      eU[        R                  [        R                  [        R                  [        R
                  1;  a  U S3n[        U5      e[        R                  " U R                  U5        g )Nz&value argument not accepted on Windowsz is not a valid priority)
	TypeErrorr2   r   r   r   r   r  r   proc_io_priority_setr   )r  ioclassr"  rD  s       r0   
ionice_setProcess.ionice_set  sr    :CC. %%!!$$""	
 
 I56CS/!!!$((G4r/   c           	      b    [         R                  " U R                  5      n[        U6 $ ! [         az  n[	        U5      (       d  e [        S5        U R                  5       nU[        S      U[        S      U[        S      U[        S      U[        S      U[        S      4n S nANS nAff = f)Nz*attempting io_counters() fallback (slower)r>   r?   rA   rC   rE   rG   )	r   proc_io_countersr   rE  rF  r   r  r  ru   )r  r   rJ  r  s       r0   io_countersProcess.io_counters  s    	''1C Cy  	$S))>???$DY{+,Y{+,Y{+,Y{+,Y012Y012C	s    * 
B.A0B))B.c                     [         R                  " U R                  5      nU(       a  [        R                  $ [        R
                  $ r   )r   proc_is_suspendedr   r   STATUS_STOPPEDSTATUS_RUNNING)r  	suspendeds     r0   r   Process.status  s1    **4884	))))))r/   c                 X    S n[         R                  " U R                  5      nU" U5      $ )Nc                 b    [        S5       Vs/ s H  nSU-  U -  (       d  M  UPM     sn$ s  snf )N@   r   )r  )r   is     r0   from_bitmask.Process.cpu_affinity_get.<locals>.from_bitmask!  s(    $Ry9y!Q!VqLAy999s   ,,)r   proc_cpu_affinity_getr   )r  rA  bitmasks      r0   cpu_affinity_getProcess.cpu_affinity_get  s(    	: ,,TXX6G$$r/   c                 2   S n[        [        [        [        5       5      5      5      nU H@  nXC;  d  M
  [	        U[
        5      (       d  SU< S3n[        U5      eSU< 3n[        U5      e   U" U5      n[        R                  " U R                  U5        g )Nc                 \    U (       d  SU < 3n[        U5      eSnU  H  nUSU-  -  nM     U$ )Nzinvalid argument r   r4   )r  )lsrD  outbs       r0   
to_bitmask,Process.cpu_affinity_set.<locals>.to_bitmask)  s<    )"0 o%Cq!t Jr/   zinvalid CPU z; an integer is required)r   r  r   r   r   r   r.  r  r   proc_cpu_affinity_setr   )r  r"  rL  allcpuscpurD  rD  s          r0   cpu_affinity_setProcess.cpu_affinity_set'  s    	 uS123C!!#s++(/GHC#C.($SG, o%  U#""488W5r/   c                      [         R                  " U R                  5      $ ! [         a@  n[	        U5      (       a*  [        S5        U R                  5       [        S      s S nA$ e S nAff = f)Nz*attempting num_handles() fallback (slower)r6   )r   proc_num_handlesr   rE  rF  r   r  r  r  s     r0   r6   Process.num_handlesA  sZ    	((22 	 %%BC(=)ABB		s    " 
A,4A' A,&A''A,c                 d    U R                  5       [        S      n[        R                  " US5      $ )Nr7   r   )r  r  r   pctxsw)r  r7   s     r0   num_ctx_switchesProcess.num_ctx_switchesK  s)    (>)BC~~lA..r/   )r  r  r   r   )F)inet).r*   r+   r,   r-   re  	__slots__r  r  r  r   r  r   r|  r  r  r  r  r  r  r  r  r  r  r  r  r8  r:   r<   r  r   r  r  r  r  r   r#  r'  r+  r1  r5  r   rE  rQ  r6   rX  r.   r)   r/   r0   r  r    s   ;3I&(  
,   " =  = &  &@. % % - -. ( ( 
" 
" () ()T # #   ; ;   9 9 4 4 5 5 &  &    4 4  
 7 7  
 5 5  $ * * % % 6 62   / /r/   r  r)   )r%   )NN)}re  rf  enumry  r   r  sysr  collectionsr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ImportErrorrJ  strlowerr  getwindowsversionrD  RuntimeError__extra__all__r    r  builtin_module_namesr  IntEnumr$   r!   MIB_TCP_STATE_ESTABCONN_ESTABLISHEDMIB_TCP_STATE_SYN_SENTCONN_SYN_SENTMIB_TCP_STATE_SYN_RCVDCONN_SYN_RECVMIB_TCP_STATE_FIN_WAIT1CONN_FIN_WAIT1MIB_TCP_STATE_FIN_WAIT2CONN_FIN_WAIT2MIB_TCP_STATE_TIME_WAITCONN_TIME_WAITMIB_TCP_STATE_CLOSED
CONN_CLOSEMIB_TCP_STATE_CLOSE_WAITCONN_CLOSE_WAITMIB_TCP_STATE_LAST_ACKCONN_LAST_ACKMIB_TCP_STATE_LISTENCONN_LISTENMIB_TCP_STATE_CLOSINGCONN_CLOSINGMIB_TCP_STATE_DELETE_TCBPSUTIL_CONN_NONE	CONN_NONEr   r'   globalsra  __members__r2   r<  r  r]   rc   ri   _fieldsro   rq   r   rs   ru   	lru_cacher   r   r   r   disk_io_countersr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r   r   r  pidsr  r  rF  rp  r|  r  r  r)   r/   r0   <module>r     s  
 '    	  
  "   ! " #  #  "  + ( " 8 8 0 0 2 4)*
$  S---_y"o>


 	g66!6!6!6!6  '"8"8  '"8"8  '"8"8w11!!7#:#:!6!6w22 4 4!!?7,,"6t|| 6 	  %% &  	  '' (   	
           
  !" #$ %& '( )* +, -	B {EG	 	7MN
 56 j$,,":;?VUO<-*?*?!@@B	  7 8 S!	0 "	0 	 		4;> (( 	:4	$
"
>  7(.	">2  1} }X yy__
==
8K/ K/{  C##$566!!#A&* DKK))3S(s   O P&	AP!!P&