HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.60.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov 5 05:00:59 EST 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //lib/fm-agent/dependencies/linux/python3.9/psutil/__pycache__/_common.cpython-39.pyc
a

��iMg�
@sdZddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlmZddl	mZddl	mZddl	mZzdd	l	mZWney�dZYn0zdd
l	mZWney�dZYn0ejdk�rddlZndZejddkZee�d
d��Zgd�ZejdkZejdkZej� d�Z!ej� d�Z"e"Z#ej� d�Z$ej� d�Z%ej� d�Z&e$�p�e%�p�e&Z'ej� d�Z(ej� d�Z)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1d Z2d!Z3d"Z4d#Z5d$Z6d%Z7d&Z8d'Z9d(Z:d)Z;d*Z<d+Z=d,Z>d-Z?d.Z@d/ZAd0ZBd1ZCedu�r(d2ZDd3ZEdZFn Gd4d5�d5ejG�ZHeI��JeHjK�edu�r\d6ZLd7ZMn Gd8d9�d9ejG�ZNeI��JeNjK�e�O�ZPe�s�d:ZQn0ze�R�ZQWn"eS�y�e�r�d;nd:ZQYn0ed<gd=��ZTed>gd?��ZUed@gdA��ZVedBgdC��ZWedDgdE��ZXedFgdG��ZYedHgdI��ZZedJgdK��Z[edLgdM��Z\edNgdO��Z]edPgdQ��Z^edRgdS��Z_edTgdU��Z`edVdWdXg�ZaedYgdZ��Zbed[d\d]g�Zced^gd_��Zded`gda��Zeedbgda��Zfedcgdd��Zgededfdgg�Zhedhdidjg�Ziedkgdl��Zjedmdndog�Zkeeegeegfeegegfegegfeegegfegegfeegeegfegeegfegeegfdp�Zledu�r�el�Jegegfegegfdq��edu�r�el�Jdregeegfi�Gdsdt�dtem�ZnGdudv�dven�ZoGdwdx�dxeo�ZpGdydz�dzen�ZqGd{d|�d|en�Zrd�d}d~�Zsdd��Ztd�d��Zud�d��Zvd�d��Zwetd�d���Zxd�d��Zyd�d��Zzd�d��Z{d�d�d��Z|d�d��Z}Gd�d��d��Z~d�d��Ze~�Z�e�j�e_�e�j�e_�d�d��Z�d�d��Z�d�d�d��Z�d�d��Z�e�r�d�d��Z�nd�d��Z�etej�fd�d���Z�d�d�d��Z�dd�ej�fd�d��Z�d�d��Z�dS)�z9Common objects shared by __init__.py and _ps*.py modules.�)�division)�print_functionN)�
namedtuple)�AF_INET)�
SOCK_DGRAM)�SOCK_STREAM)�AF_INET6)�AF_UNIX)��r
�PSUTIL_DEBUG)N�FREEBSD�BSD�LINUX�NETBSD�OPENBSD�MACOS�OSX�POSIX�SUNOS�WINDOWS�
CONN_CLOSE�CONN_CLOSE_WAIT�CONN_CLOSING�CONN_ESTABLISHED�CONN_FIN_WAIT1�CONN_FIN_WAIT2�
CONN_LAST_ACK�CONN_LISTEN�	CONN_NONE�
CONN_SYN_RECV�
CONN_SYN_SENT�CONN_TIME_WAIT�NIC_DUPLEX_FULL�NIC_DUPLEX_HALF�NIC_DUPLEX_UNKNOWN�STATUS_DEAD�STATUS_DISK_SLEEP�STATUS_IDLE�
STATUS_LOCKED�STATUS_RUNNING�STATUS_SLEEPING�STATUS_STOPPED�STATUS_SUSPENDED�STATUS_TRACING_STOP�STATUS_WAITING�STATUS_WAKE_KILL�
STATUS_WAKING�
STATUS_ZOMBIE�
STATUS_PARKED�ENCODING�
ENCODING_ERRSr�pconn�	pcputimes�pctxsw�pgids�pio�pionice�	popenfile�pthread�puids�sconn�	scpustats�sdiskio�	sdiskpart�
sdiskusage�snetio�snicaddr�	snicstats�sswap�suser�	conn_tmap�deprecated_method�
isfile_strict�memoize�parse_environ_block�path_exists_strict�
usage_percent�
supports_ipv6�sockfam_to_enum�socktype_to_enum�wrap_numbers�bytes2human�conn_to_ntuple�debug�hilite�term_supports_colors�print_color�posix�nt�linux�darwin)�freebsdZmidnightbsdZopenbsdZnetbsd)�sunosZsolaris�aixZrunningZsleepingz
disk-sleep�stoppedztracing-stop�zombieZdeadz	wake-killZwaking�idle�lockedZwaitingZ	suspendedZparkedZESTABLISHEDZSYN_SENTZSYN_RECVZ	FIN_WAIT1Z	FIN_WAIT2Z	TIME_WAITZCLOSEZ
CLOSE_WAITZLAST_ACKZLISTENZCLOSINGZNONE��c@seZdZdZdZdZdS)�	NicDuplexrerfrN)�__name__�
__module__�__qualname__r#r$r%�rkrk�@/usr/lib/fm-agent/dependencies/linux/python3.9/psutil/_common.pyrg�srg������c@seZdZdZdZdS)�BatteryTimermrnN)rhrirj�POWER_TIME_UNKNOWN�POWER_TIME_UNLIMITEDrkrkrkrlro�sro�replace�surrogateescaperG)�total�used�free�percent�sinZsoutrC)rtrurvrwrA)�
read_count�write_count�
read_bytes�write_bytesZ	read_timeZ
write_timerB)Zdevice�
mountpointZfstype�opts�maxfile�maxpathrD)Z
bytes_sentZ
bytes_recvZpackets_sentZpackets_recvZerrinZerroutZdropinZdropoutrH)�name�terminal�host�started�pidr?)�fd�family�type�laddr�raddr�statusr�rE)r��address�netmask�	broadcast�ptprF)ZisupZduplexZspeedZmtur@)Zctx_switchesZ
interruptsZsoft_interruptsZsyscalls�scpufreq)�current�min�max�shwtemp)�labelr��high�critical�sbattery)rwZsecsleftZ
power_plugged�sfanr�r�r7)�user�system�
children_user�children_systemr<�pathr�r=)�idZ	user_timeZsystem_timer>)�realZ	effectiveZsavedr9r:)ryrzr{r|r;�ioclass�valuer8Z	voluntaryZinvoluntaryr6)r�r�r�r�r�r��addr�ip�port)�allZtcpZtcp4ZudpZudp4�inetZinet4Zinet6)Ztcp6Zudp6Zunixc@s,eZdZdZdZdd�Zdd�Zdd�Zd	S)
�ErrorzQBase exception class. All other psutil exceptions inherit
    from this one.
    �psutilcCsJzt��}Wnty"i}Yn0|D]}t||d�}|r(|||<q(|S�N)�collections�OrderedDict�AttributeError�getattr)�self�attrs�infor�r�rkrkrl�	_infodicts

