
    gH                        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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jH                         Z%ejL                  Z&ejN                  e
jP                  ejR                  e
jT                  ejV                  e
jX                  ejZ                  e
jX                  ej\                  e
j^                  iZ0e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                  e
j                  ej                  e
j                  ej                  e
j                  iZI eJdddddddd !      ZK ed"d#d$g      ZLeLZM ed%g d&      ZN ed'g d(      ZOd) ZPd* ZQd+ ZRd, ZSd- ZTd. ZUd/ ZVej                  ZWej                  ZXd:d0ZYej                  ZZe"rej                  Z[d;d1Z\d2 Z]d3 Z^d4 Z_d5 Z`d6 Zad7 Zb G d8 d9      Zcy)<z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)PY3)FileNotFoundError)PermissionError)ProcessLookupError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/   )r0   availr4   _pinnedinuser2   s         B/var/www/openai/venv/lib/python3.12/site-packages/psutil/_psaix.pyvirtual_memoryr>   k   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   r6   )r8   swap_memr   r   sswap)r0   r4   sinsoutr3   r2   s         r=   swap_memoryrE   q   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.)r8   per_cpu_timesr*   zipsumretxs     r=   	cpu_timesrM   ~   s5    



CsCy1y!s1vy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.)r8   rG   r*   rJ   s     r=   rG   rG      s,    



C#&'3aIqM3'''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?   r=   cpu_count_logicalrU      s)    zz/00 s    	##c                  X   g d} t        j                  | t         j                  t         j                        }|j                         \  }}t        rd ||fD        \  }}|j
                  dk7  rt        | d|      |j                         j                         }t        |      xs d S )N)lsdevz-Cc	processorstdoutstderrc              3   n   K   | ]-  }|j                  t        j                  j                         / y wNdecodesysrZ   encoding.0rL   s     r=   	<genexpr>z"cpu_count_cores.<locals>.<genexpr>   s(      
3CaAHHSZZ(()3C   35r   z command error
)

subprocessPopenPIPEcommunicater   
returncodeRuntimeErrorstrip
splitlineslen)cmdprZ   r[   
processorss        r=   cpu_count_coresrr      s    
'CZ__Z__MA]]_NFF

4:F3C
 	||qS&ABB**,Jz?"d"r?   c                  d    t        j                         \  } }}}t        j                  | |||      S )z*Return various CPU stats as a named tuple.)r8   	cpu_statsr   	scpustats)ctx_switches
interruptssoft_interruptssyscallss       r=   rt   rt      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 )r8   disk_partitions
disk_usager0   r   	sdiskpartappend)	allretlist
partitions	partitiondevice
mountpointfstypeoptsntuples	            r=   r}   r}      s{     G%%'J	+4(
FDVF j)//""6:vtDv   Nr?   c                    t         j                  }| |vr7t        d| ddj                  |D cg c]  }t	        |       c}            t         j                  |    \  }}t        j                  |      }g }|D ]E  }|\  }	}
}}}}}|
|vr||vrt        |	|
||||t        |dk(  r|nd      }|j                  |       G |S c c}w )zReturn socket connections.  If pid == -1 return system-wide
    connections (as opposed to connections opened by one process only).
    zinvalid z kind argument; choose between z, Npid)
r   	conn_tmaprS   joinreprr8   net_connectionsr   TCP_STATUSESr   )kind_pidcmaprL   familiestypesrawlistrK   itemfdfamtype_laddrraddrr'   r   nts                    r=   r   r      s     D4TYY6AQ679
 	
 ''-OHe""4(G
C481Cufchrzt	
 	

2! " J-  7s   Cc                     t         t        d} t        t               D cg c]  }|d   	 c}      }i }|D ](  }t	        j
                  |      }t	        j                  |      }d}d}t        j                  dd|gt        j                  t        j                        }	|	j                         \  }
}t        r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   r|   z/usr/bin/entstatz-drY   c              3   n   K   | ]-  }|j                  t        j                  j                         / y wr]   r^   rb   s     r=   rd   znet_if_stats.<locals>.<genexpr>  (      7G!,,-7Gre   z"Running: (\d+) Mbps.*?(\w+) Duplexr   r   ,running)r	   r
   setnet_if_addrs
cext_posix
net_if_mtunet_if_flagsrf   rg   rh   ri   r   rj   researchintgroupr   getr   r   	snicstats)
duplex_maprL   namesrK   namemtuflagsduplexspeedrp   rZ   r[   	re_resultoutput_flagsisups                  r=   net_if_statsr      sU   )?CJ|~.~!1~./E
C##D)''-
 t,????

 8>7GNFF <<1		5vI $IOOA./"+xxE!(:;%%dFE3MD	= > JC /s   E$c                  *    t        j                         S )z:The system boot time expressed in seconds since the epoch.)r8   	boot_timerT   r?   r=   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)r8   usersr   suserr   )r   r   r   r   r+   ttyhostnametstampuser_processr   r   s              r=   r   r   $  sq    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.)rQ   listdirr   isdigitr   )rL   s    r=   pidsr   <  s4    JJ'89I9qQYY[CF9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)rQ   pathexistsr   r   strr   s    r=   
pid_existsr   A  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                 T   	  | g|i |S # t         t        f$ ra t        | j                        s t	        | j                  | j
                        t        | j                  | j
                  | j                        t        $ r! t        | j                  | j
                        w xY wr]   )
r   r   r   r   r   _namer   _ppidr   r   )selfargskwargsfuns      r=   wrapperz wrap_exceptions.<locals>.wrapperK  s    	5t-d-f--!#56 	F dhh'#DHHdjj99#DHHdjj$**EE 	5txx44	5s
    BB')	functoolswraps)r   r   s   ` r=   wrap_exceptionsr   F  s'    
 __S5 5 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 r]   )r   r   r   r   r   )r   r   s     r=   __init__zProcess.__init__b  s"    

