
    XhLG                        d Z ddlZddlZddl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 dgZ eed      Z eed      Z eed      Z ej>                         Z ejB                  Z!ejD                  e
jF                  ejH                  e
jJ                  ejL                  e
jN                  ejP                  e
jN                  ejR                  e
jT                  iZ+ejX                  e
jZ                  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
j                  ej                  e
j                  iZD eEdddddddd      ZF eddd g      ZGeGZH ed!g d"      ZI ed#g d$      ZJd% ZKd& ZLd' ZMd( ZNd) ZOd* ZPd+ ZQej                  ZRej                  ZSd6d,ZTej                  ZUerej                  ZVd7d-ZWd. ZXd/ ZYd0 ZZd1 Z[d2 Z\d3 Z] G d4 d5      Z^y)8zAIX platform implementation.    N)
namedtuple   )_common)_psposix)_psutil_aix)_psutil_posix)NIC_DUPLEX_FULL)NIC_DUPLEX_HALF)NIC_DUPLEX_UNKNOWN)AccessDenied)NoSuchProcess)ZombieProcess)conn_to_ntuple)get_procfs_path)memoize_when_activated)usage_percentPROCFS_PATHproc_threadsnet_io_countersproc_io_counters                  )ppidrssvmscreate_timenicenum_threadsstatusttynrpmemr   r   	scputimes)usersystemidleiowaitsvmem)total	availablepercentusedfreec                  v    t        j                         \  } }}}}t        | |z
  | d      }t        | ||||      S )Nr   round_)cextvirtual_memr   r+   )r,   availr0   _pinnedinuser.   s         Y/var/www/html/cjf29f/d23bf782/d32178f2/venv/lib/python3.12/site-packages/psutil/_psaix.pyvirtual_memoryr:   g   s@    )-)9)9);&E5$UU]U1=Gwt44    c                      t        j                         \  } }}}| |z
  }t        || d      }t        j                  | |||||      S )z=Swap system memory as a (total, used, free, sin, sout) tuple.r   r2   )r4   swap_memr   r   sswap)r,   r0   sinsoutr/   r.   s         r9   swap_memoryrA   m   sF    !]]_E4d4<DD%2G==dGS$??r;   c                  ~    t        j                         } t        t        |  D cg c]  }t	        |       c} S c c}w )z.Return system-wide CPU times as a named tuple.)r4   per_cpu_timesr&   zipsumretxs     r9   	cpu_timesrI   z   s1    



CsCy1!s1v1221s   :c                  `    t        j                         } | D cg c]
  }t        |  c}S c c}w )z6Return system per-CPU times as a list of named tuples.)r4   rC   r&   rF   s     r9   rC   rC      s(    



C#&'aIqM'''s   +c                  L    	 t        j                  d      S # t        $ r Y yw xY w)z0Return the number of logical CPUs in the system.SC_NPROCESSORS_ONLNN)ossysconf
ValueError r;   r9   cpu_count_logicalrQ      s)    zz/00 s    	##c                  P   g d} t        j                  | t         j                  t         j                        }|j                         \  }}d ||fD        \  }}|j                  dk7  r| d| }t        |      |j                         j                         }t        |      xs d S )N)lsdevz-Cc	processorstdoutstderrc              3   n   K   | ]-  }|j                  t        j                  j                         / y wNdecodesysrV   encoding.0rH   s     r9   	<genexpr>z"cpu_count_cores.<locals>.<genexpr>   s#     Nahhszz223N   35r   z command error
)	
subprocessPopenPIPEcommunicate
returncodeRuntimeErrorstrip
splitlineslen)cmdprV   rW   msg
processorss         r9   cpu_count_coresro      s    
'CZ__Z__MA]]_NFFNff=MNNFF||q'x03**,Jz?"d"r;   c                  d    t        j                         \  } }}}t        j                  | |||      S )z*Return various CPU stats as a named tuple.)r4   	cpu_statsr   	scpustats)ctx_switches
interruptssoft_interruptssyscallss       r9   rq   rq      s3    :>..:J7L*oxj/8 r;   c                     g }t        j                         }|D ]Q  }|\  }}}}|dk(  rd}| st        |      j                  s)t	        j
                  ||||      }|j                  |       S |S )zReturn system disk partitions.none )r4   disk_partitions
disk_usager,   r   	sdiskpartappend)	allretlist
partitions	partitiondevice
mountpointfstypeoptsntuples	            r9   rz   rz      s     G%%'J 	+4(
FDVF j)//""6:vtDv Nr;   c                     t         j                  |    \  }}t        j                  |      }g }|D ]E  }|\  }}}	}
}}}||vr|	|vrt	        |||	|
||t
        |dk(  r|nd      }|j                  |       G |S )zReturn socket connections.  If pid == -1 return system-wide
    connections (as opposed to connections opened by one process only).
    Npid)r   	conn_tmapr4   net_connectionsr   TCP_STATUSESr}   )kind_pidfamiliestypesrawlistrG   itemfdfamtype_laddrraddrr#   r   nts                  r9   r   r      s     ''-OHe""4(G
C 481Cufchrzt	
 	

2!" Jr;   c                     t         t        d} t               D ch c]  }|d   	 }}i }|D ]"  }t        j                  |      }t        j
                  |      }d}d}t        j                  dd|gt        j                  t        j                        }	|	j                         \  }
}d |
|fD        \  }
}|	j                  dk(  rCt        j                  d|
      }|+t        |j                  d	            }|j                  d
      }dj                  |      }d|v }| j!                  |t"              }t%        j&                  |||||      ||<   % |S c c}w )z)Get NIC stats (isup, duplex, speed, mtu).)FullHalfr   ry   z/usr/bin/entstatz-drU   c              3   n   K   | ]-  }|j                  t        j                  j                         / y wrY   rZ   r^   s     r9   r`   znet_if_stats.<locals>.<genexpr>   (      
./AHHSZZ(()
ra   z"Running: (\d+) Mbps.*?(\w+) Duplexr   r   ,running)r	   r
   net_if_addrs
cext_posix
net_if_mtunet_if_flagsrb   rc   rd   re   rf   researchintgroupjoingetr   r   	snicstats)
duplex_maprH   namesrG   namemtuflagsduplexspeedrl   rV   rW   	re_resultoutput_flagsisups                  r9   net_if_statsr      sS   )?CJ'>*aQqT*E*
C N##D)''-
 t,????

 