zError._infodictcCsJ|�d�}|r,dd�dd�|��D��}nd}d�dd�|j|fD��S)N)r��ppidr�z(%s)�, cSsg|]\}}d||f�qS�z%s=%rrk��.0�k�vrkrkrl�
<listcomp>)�z!Error.__str__.<locals>.<listcomp>� cSsg|]}|r|�qSrkrk)r��xrkrkrlr�,r�)r��join�items�msg�r�r��detailsrkrkrl�__str__$s
�z
Error.__str__cCs2|�d�}d�dd�|��D��}d|jj|fS)N)r�r�r��secondsr�r�cSsg|]\}}d||f�qSr�rkr�rkrkrlr�1r�z"Error.__repr__.<locals>.<listcomp>z
psutil.%s(%s))r�r�r��	__class__rhr�rkrkrl�__repr__.s
zError.__repr__N)rhrirj�__doc__r�r�r�rkrkrkrlr�s

r�c@seZdZdZdZddd�ZdS)�
NoSuchProcesszXException raised when a process with a certain PID doesn't
    or no longer exists.
    r�NcCs$t�|�||_||_|pd|_dS)Nzprocess no longer exists�r��__init__r�r�r��r�r�r�r�rkrkrlr�;s
zNoSuchProcess.__init__)NN�rhrirjr�r�rkrkrkrlr�5sr�c@seZdZdZdZddd�ZdS)�
ZombieProcessa1Exception raised when querying a zombie process. This is
    raised on macOS, BSD and Solaris only, and not always: depending
    on the query the OS may be able to succeed anyway.
    On Linux all zombie processes are querable (hence this is never
    raised). Windows doesn't have zombie processes.
    r�NcCs$t�||||�||_|pd|_dS)Nz"PID still exists but it's a zombie)r�r�r�r�)r�r�r�r�r�rkrkrlr�KszZombieProcess.__init__)NNNr�rkrkrkrlr�Bsr�c@seZdZdZdZddd�ZdS)�AccessDeniedz@Exception raised when permission to perform an action is denied.r�NcCs$t�|�||_||_|pd|_dS)N�r�r�rkrkrlr�Us