+-r?   c                 p    | j                   j                  |        | j                  j                  |        y r]   )_proc_basic_infocache_activate
_proc_credr   s    r=   oneshot_enterzProcess.oneshot_enterh  s(    ,,T2&&t,r?   c                 p    | j                   j                  |        | j                  j                  |        y r]   )r   cache_deactivater   r   s    r=   oneshot_exitzProcess.oneshot_exitl  s(    ..t4((.r?   c                 V    t        j                  | j                  | j                        S r]   )r8   proc_basic_infor   r   r   s    r=   r   zProcess._proc_basic_infop  s!     ##DHHd.?.?@@r?   c                 V    t        j                  | j                  | j                        S r]   )r8   	proc_credr   r   r   s    r=   r   zProcess._proc_credu  s     ~~dhh(9(9::r?   c                     | j                   dk(  ryt        j                  | j                   | j                        j	                  d      S )Nr   swapper )r   r8   	proc_namer   rstripr   s    r=   r   zProcess.namez  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)Nr|   r   PATH:)cmdlinerQ   r   sepisabsabspathr   cwdisfileaccessX_OKbasenameenvironsplit)r   r   exer   possible_exes        r=   r  zProcess.exe  s     ,,.aj77;;#77==%ggoobggll488:s&CDc"GGNN3'IIc277+
''""3'CJJv&,,S1D77??277<<c+BCLww~~l+		bgg1 $# 2 r?   c                 @    t        j                  | j                        S r]   )r8   	proc_argsr   r   s    r=   r   zProcess.cmdline  s    ~~dhh''r?   c                 @    t        j                  | j                        S r]   )r8   proc_environr   r   s    r=   r  zProcess.environ  s      **r?   c                 6    | j                         t        d      S )Nr$   r   proc_info_mapr   s    r=   r$   zProcess.create_time      $$&}]'CDDr?   c                 6    | j                         t        d      S )Nr&   r
  r   s    r=   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/)	r8   r   r   r   pthreadr   rQ   statr   )r   r   r   	thread_idutimestimer   s          r=   threadszProcess.threads  so    ''1GG+2'	5% E5Av& ,3 4#4#4dhh?@Nr?   c                     t        || j                        }|s.t        j                  | j                  d| j                         |S )N)r   r  )r   r   rQ   r  r   )r   r   rK   s      r=   r   zProcess.net_connections  s7    d2 GGt00$((;<