4:F3C
 <<1		5vI $IOOA./"+xxE!(:;%%dFE3MD	;N< JA +s   Ec                  *    t        j                         S )z:The system boot time expressed in seconds since the epoch.)r4   	boot_timerP   r;   r9   r   r     s    >>r;   c                      g } t        j                         }d}|D ]>  }|\  }}}}}}	|s||v rd}t        j                  |||||	      }
| j	                  |
       @ | S )z:Return currently connected users as a list of namedtuples.)z:0.0z:0	localhost)r4   usersr   suserr}   )r   r   r   r   r'   ttyhostnametstampuser_processr   r   s              r9   r   r     sv    GjjlGI 
9=6c8V\3 y "H]]4h<r
 Nr;   c                      t        j                  t                     D  cg c]  } | j                         st	        |         c} S c c} w )z7Returns a list of PIDs currently running on the system.)rM   listdirr   isdigitr   )rH   s    r9   pidsr   /  s.    JJ'89IqQYY[CFIIIs
   AAc                     t         j                  j                  t         j                  j                  t	               t        |       d            S )z&Check for the existence of a unix pid.psinfo)rM   pathexistsr   r   strr   s    r9   
pid_existsr   4  s-    77>>"'',,'8#c(HMNNr;   c                 B     t        j                          fd       }|S )zCall callable into a try/except clause and translate ENOENT,
    EACCES and EPERM in NoSuchProcess or AccessDenied exceptions.
    c                    | j                   | j                  | j                  }}}	  | g|i |S # t        t        f$ r+}t        |      st        ||      |t        |||      |d }~wt        $ r}t        ||      |d }~ww xY wrY   )
r   _ppid_nameFileNotFoundErrorProcessLookupErrorr   r   r   PermissionErrorr   )selfargskwargsr   r   r   errfuns          r9   wrapperz wrap_exceptions.<locals>.wrapper>  s    ((DJJ

4T
	3t-d-f--!#56 	: c?#C.C7T40c9 	3sD)s2	3s!   3 B&A((B4BB)	functoolswraps)r   r   s   ` r9   wrap_exceptionsr   9  s'    
 __S3 3 Nr;   c                      e Zd ZdZg dZd Zd Zd Zee	d               Z
ee	d               Zed        Zed	        Zed
        Zed        Zed        Zed        Zered        Zed 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Zed        Zd Z ed        Z!ed        Z"ed!d       Z#e$r	ed        Z%yy)"Processz1Wrapper class around underlying C implementation.)_cacher   r   _procfs_pathr   c                 L    || _         d | _        d | _        t               | _        y rY   )r   r   r   r   r   )r   r   s     r9   __init__zProcess.__init__U  s"    

