U
xe�_�8�@s�dZddlZddlZddlZddlZddlZddlZddddddd d
ddd
ddddddgZejddkZ e
�Ze r�eZ
eZeZeZeZdd �Zdd
�Zn e
Z
eZeZeZdd �Zdd
�Ze r�eZneZeedfdd�Ze r�eZeZeZeZeZeZn�ddlZefdd�Zee �dd��Zee �dd��Zee �dd��Zee �d d��Zee �d!d��Zee �d"d��Ze�!�d#k�r�ze"ej#d$��Wn2ek
�r�Yne"k
�r�e$d%��YnXzdd&lm%Z%Wn�e&k
�rlzdd'l'm(Z(Wn"e&k
�rdd'l)m(Z(YnXe�*d(d)d*d+d,g�Z+Gd-d.�d.e,�Z-e
�fe.eee/e0d�f�e1e2e0e3fd/d0�Z4d9d3d�Z%YnXzdd4l5m6Z6Wn,e&k
�r�ej7ej8Bdfd5d�Z6YnXzdd6l5m9Z9Wn e&k
�r�d:d8d
�Z9YnXdS);z�Module which provides compatibility with older Python versions.
This is more future-compatible rather than the opposite (prefer latest
Python 3 way of doing things).
�N�PY3�long�range�super�unicode�
basestring�u�b� lru_cache�which�get_terminal_size�FileNotFoundError�PermissionError�ProcessLookupError�InterruptedError�ChildProcessError�FileExistsError�cCs|S�N���srr�A/opt/alt/python38/lib64/python3.8/site-packages/psutil/_compat.pyr+scCs
|�d�S)Nzlatin-1)�encoderrrrr .scCs
t|d�S)NZunicode_escape)rrrrrr6scCs|Srrrrrrr 9s�cCsb|tk�rFt�|�}z|j|jjd}Wn ttfk
rJtd��YnXz
|j }WnBt
tfk
r�z|jj }Wnt
k
r�td��YnXYnX|D]�}|j�
�D]�}zPt|tj�s�t|t�r�|j}q�z
|j}Wq�t
k
r�|�||�}Yq�Xq�Wnt
tfk
�rYq�YnX|j|jkr��q6q�q��qFq�td��|tk �rZt||�St|�S)zuLike Python 3 builtin super(). If called without any arguments
it attempts to infer them at runtime.
rz'super() used in a function with no argsz$super() used in a non-newstyle classzsuper() called outside a method)� _SENTINEL�sys� _getframe�f_locals�f_code�co_varnames�
IndexError�KeyError�RuntimeError�__mro__�AttributeError� __class__�__dict__�values�
isinstance�types�FunctionType�property�fget�__func__�__get__� TypeErrorZ func_code�_builtin_super)Ztype_Ztype_or_objZ
framedepth�f�mroZmethrrrrHsB
cs�fdd�}|S)Ncs*G��fdd�d����j�_�j�_�S)Ncs2eZdZ��fdd�ZG�fdd�de�Z�ZS)zE_instance_checking_exception.<locals>.wrapped.<locals>.TemporaryClasscsdt|�dkrNt|d��rN|d}t|�D] }|�d�s*t||t||��q*nt�|�j||�dS)Nrr�__)�lenr)�dir�
startswith�setattr�getattrr�__init__)�self�args�kwargsZ unwrap_me�attr)�TemporaryClassr&rrr:�s
zN_instance_checking_exception.<locals>.wrapped.<locals>.TemporaryClass.__init__cs eZdZ�fdd�Zdd�ZdS)zS_instance_checking_exception.<locals>.wrapped.<locals>.TemporaryClass.__metaclass__cs�|�Srr)�cls�inst��instance_checkerrr�__instancecheck__�sze_instance_checking_exception.<locals>.wrapped.<locals>.TemporaryClass.__metaclass__.__instancecheck__cSst��d}t||�S�Nr)r�exc_infor))r@Z classinfo�valuerrr�__subclasscheck__�sze_instance_checking_exception.<locals>.wrapped.<locals>.TemporaryClass.__metaclass__.__subclasscheck__N)�__name__�
__module__�__qualname__rDrHrrBrr�
__metaclass__�srL)rIrJrKr:�typerL�
__classcell__r�r?rC)r&rr?�s r?)rI�__doc__rB��base_exceptionrOr�wrapped�sz-_instance_checking_exception.<locals>.wrappedr)rRrSrrQr�_instance_checking_exception�srTcCst|dt�tjkS�N�errno)r9rrVZENOENT�rArrrr
�scCst|dt�tjkSrU)r9rrVZESRCHrWrrrr�scCst|dt�tjtjfkSrU)r9rrVZEACCESZEPERMrWrrrr�s
�cCst|dt�tjkSrU)r9rrVZEINTRrWrrrr�scCst|dt�tjkSrU)r9rrVZECHILDrWrrrr�scCst|dt�tjkSrU)r9rrV�EEXISTrWrrrr�sZCPythonZpermzbbroken or incompatible Python implementation, see: https://github.com/giampaolo/psutil/issues/1659)r
)�RLock� CacheInfo�hits�misses�maxsize�currsizec@s$eZdZdZefdd�Zdd�ZdS)�
_HashedSeq� hashvaluecCs||dd�<||�|_dSr�r`)r;�tup�hashrrrr:�sz_HashedSeq.__init__cCs|jSrra)r;rrr�__hash__�sz_HashedSeq.__hash__N)rIrJrK� __slots__rcr:rdrrrrr_�sr_c s�|} |r.||���}
| |7} |
D]}| |7} q |rl| |�fdd�|D��7} |r�| |�fdd�|
D��7} n$|| �dkr��| d�|kr�| dSt| �S)Nc3s|]}�|�VqdSrr)�.0�v�rMrr� <genexpr>�sz_make_key.<locals>.<genexpr>c3s|]\}}�|�VqdSrr)rf�krgrhrrri�srr)�itemsr_)r<�kwds�typed�kwd_mark� fasttypes�sorted�tuplerMr5�keyZsorted_items�itemrrhr� _make_key�s
rt�dFcs��fdd�}|S)z~Least-recently-used cache decorator, see:
http://docs.python.org/3/library/functools.html#functools.lru_cache
cst��ddg�
d\��t�
�j�t�t�� g���ddg�dd�<�g�d\�����dkrn��
�fdd�}nP�dkr������
��
��f dd�}n*���������� �
���
��fdd�}���� ��
fdd �}�� ��
fd
d�}�|_||_||_t� |��S)Nr)rr)rr�rcs�||�}��d7<|SrEr)r<rl�result)�MISSES�stats�
user_functionrr�wrapper s
z7lru_cache.<locals>.decorating_function.<locals>.wrappercsX�||��}�|��}|�k r2��d7<|S�||�}|�|<��d7<|SrEr)r<rlrrrw) �HITSrx�cache� cache_get�make_key�rootryrmrzrrr{s
csp|s�r�
||��}n|}� ��zv�|�}|dk r��\}|\}}}}||�<||�<|�}||�<|�<||�<||�<�
�d7<|W�SW5� ��X�||�}� ��z��\}|�kr�n�����k�r"|} || �<|| �<| �}�d<|�}
d|�<|�<�|
=| �|<n,|�}||||g}||�<|�<�|<�
�d7<W5� ��X|S)Nrr)�acquire�release)r<rlrr�linkr�Z link_prevZ link_nextrwZlastZoldrootZoldkey)r|�KEYrx�NEXT�PREV�RESULT�_lenr}r~�lockrr]�
nonlocal_rootryrmrzrrr{sN
cs6���zt�����t���W�S���XdS)zReport cache statisticsN)r�r��
_CacheInfor5r)r|rxr}r�r]ryrr�
cache_infoFs�z:lru_cache.<locals>.decorating_function.<locals>.cache_infocsP���z8����d}||ddg|dd�<ddg�dd�<W5���XdS)z$Clear the cache and cache statisticsrN)r�r��clear)r�)r}r�r�ryrr�cache_clearOsz;lru_cache.<locals>.decorating_function.<locals>.cache_clear)
�dictrt�getr5rY�__wrapped__r�r�� functools�update_wrapper)rzr{r�r��r]rm)r|r�rxr�r�r�r�r}r~r�rr�r�ryrzr�decorating_function�s,*- z&lru_cache.<locals>.decorating_functionr)r]rmr�rr�rr
�sc)rcs"dd�}tj���r&|�|�r"�SdS|dkr>tj�dtj�}|sFdS|�tj�}tj dkr�tj
|krt|�dtj
�tj�dd��tj�}t�fd d
�|D��r��g}qfdd�|D�}n�g}t
�}|D]P}tj�|�}||kr�|�|�|D](} tj�|| �}
||
|�r�|
Sq�q�dS)
aJGiven a command, mode, and a PATH string, return the path which
conforms to the given mode on the PATH, or None if there is no such
file.
`mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result
of os.environ.get("PATH"), or can be overridden with a custom search
path.
cSs&tj�|�o$t�||�o$tj�|�Sr)�os�path�exists�access�isdir)�fn�moderrr�
_access_checkos�zwhich.<locals>._access_checkN�PATHZwin32rZPATHEXT�c3s |]}����|���VqdSr)�lower�endswith�rfZext��cmdrrri�szwhich.<locals>.<genexpr>csg|]}�|�qSrrr�r�rr�
<listcomp>�szwhich.<locals>.<listcomp>)r�r��dirname�environr��defpath�split�pathsepr�platform�curdir�insert�any�set�normcase�add�join)r�r�r�r�Zpathext�files�seenr6ZnormdirZthefile�namerr�rrfs8
)r��P�cCs~zddl}ddl}ddl}Wntk
r4|YSXz*|�d|�d|jd��}|d|dfWStk
rx|YSXdS)NrZhhrZ1234)�fcntl�termios�struct�ImportError�unpackZioctlZ
TIOCGWINSZ� Exception)Zfallbackr�r�r��resrrrr�s
�)ruF)r�):rP�collectionsrVr�r�rr*�__all__�version_infor�objectr�intrrZxrange�strrrrr rr1r
rrrrrr�r�rT�EnvironmentErrorZpython_implementation�OSErrorrXr#r
r�Z threadingrYZdummy_threading�
namedtupler��listr_r�� frozensetrMrprqr5rtZshutilr�F_OK�X_OKrrrrr�<module>s��
8
�
��
k1 |