
    = /iG                        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
jB                  ejD                  e
jF                  ejH                  e
jJ                  ejL                  e
jJ                  ejN                  e
jP                  iZ)ejT                  e
jV                  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                  iZB eCdddddddd      ZD edddg      ZEeEZF ed g d!      ZG ed"g d#      ZHd$ ZId% ZJd& ZKd' ZLd( ZMd) ZNd* ZOej                  ZPej                  ZQd5d+ZRej                  ZSerej                  ZTd6d,ZUd- ZVd. ZWd/ ZXd0 ZYd1 ZZd2 Z[ G d3 d4      Z\y)7zAIX platform implementation.    N)
namedtuple   )_common)_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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+   availr/   _pinnedinuser-   s         C/srv/sistema/bot/venv/lib/python3.12/site-packages/psutil/_psaix.pyvirtual_memoryr9   e   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   r1   )r3   swap_memr   r   sswap)r+   r/   sinsoutr.   r-   s         r8   swap_memoryr@   k   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.)r3   per_cpu_timesr%   zipsumretxs     r8   	cpu_timesrH   x   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.)r3   rB   r%   rE   s     r8   rB   rB   ~   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:   r8   cpu_count_logicalrP      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sysrU   encoding.0rG   s     r8   	<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prU   rV   msg
processorss         r8   cpu_count_coresrn      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.)r3   	cpu_statsr   	scpustats)ctx_switches
interruptssoft_interruptssyscallss       r8   rp   rp      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 )r3   disk_partitions
disk_usager+   r   	sdiskpartappend)	allretlist
partitions	partitiondevice
mountpointfstypeoptsntuples	            r8   ry   ry      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_tmapr3   net_connectionsr   TCP_STATUSESr|   )kind_pidfamiliestypesrawlistrF   itemfdfamtype_laddrraddrr"   r   nts                  r8   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   rx   z/usr/bin/entstatz-drT   c              3   n   K   | ]-  }|j                  t        j                  j                         / y wrX   rY   r]   s     r8   r_   znet_if_stats.<locals>.<genexpr>   (      
./AHHSZZ(()
r`   z"Running: (\d+) Mbps.*?(\w+) Duplexr   r   ,running)r   r	   net_if_addrsr3   
net_if_mtunet_if_flagsra   rb   rc   rd   re   researchintgroupjoingetr
   r   	snicstats)
duplex_maprG   namesrF   namemtuflagsduplexspeedrk   rU   rV   	re_resultoutput_flagsisups                  r8   net_if_statsr      sQ   )?CJ'>*aQqT*E*
C Nood#!!$'
 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.)r3   	boot_timerO   r:   r8   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)r3   usersr   suserr|   )r~   r   r   r   r&   ttyhostnametstampuser_processr   r   s              r8   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.)rL   listdirr   isdigitr   )rG   s    r8   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)rL   pathexistsr   r   strr   s    r8   
pid_existsr   2  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rX   )
r   _ppid_nameFileNotFoundErrorProcessLookupErrorr   r   r   PermissionErrorr   )selfargskwargsr   r   r   errfuns          r8   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   ` r8   wrap_exceptionsr   7  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 rX   )r   r   r   r   r   )r   r   s     r8   __init__zProcess.__init__S  s"    

