
    PiD                        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gZ eed          Z eed          Z eed          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(        iZ)ej*        ej+        ej,        ej-        ej.        ej/        ej0        ej1        ej2        ej3        ej4        ej5        ej6        ej7        ej8        ej9        ej:        ej;        ej<        ej=        ej>        ej?        ej@        ejA        iZB eCdddddddd          ZDd ZEd ZFd ZGd  ZHd! ZId" ZJd# ZKejL        ZLejM        ZMd0d%ZNejO        ZOerejP        ZPd1d'ZQd( ZRd) ZSd* ZTd+ ZUd, ZVd- ZW G d. d/          ZXdS )2zAIX platform implementation.    N   )_common)_ntuples)_psposix)_psutil_aix)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ttynrc                      t          j                    \  } }}}}t          | |z
  | d          }t          j        | ||||          S )Nr   round_)cextvirtual_memr   ntpsvmem)totalavailfree_pinnedinusepercents         a/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/psutil/_psaix.pyvirtual_memoryr2   V   sK    )-)9););&E5$UU]U1===G9UE7E4888    c                      t          j                    \  } }}}| |z
  }t          || d          }t          j        | |||||          S )z=Swap system memory as a (total, used, free, sin, sout) tuple.r   r%   )r'   swap_memr   r)   sswap)r+   r-   sinsoutusedr0   s         r1   swap_memoryr:   \   sM    !]__E4d4<DD%222G9UD$d;;;r3   c                  f    t          j                    } t          j        d t	          |  D              S )z.Return system-wide CPU times as a named tuple.c                 ,    g | ]}t          |          S  )sum.0xs     r1   
<listcomp>zcpu_times.<locals>.<listcomp>l   s    555a3q66555r3   )r'   per_cpu_timesr)   	scputimesziprets    r1   	cpu_timesrH   i   s0    



C=553955566r3   c                  @    t          j                    } d | D             S )z6Return system per-CPU times as a list of named tuples.c                 *    g | ]}t          j        | S r=   )r)   rD   r?   s     r1   rB   z!per_cpu_times.<locals>.<listcomp>r   s    +++!CM1+++r3   )r'   rC   rF   s    r1   rC   rC   o   s$    



C++s++++r3   c                  N    	 t          j        d          S # t          $ r Y dS w xY w)z0Return the number of logical CPUs in the system.SC_NPROCESSORS_ONLNN)ossysconf
ValueErrorr=   r3   r1   cpu_count_logicalrP   u   s:    z/000   tts    
$$c                  `   g d} t          j        | t           j        t           j                  }|                                \  }}d ||fD             \  }}|j        dk    r| d| }t          |          |                                                                }t          |          pd S )N)lsdevz-Cc	processorstdoutstderrc              3   ^   K   | ](}|                     t          j        j                  V  )d S NdecodesysrU   encodingr?   s     r1   	<genexpr>z"cpu_count_cores.<locals>.<genexpr>   s3      NNahhsz233NNNNNNr3   r   z command error
)	
subprocessPopenPIPEcommunicate
returncodeRuntimeErrorstrip
splitlineslen)cmdprU   rV   msg
processorss         r1   cpu_count_coresrk   ~   s    
'
'
'CZ_Z_MMMA]]__NFFNNff=MNNNNFF|q00003**,,Jz??"d"r3   c                  `    t          j                    \  } }}}t          j        | |||          S )z*Return various CPU stats as a named tuple.)r'   	cpu_statsr)   	scpustats)ctx_switches
interruptssoft_interruptssyscallss       r1   rm   rm      s.    :>.:J:J7L*ox=z?HMMMr3   Fc                     g }t          j                    }|D ]T}|\  }}}}|dk    rd}| st          |          j        s(t	          j        ||||          }|                    |           U|S )zReturn system disk partitions.none )r'   disk_partitions
disk_usager+   r)   	sdiskpartappend)	allretlist
partitions	partitiondevice
mountpointfstypeoptsntuples	            r1   rv   rv      s     G%''J  	+4(
FDVF 	 j))/ vz64@@vNr3   c                     t           j        |          \  }}t          j        |          }g }|D ]O}|\  }}}	}
}}}||vr|	|vrt	          |||	|
||t
          |dk    r|nd          }|                    |           P|S )zReturn socket connections.  If pid == -1 return system-wide
    connections (as opposed to connections opened by one process only).
    r   Npid)r   	conn_tmapr'   net_connectionsr   TCP_STATUSESry   )kind_pidfamiliestypesrawlistrG   itemfdfamtype_laddrraddrr"   r   nts                  r1   r   r      s     '-OHe"4((G