+-r;   c                 p    | j                   j                  |        | j                  j                  |        y rY   )_proc_basic_infocache_activate
_proc_credr   s    r9   oneshot_enterzProcess.oneshot_enter[  s(    ,,T2&&t,r;   c                 p    | j                   j                  |        | j                  j                  |        y rY   )r   cache_deactivater   r   s    r9   oneshot_exitzProcess.oneshot_exit_  s(    ..t4((.r;   c                 V    t        j                  | j                  | j                        S rY   )r4   proc_basic_infor   r   r   s    r9   r   zProcess._proc_basic_infoc  s!     ##DHHd.?.?@@r;   c                 V    t        j                  | j                  | j                        S rY   )r4   	proc_credr   r   r   s    r9   r   zProcess._proc_credh  s     ~~dhh(9(9::r;   c                     | j                   dk(  ryt        j                  | j                   | j                        j	                  d      S )Nr   swapper )r   r4   	proc_namer   rstripr   s    r9   r   zProcess.namem  s6    88q=~~dhh(9(9:AA&IIr;   c                    | j                         }|sy|d   }t        j                  j                  |v rt        j                  j	                  |      sKt        j                  j                  t        j                  j                  | j                         |            }t        j                  j	                  |      rEt        j                  j                  |      r&t        j                  |t        j                        r|S t        j                  j                  |      }t        j                  d   j                  d      D ]  }t        j                  j                  t        j                  j                  ||            }t        j                  j                  |      s`t        j                  |t        j                        s|c S  y)Nry   r   PATH:)cmdlinerM   r   sepisabsabspathr   cwdisfileaccessX_OKbasenameenvironsplit)r   r   exer   possible_exes        r9   r  zProcess.exet  s%    ,,.aj77;;#77==%ggoobggll488:s&CDc"GGNN3'IIc277+
''""3'CJJv&,,S1 	$D77??277<<c+BCLww~~l+		bgg1 $#	$ r;   c                 @    t        j                  | j                        S rY   )r4   	proc_argsr   r   s    r9   r   zProcess.cmdline  s    ~~dhh''r;   c                 @    t        j                  | j                        S rY   )r4   proc_environr   r   s    r9   r   zProcess.environ  s      **r;   c                 6    | j                         t        d      S )Nr    r   proc_info_mapr   s    r9   r    zProcess.create_time      $$&}]'CDDr;   c                 6    | j                         t        d      S )Nr"   r  r   s    r9   r"   zProcess.num_threads  r
  r;   c                    t        j                  | j                        }g }|D ].  \  }}}t        j                  |||      }|j                  |       0 |s.t        j                  | j                   d| j                          |S )N/)	r4   r   r   r   pthreadr}   rM   statr   )r   r   r   	thread_idutimestimer   s          r9   threadszProcess.threads  s{    ''1GG+2 ''	5% E5Av&' 4,,-Qtxxj9:Nr;   c                     t        || j                        }|s.t        j                  | j                   d| j                          |S )N)r   r  )r   r   rM   r  r   )r   r   rG   s      r9   r   zProcess.net_connections  s>    d2 GGt(()488*56
r;   c                 @    t        j                  | j                        S rY   )r   getpriorityr   r   s    r9   nice_getzProcess.nice_get  s    %%dhh//r;   c                 B    t        j                  | j                  |      S rY   )r   setpriorityr   )r   values     r9   nice_setzProcess.nice_set  s    %%dhh66r;   c                 X    | j                         t        d      | _        | j                  S )Nr   )r   r	  r   r   s    r9   r   zProcess.ppid  s&    **,]6-BC
zzr;   c                 ^    | j                         \  }}}}}}t        j                  |||      S rY   r   r   puids)r   real	effectivesaved_s        r9   uidszProcess.uids  s.    *.//*;'i1a}}T9e44r;   c                 ^    | j                         \  }}}}}}t        j                  |||      S rY   r  )r   r#  r   r!  r"  s        r9   gidszProcess.gids  s.    *.//*;'1ay%}}T9e44r;   c                 z    t        j                  | j                  | j                        }t	        j
                  | S rY   )r4   proc_cpu_timesr   r   r   	pcputimes)r   ts     r9   rI   zProcess.cpu_times  s/    $*;*;<  !$$r;   c                     | j                         t        d      }|dz  dz	  |dz  z  }t        j                  d      D ](  }t        j                  |      j
                  |k(  s&|c S  y )Nr$   l           i  z	/dev/**/*)r   r	  globrM   r  st_rdev)r   ttydevdevs      r9   terminalzProcess.terminal  sk    &&(w)?@..25&6/J99[) 	Cwws|##v-
	 r;   c                     | j                   }	 t        j                  | d| j                   d      }|j	                  d      S # t
        $ r' t        j                  | d| j                          Y yw xY w)Nr  z/cwdry   )r   rM   readlinkr   r   r   r  )r   procfs_pathresults      r9   r   zProcess.cwd  sm    ''	[[K=$((4!@AF==%%  	GG{m1TXXJ/0	s   5A -A43A4c                 v    | j                         }|t        d      dz  }|t        d      dz  }t        ||      S )Nr   i   r   )r   r	  r%   )r   rG   r   r   s       r9   memory_infozProcess.memory_info  sD    ##%-&'$.-&'$.C~r;   c                 b    | j                         t        d      }t        j                  |d      S )Nr#   ?)r   r	  PROC_STATUSESr   )r   codes     r9   r#   zProcess.status  s-    $$&}X'>?  s++r;   c           	      T   t        j                  ddt        | j                        gt         j                  t         j                        }|j                         \  }}d ||fD        \  }}d|j                         v r t        | j                  | j                        t        j                  d|      }g }|D ]m  \  }}|j                         }|j                  d      r|dd  }|j                         d	k(  r@|j                  t        j                  |t!        |                   o |S )