zAccessDenied.__init__)NNNr�rkrkrkrlr�Qsr�c@seZdZdZdZddd�ZdS)�TimeoutExpiredzWRaised on Process.wait(timeout) if timeout expires and process
    is still alive.
    r�NcCs*t�|�||_||_||_d||_dS)Nztimeout after %s seconds)r�r�r�r�r�r�)r�r�r�r�rkrkrlr�bs

zTimeoutExpired.__init__)NNr�rkrkrkrlr�\sr�cCsDzt|�|d}Wnty(YdS0|dur<t||�}|SdS)z5Calculate percentage usage of 'used' against 'total'.�dgN)�float�ZeroDivisionError�round)rurtZround_�retrkrkrlrOos
rOcs2t�����fdd��}�fdd�}i�||_|S)aA simple memoize decorator for functions supporting (hashable)
    positional arguments.
    It also provides a cache_clear() function for clearing the cache:

    >>> @memoize
    ... def foo()
    ...     return 1
        ...
    >>> foo()
    1
    >>> foo.cache_clear()
    >>>
    csP|tt|����f}z
�|WStyJ�|i|��}�|<|YS0dSr�)�	frozenset�sortedr��KeyError)�args�kwargs�keyr���cache�funrkrl�wrapper�s
zmemoize.<locals>.wrappercs���dS)zClear cache.N)�clearrk)r�rkrl�cache_clear�szmemoize.<locals>.cache_clear)�	functools�wrapsr�)r�r�r�rkr�rlrL{srLcs6t����fdd��}dd�}dd�}||_||_|S)a�A memoize decorator which is disabled by default. It can be
    activated and deactivated on request.
    For efficiency reasons it can be used only against class methods
    accepting no arguments.

    >>> class Foo:
    ...     @memoize
    ...     def foo()
    ...         print(1)
    ...
    >>> f = Foo()
    >>> # deactivated (default)
    >>> foo()
    1
    >>> foo()
    1
    >>>
    >>> # activated
    >>> foo.cache_activate(self)
    >>> foo()
    1
    >>> foo()
    >>> foo()
    >>>
    cshz|j�}WnTty(�|�YStyb�|�}z||j�<Wnty\Yn0Yn0|Sr�)�_cacher�r�)r�r��r�rkrlr��sz'memoize_when_activated.<locals>.wrappercSs
i|_dS)zjActivate cache. Expects a Process instance. Cache will be
        stored as a "_cache" instance attribute.N)r���procrkrkrl�cache_activate�sz.memoize_when_activated.<locals>.cache_activatecSs z|`WntyYn0dS)zDeactivate and clear cache.N)r�r�r�rkrkrl�cache_deactivate�sz0memoize_when_activated.<locals>.cache_deactivate)r�r�r�r�)r�r�r�r�rkr�rl�memoize_when_activated�sr�c
CsZzt�|�}Wn:tyH}z"|jtjtjfvr2�WYd}~dSd}~00t�|j�SdS)z�Same as os.path.isfile() but does not swallow EACCES / EPERM
    exceptions, see:
    http://mail.python.org/pipermail/python-dev/2012-June/120787.html
    NF)�os�stat�OSError�errno�EPERM�EACCES�S_ISREG�st_mode)r��st�errrkrkrlrK�srKc
CsRzt�|�Wn:tyH}z"|jtjtjfvr2�WYd}~dSd}~00dSdS)z�Same as os.path.exists() but does not swallow EACCES / EPERM
    exceptions, see:
    http://mail.python.org/pipermail/python-dev/2012-June/120787.html
    NFT)r�r�r�r�r�r�)r�r�rkrkrlrN�srNcCsvtjrtdurdSzHt�ttj�}t�|��|�d�Wd�n1sL0YWdStjypYdS0dS)z2Return True if IPv6 is supported on this platform.NF)z::1rT)�socket�has_ipv6rr�
contextlib�closing�bind�error)�sockrkrkrlrP�s(rPcCsvi}d}t}|�d|�}||kr"qr|�d||�}||krh|||�}||d|�}|r`|��}|||<|d}q|S)zCParse a C environ block of environment variables into a dictionary.r��=rf)r�find�upper)�datar��posZWINDOWS_Znext_posZ	equal_posr�r�rkrkrlrMs
rMcCs4tdur|Szt�|�WSty.|YS0dS)z�Convert a numeric socket family value to an IntEnum member.
    If it's not a known member, return the numeric value itself.
    N)�enumr��
AddressFamily�
ValueError��numrkrkrlrQ"srQcCs4tdur|Szt�|�WSty.|YS0dS)zConvert a numeric socket type value to an IntEnum member.
    If it's not a known member, return the numeric value itself.
    N)rr��
SocketKindrrrkrkrlrR/srRcCs�|tjtfvr&|rt|�}|r&t|�}|tjkrJ|ttfvrJ|�|t�}nt}t|�}t|�}|durxt	||||||�St
|||||||�SdS)z2Convert a raw connection tuple to a proper ntuple.N)r�rrr�r�getrrQrRr6r?)r��famZtype_r�r�r�Z
status_mapr�rkrkrlrU<srUcs�fdd�}|S)z�A decorator which can be used to mark a method as deprecated
    'replcement' is the method name which will be called instead.
    cs:d|j�f�|jdur�|_t�|���fdd��}|S)Nz8%s() is deprecated and will be removed; use %s() insteadcs$tj�tdd�t|��|i|��S)Nre)�category�
stacklevel)�warnings�warn�DeprecationWarningr�)r�r�r�)r��replacementrkrl�innerYsz/deprecated_method.<locals>.outer.<locals>.inner)rhr�r�r�)r�r�r)r�rl�outerSs�
z deprecated_method.<locals>.outerrk)rrrkrrlrJOsrJc@sBeZdZdZdd�Zdd�Zdd�Zdd	�Zddd�Zd
d�Z	d
S)�_WrapNumberszNWatches numbers so that they don't overflow and wrap
    (reset to zero).
    cCs t��|_i|_i|_i|_dSr�)�	threading�Lock�lockr��	reminders�
reminder_keys�r�rkrkrlr�fs
z_WrapNumbers.__init__cCsX||jvsJ�||jvsJ�||jvs*J�||j|<t�t�|j|<t�t�|j|<dSr�)r�rrr��defaultdict�int�set)r��
input_dictr�rkrkrl�	_add_dictls
z_WrapNumbers._add_dictcCs\|j|}t|���t|���}|D]0}|j||D]}|j||=q8|j||=q&dS)z�In case the number of keys changed between calls (e.g. a
        disk disappears) this removes the entry from self.reminders.
        N)r�r�keysrr)r�rr��old_dictZ	gone_keysZgone_key�remkeyrkrkrl�_remove_dead_remindersts
z#_WrapNumbers._remove_dead_remindersc
	Cs||jvr|�||�|S|�||�|j|}i}|��D]�}||}z||}Wntyr|||<Yq<Yn0g}tt|��D]f}	||	}
||	}||	f}|
|kr�|j|||7<|j||�	|�|�
|
|j||�q�t|�||<q<||j|<|S)zkCache dict and sum numbers which overflow and wrap.
        Return an updated copy of `input_dict`
        )r�rr"rr��range�lenrr�add�append�tuple)
r�rr�r Znew_dictr�Zinput_tupleZ	old_tuple�bits�iZinput_value�	old_valuer!rkrkrl�runs2



z_WrapNumbers.runNcCs||j�b|dur0|j��|j��|j��n*|j�|d�|j�|d�|j�|d�Wd�n1sn0YdS)z>Clear the internal cache, optionally only for function 'name'.N)rr�r�rr�pop)r�r�rkrkrlr��s

z_WrapNumbers.cache_clearcCs:|j� |j|j|jfWd�S1s,0YdS)z5Return internal cache dicts as a tuple of 3 elements.N)rr�rrrrkrkrl�
cache_info�sz_WrapNumbers.cache_info)N)
rhrirjr�r�rr"r+r�r-rkrkrkrlras'
rcCs6tj�t�||�Wd�S1s(0YdS)z�Given an `input_dict` and a function `name`, adjust the numbers
    which "wrap" (restart from zero) across different calls by adding
    "old value" to "new value" and return an updated dict.
    N)�_wnrr+)rr�rkrkrlrS�srScKst|dfi|��S)N�rb)�open��fnamer�rkrkrl�open_binary�sr3cKs.tr|�dt�|�dt�t|dfi|��S)z�On Python 3 opens a file in text mode by using fs encoding and
    a proper en/decoding errors handler.
    On Python 2 this is just an alias for open(name, 'rt').
    �encoding�errorsZrt)�PY3�
setdefaultr4r5r0r1rkrkrl�	open_text�sr8�%(value).1f%(symbol)scCs�d}i}t|dd��D]\}}d|dd>||<qt|dd��D].}|||krFt|�||}|t�SqF|t|d|d�S)z�Used by various scripts. See:
    http://goo.gl/zeJZl

    >>> bytes2human(10000)
    '9.8K'
    >>> bytes2human(100001221)
    '95.4M'
    )	�B�K�M�G�T�P�E�Z�YrfN�
r)�symbolr�)�	enumerate�reversedr��locals�dict)�n�formatZsymbols�prefixr)�srDr�rkrkrlrT�s	rTcCstjdjS)z+Return updated psutil.PROCFS_PATH constant.r�)�sys�modules�PROCFS_PATHrkrkrkrl�get_procfs_path�srPcCs|jttd�S)N)r4r5)�decoder4r5�rLrkrkrlrQ�srQcCs|Sr�rkrRrkrkrlrQ�scCs^tjdkrdSz2ddl}|��s$J�|��|�d�dks>J�WntyTYdS0dSdS)Nr[Tr�colorsF)r�r��curses�isattyZ	setuptermZtigetnum�	Exception)�filerTrkrkrlrX�s
rXFcCs�t�s
|Sg}tddddddddd	d
�	}d|d<z||}Wn&tybtd
t|�����Yn0|�|�|r||�d�dd�|�|fS)z*Return an highlighted version of 'string'.Z32Z91Z33Z93Z34Z35Z36Z37Z30)	�green�red�brown�yellowZblueZvioletZ	lightblueZgreyZdarkgreyZ29Nz#invalid color %r; choose between %s�1z[%sm%s�;)rXrHr�r�listrr&r�)rL�color�bold�attrrSrkrkrlrW
s"�
�

rWc	Cs
t�st||d�n�tr.tt|||�|d�n�ddl}d}|jjj}|jjj}t	ddddd�}||d<z||}Wn*t
y�td	|t|�
��f��Yn0|r�|dkr�|d
7}|tjur�dnd}	|j|_||	�}
||
|�zt||d�W||
|�n||
|�0dS)
z$Print a colorized version of string.�rWrN�rer�)rXrYrZr[z#invalid color %r; choose between %r�i�i����)rX�printrrW�ctypesZwindllZKernel32�GetStdHandle�SetConsoleTextAttributerHr�rr^rrM�stderrZc_ulongZrestype)rLr_r`rWrgZ
DEFAULT_COLORrhrirSZ	handle_id�handlerkrkrlrY s4
��
rYcCsntrjddl}|�|��j�\}}}}}t|t�rRt|ttt	f�rJd|}nd|}t
d|||ftjd�dS)z@If PSUTIL_DEBUG env var is set, print a debug message to stderr.rNzignoring %szignoring %rzpsutil-debug [%s:%s]> %srb)
r�inspectZgetframeinfo�currentframe�f_back�
isinstancerVr��IOError�EnvironmentErrorrfrMrj)r�rlr2�linenoZ	func_name�lines�indexrkrkrlrVCs�

�rV)N)N)r9)NF)�r��
__future__rrr�r�r�r�r�r�r�rMrrrrrrr�ImportErrorr	�version_inforr6�bool�getenvr�__all__r�rr�platform�
startswithrrrr
rrrr�AIXr*r+r'r,r.r2r&r0r1r(r)r/r-r3rr!r rrr"rrrrrrr#r$r%�IntEnumrg�globals�update�__members__rprqro�getfilesystemencodingr4r5�getfilesystemencodeerrorsr�rGrCrArBrDrHr?rErFr@r�r�r�r�r7r<r=r>r9r:r;r8r6r�rIrVr�r�r�r�r�rOrLr�rKrNrPrMrQrRrUrJrrSr.r�r-r3r8rTrPrQ�stdoutrXrWrYrVrkrkrkrl�<module>sT


$

	


����	

�


�
�
"

 ?



W	

	
�
#