C  481Cufchrzzt	
 	
 	
 	

2Jr3   c                     t           t          d} d t                      D             }i }|D ]-}t          j        |          }t          j        |          }d}d}t          j        dd|gt          j        t          j                  }|	                                \  }	}
d |	|
fD             \  }	}
|j
        dk    rNt          j        d	|	          }|7t          |                    d                    }|                    d          }d                    |          }d|v }|                     |t"                    }t%          j        |||||          ||<   /|S )z)Get NIC stats (isup, duplex, speed, mtu).)FullHalfc                     h | ]
}|d          S )r   r=   r?   s     r1   	<setcomp>znet_if_stats.<locals>.<setcomp>   s    ***aQqT***r3   ru   r   z/usr/bin/entstatz-drT   c              3   ^   K   | ](}|                     t          j        j                  V  )d S rX   rY   r?   s     r1   r]   znet_if_stats.<locals>.<genexpr>   D       
 
./AHHSZ())
 
 
 
 
 
r3   z"Running: (\d+) Mbps.*?(\w+) DuplexNr   r   ,running)r   r	   net_if_addrsr'   
net_if_mtunet_if_flagsr^   r_   r`   ra   rb   researchintgroupjoingetr
   r)   	snicstats)
duplex_mapnamesrG   namemtuflagsduplexspeedrh   rU   rV   	re_resultoutput_flagsisups                 r1   net_if_statsr      sr   )?CCJ**<>>***E
C J Jod##!$''
 t,??
 
 

 
 
4:F3C
 
 
 <1	5v I $IOOA..//"++xxE!(:;;M$sLIID		Jr3   c                  (    t          j                    S )z:The system boot time expressed in seconds since the epoch.)r'   	boot_timer=   r3   r1   r   r      s    >r3   c                      g } t          j                    }d}|D ]A}|\  }}}}}}	|s||v rd}t          j        |||||	          }
|                     |
           B| S )z:Return currently connected users as a list of namedtuples.)z:0.0z:0	localhost)r'   usersr)   suserry   )r{   r   r   r   userttyhostnametstampuser_processr   r   s              r1   r   r     s    GjllGI 
 
9=6c8V\3  	y  "HYtS(FC88rNr3   c                  V    d t          j        t                                D             S )z7Returns a list of PIDs currently running on the system.c                 T    g | ]%}|                                 t          |          &S r=   )isdigitr   r?   s     r1   rB   zpids.<locals>.<listcomp>  s+    IIIqQYY[[ICFFIIIr3   )rM   listdirr   r=   r3   r1   pidsr     s&    IIBJ'8'899IIIIr3   c                     t           j                            t           j                            t	                      t          |           d                    S )z&Check for the existence of a unix pid.psinfo)rM   pathexistsr   r   strr   s    r1   
pid_existsr   !  s4    7>>"',,'8'8#c((HMMNNNr3   c                 F     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|R i |S # t          t          f$ r7}t          |          st          ||          |t          |||          |d }~wt          $ r}t          ||          |d }~ww xY wrX   )
r   _ppid_nameFileNotFoundErrorProcessLookupErrorr   r   r   PermissionErrorr   )selfargskwargsr   r   r   errfuns          r1   wrapperz wrap_exceptions.<locals>.wrapper+  s    (DJ
4T
	33t-d---f---!#56 	: 	: 	: c?? 8#C..C7T400c9 	3 	3 	3sD))s2	3s    $ B
2A''B
4BB
)	functoolswraps)r   r   s   ` r1   wrap_exceptionsr   &  s:    
 _S3 3 3 3 3 Nr3   c                   v   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%dS dS )#Processz1Wrapper class around underlying C implementation.)_cacher   r   _procfs_pathr   c                 V    || _         d | _        d | _        t                      | _        d S rX   )r   r   r   r   r   )r   r   s     r1   __init__zProcess.__init__B  s+    