Nz/usr/bin/procfilesz-nrU   c              3   n   K   | ]-  }|j                  t        j                  j                         / y wrY   rZ   r^   s     r9   r`   z%Process.open_files.<locals>.<genexpr>  r   ra   zno such processz(\d+): S_IFREG.*name:(.*)\nz//r   zcannot be retrieved)rb   rc   r   r   rd   re   lowerr   r   r   findallrh   
startswithr}   r   	popenfiler   )r   rl   rV   rW   	procfilesr   r   r   s           r9   
open_fileszProcess.open_files  s    !4TXX7????

 
4:F3C
 .$**55JJ=vF	! 	=HB::<Dt$ABxzz|44NN7,,T3r7;<	= r;   c                     | j                   dk(  ryt        t        j                  | j                   d| j                    d            S )Nr   r  z/fd)r   rj   rM   r   r   r   s    r9   num_fdszProcess.num_fds  s<    88q=2::!2!2 31TXXJcBCDDr;   c                 `    t        j                  t        j                  | j                         S rY   )r   pctxswr4   proc_num_ctx_switchesr   r   s    r9   num_ctx_switcheszProcess.num_ctx_switches!  s     ~~t99$((CDDr;   Nc                 X    t        j                  | j                  || j                        S rY   )r   wait_pidr   r   )r   timeouts     r9   waitzProcess.wait%  s      7DJJ??r;   c                    	 t        j                  | j                        \  }}}}t        j                  ||||      S # t        $ r<}t	        | j                        s!t        | j                  | j                        | d }~ww xY wrY   )	r4   r   r   OSErrorr   r   r   r   pio)r   rcwcrbwbr   s         r9   io_counterszProcess.io_counters+  st    !%!6!6txx!@BB ;;r2r2..   "$((+'$**=3Fs   $> 	B7A>>B)inetrY   )&__name__
__module____qualname____doc__	__slots__r   r   r   r   r   r   r   r   r  r   r   r    r"   HAS_THREADSr  r   r  r  r   r$  r&  rI   r1  r   r7  memory_full_infor#   rC  rE  rI  rM  HAS_PROC_IO_COUNTERSrU  rP   r;   r9   r   r   P  s-   ;CI.-/ A  A ;  ; J J  : ( ( + + E E E E 		 
	  
 
 0 0 7 7   5 5 5 5 % %       #, ,
2 E E
 E E @ @ 			/ 
		/ r;   r   )F)r   )_rZ  r   r-  rM   r   rb   r\   collectionsr   ry   r   r   r   r4   r   r   r	   r
   r   r   r   r   r   r   r   r   __extra__all__hasattrr\  HAS_NET_IO_COUNTERSr^  getpagesize	PAGE_SIZEAF_LINKSIDLSTATUS_IDLESZOMBSTATUS_ZOMBIESACTIVESTATUS_RUNNINGSSWAPSSTOPSTATUS_STOPPEDr:  TCPS_ESTABLISHEDCONN_ESTABLISHEDTCPS_SYN_SENTCONN_SYN_SENTTCPS_SYN_RCVD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   dictr	  r%   pfullmemr&   r+   r:   rA   rI   rC   rQ   ro   rq   disk_io_countersr{   rz   r   r   r   r   r   r   r   r   r   r   rP   r;   r9   <module>r     s   #   	 	  
 "   ! ) $ $ ' ! " " # $ + "   dN+d$56 t%78 "J""$	


 	IIw""JJ%%LL'((JJ&&JJ&& 	733----'00'00//g(('11--g))w++7,, 	
			

	$ &5%.){$HI	7MN5@3(	# ((   
4 &&**O6#V
0J
O
.e/ e/r;   