r?   c                 @    t        j                  | j                        S r]   )r   getpriorityr   r   s    r=   nice_getzProcess.nice_get  s    %%dhh//r?   c                 B    t        j                  | j                  |      S r]   )r   setpriorityr   )r   values     r=   nice_setzProcess.nice_set  s    %%dhh66r?   c                 X    | j                         t        d      | _        | j                  S )Nr!   )r   r  r   r   s    r=   r!   zProcess.ppid  s&    **,]6-BC
zzr?   c                 ^    | j                         \  }}}}}}t        j                  |||      S r]   r   r   puids)r   real	effectivesaved_s        r=   uidszProcess.uids  s.    *.//*;'i1a}}T9e44r?   c                 ^    | j                         \  }}}}}}t        j                  |||      S r]   r   )r   r%  r"  r#  r$  s        r=   gidszProcess.gids  s.    *.//*;'1ay%}}T9e44r?   c                 z    t        j                  | j                  | j                        }t	        j
                  | S r]   )r8   proc_cpu_timesr   r   r   	pcputimes)r   ts     r=   rM   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  globrQ   r  st_rdev)r   ttydevdevs      r=   terminalzProcess.terminal  sf    &&(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/cwdr|   )r   rQ   readlinkr   r   r   r  )r   procfs_pathresults      r=   r   zProcess.cwd  s_    ''	[[TXX!FGF==%%  	GG{DHH56	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   rK   r"   r#   s       r=   memory_infozProcess.memory_info   sD    ##%-&'$.-&'$.C~r?   c                 b    | j                         t        d      }t        j                  |d      S )Nr'   ?)r   r  PROC_STATUSESr   )r   codes     r=   r'   zProcess.status	  s-    $$&}X'>?  s++r?   c           	      `   t        j                  ddt        | j                        gt         j                  t         j                        }|j                         \  }}t        r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-nrY   c              3   n   K   | ]-  }|j                  t        j                  j                         / y wr]   r^   rb   s     r=   rd   z%Process.open_files.<locals>.<genexpr>  r   re   zno such processz(\d+): S_IFREG.*name:(.*)\nz//r   zcannot be retrieved)rf   rg   r   r   rh   ri   r   lowerr   r   r   findallrl   
startswithr   r   	popenfiler   )r   rp   rZ   r[   	procfilesr   r   r   s           r=   
open_fileszProcess.open_files  s    !4TXX7????

 8>7GNFF .$**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   rn   rQ   r   r   r   s    r=   num_fdszProcess.num_fds)  s3    88q=2::D,=,=txxHIJJr?   c                 `    t        j                  t        j                  | j                         S r]   )r   pctxswr8   proc_num_ctx_switchesr   r   s    r=   num_ctx_switcheszProcess.num_ctx_switches/  s     ~~t99$((CDDr?   Nc                 X    t        j                  | j                  || j                        S r]   )r   wait_pidr   r   )r   timeouts     r=   waitzProcess.wait3  s      7DJJ??r?   c                    	 t        j                  | j                        \  }}}}t        j                  ||||      S # t        $ r7 t	        | j                        s t        | j                  | j                         w xY wr]   )	r8   r   r   OSErrorr   r   r   r   pio)r   rcwcrbwbs        r=   io_counterszProcess.io_counters9  sq    !%!6!6txx!@BB ;;r2r2..   "$((+'$**==s
   $> A A>)inetr]   )&__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(  rM   r3  r   r9  memory_full_infor'   rE  rG  rK  rO  HAS_PROC_IO_COUNTERSrW  rT   r?   r=   r   r   ]  s-   ;CI.-/ A  A ;  ; J J  : ( ( + + E E E E 		 
	  
 
 0 0 7 7   5 5 5 5 % %       #, ,
4 K K
 E E @ @ 			/ 
		/ r?   r   )F)r   )dr\  r   r/  rQ   r   rf   r`   collectionsr   r|   r   r   r   r8   r   r   r	   r
   r   r   r   r   r   r   r   r   _compatr   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>   rE   rM   rG   rU   rr   rt   disk_io_countersr~   r}   r   r   r   r   r   r   r   r   r   r   rT   r?   r=   <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B$X
0J
O
.f/ f/r?   