+--r3   c                 n    | j                             |            | j                            |            d S rX   )_proc_basic_infocache_activate
_proc_credr   s    r1   oneshot_enterzProcess.oneshot_enterH  s5    ,,T222&&t,,,,,r3   c                 n    | j                             |            | j                            |            d S rX   )r   cache_deactivater   r   s    r1   oneshot_exitzProcess.oneshot_exitL  s5    ..t444((.....r3   c                 @    t          j        | j        | j                  S rX   )r'   proc_basic_infor   r   r   s    r1   r   zProcess._proc_basic_infoP  s     #DHd.?@@@r3   c                 @    t          j        | j        | j                  S rX   )r'   	proc_credr   r   r   s    r1   r   zProcess._proc_credU  s     ~dh(9:::r3   c                     | j         dk    rdS t          j        | j         | j                                      d          S )Nr   swapper )r   r'   	proc_namer   rstripr   s    r1   r   zProcess.nameZ  s7    8q==9~dh(9::AA&IIIr3   c                    |                                  }|sdS |d         }t          j        j        |v rt          j                            |          sOt          j                            t          j                            |                                 |                    }t          j                            |          r@t          j                            |          r!t          j	        |t          j
                  r|S t          j                            |          }t          j        d                             d          D ]}t          j                            t          j                            ||                    }t          j                            |          r#t          j	        |t          j
                  r|c S dS )Nru   r   PATH:)cmdlinerM   r   sepisabsabspathr   cwdisfileaccessX_OKbasenameenvironsplit)r   r   exer   possible_exes        r1   r   zProcess.exea  sc    ,,.. 	2aj7;#7==%% Egoobgll488::s&C&CDDc""GNN3'' Ic27++
 