+-r:   c                 p    | j                   j                  |        | j                  j                  |        y rX   )_proc_basic_infocache_activate
_proc_credr   s    r8   oneshot_enterzProcess.oneshot_enterY  s(    ,,T2&&t,r:   c                 p    | j                   j                  |        | j                  j                  |        y rX   )r   cache_deactivater   r   s    r8   oneshot_exitzProcess.oneshot_exit]  s(    ..t4((.r:   c                 V    t        j                  | j                  | j                        S rX   )r3   proc_basic_infor   r   r   s    r8   r   zProcess._proc_basic_infoa  s!     ##DHHd.?.?@@r:   c                 V    t        j                  | j                  | j                        S rX   )r3   	proc_credr   r   r   s    r8   r   zProcess._proc_credf  s     ~~dhh(9(9::r:   c                     | j                   dk(  ryt        j                  | j                   | j                        j	                  d      S )Nr   swapper )r   r3   	proc_namer   rstripr   s    r8   r   zProcess.namek  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)Nrx   r   PATH:)cmdlinerL   r   sepisabsabspathr   cwdisfileaccessX_OKbasenameenvironsplit)r   r   exer   possible_exes        r8   r   zProcess.exer  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 rX   )r3   	proc_argsr   r   s    r8   r   zProcess.cmdline  s    ~~dhh''r:   c                 @    t        j                  | j                        S rX   )r3   proc_environr   r   s    r8   r   zProcess.environ  s      **r:   c                 6    | j                         t        d      S )Nr   r   proc_info_mapr   s    r8   r   zProcess.create_time      $$&}]'CDDr:   c                 6    | j                         t        d      S )Nr!   r  r   s    r8   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/)	r3   r   r   r   pthreadr|   rL   statr   )r   r   r~   	thread_idutimestimer   s          r8   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   rL   r  r   )r   r   rF   s      r8   r   zProcess.net_connections  s>    d2 GGt(()488*56
r:   c                 @    t        j                  | j                        S rX   )r3   proc_priority_getr   r   s    r8   nice_getzProcess.nice_get  s    %%dhh//r:   c                 B    t        j                  | j                  |      S rX   )r3   proc_priority_setr   )r   values     r8   nice_setzProcess.nice_set  s    %%dhh66r:   c                 X    | j                         t        d      | _        | j                  S )Nr   )r   r  r   r   s    r8   r   zProcess.ppid  s&    **,]6-BC
zzr:   c                 ^    | j                         \  }}}}}}t        j                  |||      S rX   r   r   puids)r   real	effectivesaved_s        r8   uidszProcess.uids  s.    *.//*;'i1a}}T9e44r:   c                 ^    | j                         \  }}}}}}t        j                  |||      S rX   r  )r   r!  r  r  r   s        r8   gidszProcess.gids  s.    *.//*;'1ay%}}T9e44r:   c                 z    t        j                  | j                  | j                        }t	        j
                  | S rX   )r3   proc_cpu_timesr   r   r   	pcputimes)r   ts     r8   rH   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  globrL   r  st_rdev)r   ttydevdevs      r8   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/cwdrx   )r   rL   readlinkr   r   r   r  )r   procfs_pathresults      r8   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   rF   r   r   s       r8   memory_infozProcess.memory_info  sD    ##%-&'$.-&'$.C~r:   c                 b    | j                         t        d      }t        j                  |d      S )Nr"   ?)r   r  PROC_STATUSESr   )r   codes     r8   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-nrT   c              3   n   K   | ]-  }|j                  t        j                  j                         / y wrX   rY   r]   s     r8   r_   z%Process.open_files.<locals>.<genexpr>	  r   r`   zno such processz(\d+): S_IFREG.*name:(.*)\nz//r   zcannot be retrieved)ra   rb   r   r   rc   rd   lowerr   r   r   findallrg   
startswithr|   r   	popenfiler   )r   rk   rU   rV   	procfilesr~   r   r   s           r8   
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   ri   rL   r   r   r   s    r8   num_fdszProcess.num_fds  s<    88q=2::!2!2 31TXXJcBCDDr:   c                 `    t        j                  t        j                  | j                         S rX   )r   pctxswr3   proc_num_ctx_switchesr   r   s    r8   num_ctx_switcheszProcess.num_ctx_switches  s     ~~t99$((CDDr:   Nc                 X    t        j                  | j                  || j                        S rX   )r   wait_pidr   r   )r   timeouts     r8   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rX   )	r3   r   r   OSErrorr   r   r   r   pio)r   rcwcrbwbr   s         r8   io_counterszProcess.io_counters)  st    !%!6!6txx!@BB ;;r2r2..   "$((+'$**=3Fs   $> 	B7A>>B)inetrX   )&__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   r/  r   r5  memory_full_infor"   rA  rC  rG  rK  HAS_PROC_IO_COUNTERSrS  rO   r:   r8   r   r   N  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   )]rX  r   r+  rL   r   ra   r[   collectionsr   rx   r   r   r   r3   r   r	   r
   r   r   r   r   r   r   r   __extra__all__hasattrrZ  HAS_NET_IO_COUNTERSr\  getpagesize	PAGE_SIZEAF_LINKSIDLSTATUS_IDLESZOMBSTATUS_ZOMBIESACTIVESTATUS_RUNNINGSSWAPSSTOPSTATUS_STOPPEDr8  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*   r9   r@   rH   rB   rP   rn   rp   disk_io_countersrz   ry   r   r   r   r   r   r   r   r   r   r   rO   r:   r8   <module>r     s   #   	 	  
 "   ! $ $ ' ! " " # $ + " dN+d$56 t%78 D	
,, 	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:   