'""3''CJv&,,S11 	$ 	$D7??27<<c+B+BCCLw~~l++ $	bg1 1 $ $###rr3   c                 4    t          j        | j                  S rX   )r'   	proc_argsr   r   s    r1   r   zProcess.cmdline  s    ~dh'''r3   c                 4    t          j        | j                  S rX   )r'   proc_environr   r   s    r1   r   zProcess.environ  s     ***r3   c                 L    |                                  t          d                  S )Nr   r   proc_info_mapr   s    r1   r   zProcess.create_time      $$&&}]'CDDr3   c                 L    |                                  t          d                  S )Nr!   r  r   s    r1   r!   zProcess.num_threads  r	  r3   c                     t          j        | j                  }g }|D ]1\  }}}t          j        |||          }|                    |           2|s#t          j        | j         d| j                    |S )N/)	r'   r   r   r)   pthreadry   rM   statr   )r   r   r{   	thread_idutimestimer   s          r1   threadszProcess.threads  s    '11GG+2 ' ''	5%Yu==v&&&&  ;4,99tx99:::Nr3   inetc                 |    t          || j                  }|s#t          j        | j         d| j                    |S )N)r   r  )r   r   rM   r  r   )r   r   rG   s      r1   r   zProcess.net_connections  sH    d222  	7Gt(554855666
r3   c                 4    t          j        | j                  S rX   )r'   proc_priority_getr   r   s    r1   nice_getzProcess.nice_get  s    %dh///r3   c                 6    t          j        | j        |          S rX   )r'   proc_priority_setr   )r   values     r1   nice_setzProcess.nice_set  s    %dh666r3   c                 d    |                                  t          d                  | _        | j        S )Nr   )r   r  r   r   s    r1   r   zProcess.ppid  s'    **,,]6-BC
zr3   c                 d    |                                  \  }}}}}}t          j        |||          S rX   r   r)   puids)r   real	effectivesaved_s        r1   uidszProcess.uids  s2    *.//*;*;'i1ayy%000r3   c                 d    |                                  \  }}}}}}t          j        |||          S rX   r  )r   r#  r   r!  r"  s        r1   gidszProcess.gids  s2    *.//*;*;'1ay%yy%000r3   c                 \    t          j        | j        | j                  }t	          j        | S rX   )r'   proc_cpu_timesr   r   r)   	pcputimes)r   ts     r1   rH   zProcess.cpu_times  s&    $*;<<}a  r3   c                     |                                  t          d                  }|dz  dz	  |dz  z  }t          j        d          D ]#}t          j        |          j        |k    r|c S $d S )Nr#   l           i  z	/dev/**/*)r   r  globrM   r  st_rdev)r   ttydevdevs      r1   terminalzProcess.terminal  sx    &&((w)?@..25&6/J9[)) 	 	Cws||#v--


 .tr3   c                     | j         }	 t          j        | d| j         d          }|                    d          S # t
          $ r" t          j        | d| j                    Y dS w xY w)Nr  z/cwdru   )r   rM   readlinkr   r   r   r  )r   procfs_pathresults      r1   r   zProcess.cwd  s    '	[K!@!@$(!@!@!@AAF==%%%  	 	 	G{//TX//00022	s   3= (A)(A)c                     |                                  }|t          d                  dz  }|t          d                  dz  }t          j        ||          S )Nr   i   r   )r   r  r)   pmem)r   rG   r   r   s       r1   memory_infozProcess.memory_info  sM    ##%%-&'$.-&'$.xS!!!r3   c                     |                                  t          d                  }t                              |d          S )Nr"   ?)r   r  PROC_STATUSESr   )r   codes     r1   r"   zProcess.status  s3    $$&&}X'>?  s+++r3   c           	      v   t          j        ddt          | j                  gt           j        t           j                  }|                                \  }}d ||fD             \  }}d|                                v rt          | j        | j                  t          j
        d|          }g }|D ]\  }}|                                }|                    d          r
|dd          }|                                d	k    rQ|                    t          j        |t!          |                               |S )
Nz/usr/bin/procfilesz-nrT   c              3   ^   K   | ](}|                     t          j        j                  V  )d S rX   rY   r?   s     r1   r]   z%Process.open_files.<locals>.<genexpr>  r   r3   zno such processz(\d+): S_IFREG.*name:(.*)\nz//r   zcannot be retrieved)r^   r_   r   r   r`   ra   lowerr   r   r   findallrd   
startswithry   r)   	popenfiler   )r   rh   rU   rV   	procfilesr{   r   r   s           r1   
open_fileszProcess.open_files  s5    !4TX7??
 
 

 
 
4:F3C
 
 
 ..$*555J=vFF	! 	9 	9HB::<<Dt$$  ABBxzz||444NN3=s2ww778888r3   c                 ~    | j         dk    rdS t          t          j        | j         d| j          d                    S )Nr   r  z/fd)r   rf   rM   r   r   r   s    r1   num_fdszProcess.num_fds  s@    8q==12:!2BBTXBBBCCDDDr3   c                 L    t          j        t          j        | j                   S rX   )r)   pctxswr'   proc_num_ctx_switchesr   r   s    r1   num_ctx_switcheszProcess.num_ctx_switches  s    z45dh??@@r3   Nc                 6    t          j        | j        |          S rX   )r   wait_pidr   )r   timeouts     r1   waitzProcess.wait  s     7333r3   c                     	 t          j        | j                  \  }}}}nB# t          $ r5}t	          | j                  st          | j        | j                  | d }~ww xY wt          j        ||||          S rX   )	r'   r   r   OSErrorr   r   r   r)   pio)r   rcwcrbwbr   s         r1   io_counterszProcess.io_counters  s    !%!6tx!@!@BBB    "$(++ G'$*==3F 72r2r***s   ! 
A 0AA )r  rX   )&__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&  rH   r1  r   r8  memory_full_infor"   rD  rF  rJ  rN  HAS_PROC_IO_COUNTERSrV  r=   r3   r1   r   r   =  s;       ;;CCCI. . .- - -/ / / A A  _A ; ;  _; J J _J   _: ( ( _( + + _+ E E _E E E _E  		 	 
	  
 
 
 _
 0 0 _0 7 7 _7   _ 1 1 _1 1 1 _1 ! ! _!   _   _ " " _" #, , _,
  2 E E _E
 A A _A 4 4 4 _4  +			+ 		+ 
		+ 		+ 		++ +r3   r   )F)r   )YrZ  r   r-  rM   r   r^   r[   ru   r   r   r)   r   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  r2   r:   rH   rC   rP   rk   rm   disk_io_countersrw   rv   r   r   r   r   r   r   r   r   r   r   r=   r3   r1   <module>r     s   # "      				 				     



                   ! ! ! ! ! ! $ $ $ $ $ $ $ $ $ $ $ $ ' ' ' ' ' ' ! ! ! ! ! ! " " " " " " " " " " " " # # # # # # $ $ $ $ $ $ + + + + + + " " " " " " gdN++gd$566 wt%788 D	
, 	Iw"J%L'(J&J& 	73--'0'0/g('1-g)w+7, 	
			

	 	 	"9 9 9< < <7 7 7, , ,  	# 	# 	#N N N (  
   4   +*O   6# # #V  
  0J J J
O O O
  .e+ e+ e+ e+ e+ e+ e+ e+ e+ e+r3   