HOME


sh-3ll 1.0
DIR:/usr/local/lib64/python3.6/site-packages/psutil/__pycache__/
Upload File :
Current File : //usr/local/lib64/python3.6/site-packages/psutil/__pycache__/_common.cpython-36.pyc
3

��f+t�b@s�dZddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlmZddl	mZddl	mZddl	mZydd	l	mZWnek
r�dZYnXydd
l	mZWnek
r�dZYnXejddkZe�rddlZndZeejd��Ze�Zd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^gRZejd_kZejd`kZ ej!j"da�Z#ej!j"db�Z$e$Z%ej!j"�d�Z&ej!j"de�Z'ej!j"df�Z(e&�p2e'�p2e(Z)ej!j"�d
�Z*ej!j"di�Z+djZ,dkZ-dlZ.dmZ/dnZ0doZ1dpZ2dqZ3drZ4dsZ5dtZ6duZ7dvZ8dwZ9dxZ:dyZ;dzZ<d{Z=d|Z>d}Z?d~Z@dZAd�ZBd�ZCd�ZDd�ZEedk�r�d�ZFd�ZGdZHn Gd�d��d�ejI�ZJeK�jLeJjM�edk�r�dZN�dZOn Gd�d��d�ejI�ZPeK�jLePjM�ejQ�ZRe�s:d�ZSn2yejT�ZSWn$eUk
�rje�rbd�nd�ZSYnXedHd�d�d�d�d�d�g�ZVedDd�d�d�d�g�ZWedBd�d�d�d�d�d�g�ZXedCd�d�d�d�g�ZYedEd�d�d�d�d�d�d�d�g�ZZedId�d�d�d�d�g�Z[ed@d�d�d�d�d�d�d�g�Z\edFd�d�d�d�d�g�Z]edGd�d�d�d�d�g�Z^edAd�d�d�d�g�Z_ed�d�d�d�g�Z`ed�d�d�d�d�g�Zaed�d�d�d�g�Zbed�d�d�g�Zced8d�d�d�d�g�Zded=d�d�g�Zeed>d�d�d�g�Zfed?d�d�d�g�Zged:d�d�d�g�Zhed;d�d�d�d�g�Zied<d�d�g�Zjed9d�d�g�Zked7d�d�d�d�d�d�g�Zled�d�d�g�ZmeeegeegfeegegfegegfeegegfegegfeegeegfegeegfegeegfdڜZnedk	�r�enjLegegfegegfdۜ�edk	�r�enjLd�egeegfi�Gd�dބd�eo�ZpGd�d�d�ep�ZqGd�d�d�eq�ZrGd�d�d�ep�ZsGd�d�d�ep�Zte�rReuevew��r>evd�Zxn
eyevd�Zxexd�nd�d�Zz�dd�dP�Z{d�dM�Z|d�d�Z}d�dL�Z~d�dO�Ze|d�dQ��Z�d�dN�Z�d�dR�Z�d�dS�Z��dd�dZ�Z�d�dK�Z�Gd�d��d��Z�d�dT�Z�e��Z�e�j�e�_�e�j�e�_��dZ�d�dV�Z�d�dU�Z�ee�fd�dW�Z�efd�dX�Z��d�ddY�Z��d�d�Z�e�rH�d�d�Z�n�d�d�Z�e|ej�f�dd]��Z��d�d	d\�Z�d�dej�f�d
d^�Z��dd[�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��PSUTIL_DEBUG�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�	open_text�open_binary�cat�bcat�bytes2human�conn_to_ntuple�debug�hilite�term_supports_colors�print_color�posix�nt�linux�darwin�freebsd�midnightbsdZopenbsdZnetbsd�sunos�solaris�aix�running�sleepingz
disk-sleep�stoppedztracing-stop�zombie�deadz	wake-kill�waking�idle�locked�waiting�	suspended�parked�ESTABLISHED�SYN_SENT�SYN_RECV�	FIN_WAIT1�	FIN_WAIT2�	TIME_WAIT�CLOSE�
CLOSE_WAIT�LAST_ACK�LISTEN�CLOSING�NONE��c@seZdZdZdZdZdS)�	NicDuplexr}r~rN)�__name__�
__module__�__qualname__r"r#r$�r�r��:/usr/local/lib64/python3.6/site-packages/psutil/_common.pyr�src@seZdZdZdZdS)�BatteryTimer~r}N������)r�r�r��POWER_TIME_UNKNOWN�POWER_TIME_UNLIMITEDr�r�r�r�r��sr��replace�surrogateescape�total�used�free�percent�sin�sout�
read_count�write_count�
read_bytes�write_bytes�	read_time�
write_time�device�
mountpoint�fstype�opts�
bytes_sent�
bytes_recv�packets_sent�packets_recv�errin�errout�dropin�dropout�name�terminal�host�started�pid�fd�family�type�laddr�raddr�status�address�netmask�	broadcast�ptp�isup�duplex�speed�mtu�flags�ctx_switches�
interrupts�soft_interrupts�syscalls�scpufreq�current�min�max�shwtemp�label�high�critical�sbattery�secsleft�
power_plugged�sfan�user�system�
children_user�children_system�path�id�	user_time�system_time�real�	effective�saved�ioclass�value�	voluntary�involuntary�addr�ip�port)�all�tcp�tcp4�udp�udp4�inet�inet4�inet6)�tcp6�udp6�unixc@s,eZdZdZdZdd�Zdd�Zdd�Zd	S)
�ErrorzQBase exception class. All other psutil exceptions inherit
    from this one.
    �psutilcCsLtj�}x>|D]6}t||d�}|r,|||<q|dkr|dkr|||<qW|S)Nr�r)�collections�OrderedDict�getattr)�self�attrs�infor�r�r�r�r��	_infodict$s

zError._infodictcCsP|jd�}|r,ddjdd�|j�D��}nd}djd	d�t|d
d�|fD��S)
Nr��ppidr�z(%s)z, cSsg|]\}}d||f�qS)z%s=%rr�)�.0�k�vr�r�r��
<listcomp>3sz!Error.__str__.<locals>.<listcomp>� cSsg|]}|r|�qSr�r�)r��xr�r�r�r�7s�msg�)r�r�r�)r��join�itemsr�)r�r��detailsr�r�r��__str__.s
z
Error.__str__cCs2|jd
�}djdd�|j�D��}d	|jj|fS)Nr�r�r��secondsr�z, cSsg|]\}}d||f�qS)z%s=%rr�)r�r�r�r�r�r�r�<sz"Error.__repr__.<locals>.<listcomp>z
psutil.%s(%s))r�r�r�r�r�)r�r�r��	__class__r�)r�r�r�r�r�r��__repr__9s
zError.__repr__N)r�r�r��__doc__r�r�r�r�r�r�r�r�s

r�c@s&eZdZdZdZddd�Zdd�ZdS)	�
NoSuchProcesszXException raised when a process with a certain PID doesn't
    or no longer exists.
    r�NcCs$tj|�||_||_|pd|_dS)Nzprocess no longer exists)r��__init__r�r�r�)r�r�r�r�r�r�r�rGs
zNoSuchProcess.__init__cCs|j|j|j|jffS)N)r�r�r�r�)r�r�r�r��
__reduce__MszNoSuchProcess.__reduce__)NN)r�r�r�r�rrr�r�r�r�r�@s
r�c@s&eZdZdZdZddd�Zdd�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$tj||||�||_|pd|_dS)Nz"PID still exists but it's a zombie)r�rr�r�)r�r�r�r�r�r�r�r�r[szZombieProcess.__init__cCs|j|j|j|j|jffS)N)r�r�r�r�r�)r�r�r�r�r`szZombieProcess.__reduce__)NNN)r�r�r�r�rrr�r�r�r�rQs
rc@s&eZdZdZdZddd�Zdd�ZdS)	�AccessDeniedz@Exception raised when permission to perform an action is denied.r�NcCs$tj|�||_||_|pd|_dS)Nr�)r�rr�r�r�)r�r�r�r�r�r�r�ris
zAccessDenied.__init__cCs|j|j|j|jffS)N)r�r�r�r�)r�r�r�r�roszAccessDenied.__reduce__)NNN)r�r�r�r�rrr�r�r�r�rds
rc@s&eZdZdZdZddd�Zdd�ZdS)	�TimeoutExpiredzWRaised on Process.wait(timeout) if timeout expires and process
    is still alive.
    r�NcCs*tj|�||_||_||_d||_dS)Nztimeout after %s seconds)r�rr�r�r�r�)r�r�r�r�r�r�r�rzs

zTimeoutExpired.__init__cCs|j|j|j|jffS)N)r�r�r�r�)r�r�r�r�r�szTimeoutExpired.__reduce__)NN)r�r�r�r�rrr�r�r�r�rss
r�execzvdef raise_from(value, from_value):
    try:
        raise value from from_value
    finally:
        value = None
    cCs|�dS)Nr�)r��
from_valuer�r�r��
raise_from�srcCsDyt|�|d}Wntk
r(dSX|dk	r<t||�}|SdS)z5Calculate percentage usage of 'used' against 'total'.�dgN)�float�ZeroDivisionError�round)r�r��round_�retr�r�r�rN�s
cs2tj����fdd��}�fdd�}i�||_|S)a�A 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()
    >>>

    It supports:
     - functions
     - classes (acts as a @singleton)
     - staticmethods
     - classmethods

    It does NOT support:
     - methods
    csz|tt|j���f}y�|Stk
rty�||�}�|<Wn,tk
rn}zt|d��WYdd}~XnX|SXdS)N)�	frozenset�sortedr��KeyError�	Exceptionr)�args�kwargs�keyr
�err)�cache�funr�r��wrapper�szmemoize.<locals>.wrappercs�j�dS)zClear cache.N)�clearr�)rr�r��cache_clear�szmemoize.<locals>.cache_clear)�	functools�wrapsr)rrrr�)rrr�rK�s
cs6tj���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()
    >>>
    cs�y|j�}Wn�tk
rXy�|�Stk
rR}zt|d��WYdd}~XnXYnrtk
r�y�|�}Wn,tk
r�}zt|d��WYdd}~XnXy||j�<Wntk
r�YnXYnX|S)N)�_cache�AttributeErrorrrr)r�r
r)rr�r�r�s" z'memoize_when_activated.<locals>.wrappercSs
i|_dS)zsActivate cache. Expects a Process instance. Cache will be
        stored as a "_cache" instance attribute.
        N)r)�procr�r�r��cache_activatesz.memoize_when_activated.<locals>.cache_activatecSs"y|`Wntk
rYnXdS)zDeactivate and clear cache.N)rr)rr�r�r��cache_deactivatesz0memoize_when_activated.<locals>.cache_deactivate)rrr r!)rrr r!r�)rr��memoize_when_activated�sr"cCsTytj|�}Wn4tk
rB}z|jtjtjfkr4�dSd}~XnXtj|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.
    FN)�os�stat�OSError�errno�EPERM�EACCES�S_ISREG�st_mode)r��strr�r�r�rJscCsLytj|�Wn4tk
rB}z|jtjtjfkr4�dSd}~XnXdSdS)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.
    FNT)r#r$r%r&r'r()r�rr�r�r�rM-scCsbtjstdkrdSy2tjttj�}tj|��|jd�WdQRXdStjk
r\dSXdS)z2Return True if IPv6 is supported on this platform.NF�::1rT)r,r)�socket�has_ipv6rr�
contextlib�closing�bind�error)�sockr�r�r�rO<scCszi}d}t}xh|jd|�}||kr$P|jd||�}||krj|||�}||d|�}|rb|j�}|||<|d}qW|S)zCParse a C environ block of environment variables into a dictionary.r��=r~)r�find�upper)�datar
�pos�WINDOWS_�next_pos�	equal_posrr�r�r�r�rLJs cCs0tdkr|Sy
tj|�Stk
r*|SXdS)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)�numr�r�r�rPfs
cCs0tdkr|Sy
tj|�Stk
r*|SXdS)zConvert a numeric socket type value to an IntEnum member.
    If it's not a known member, return the numeric value itself.
    N)r=r-�
SocketKindr?)r@r�r�r�rQss
cCs�|tjtfkr&|rt|�}|r&t|�}|tjkrJ|ttfkrJ|j|t�}nt}t|�}t|�}|dkrxt	||||||�St
|||||||�SdS)z2Convert a raw connection tuple to a proper ntuple.N)r-rrr�r�getrrPrQr5r>)r��fam�type_r�r�r��
status_mapr�r�r�r�rX�scs�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�|jdkr�|_tj|���fdd��}|S)Nz8%s() is deprecated and will be removed; use %s() insteadcs tj�tdd�t|��||�S)Nr})�category�
stacklevel)�warnings�warn�DeprecationWarningr�)r�rr)r��replacementr�r��inner�sz/deprecated_method.<locals>.outer.<locals>.inner)r�r�rr)rrL)rK)r�r��outer�s
z deprecated_method.<locals>.outerr�)rKrMr�)rKr�rI�sc@sBeZdZdZdd�Zdd�Zdd�Zdd	�Zddd�Zd
d�Z	d
S)�_WrapNumberszNWatches numbers so that they don't overflow and wrap
    (reset to zero).
    cCs tj�|_i|_i|_i|_dS)N)�	threading�Lock�lockr�	reminders�
reminder_keys)r�r�r�r�r�s
z_WrapNumbers.__init__cCsX||jkst�||jkst�||jks*t�||j|<tjt�|j|<tjt�|j|<dS)N)r�AssertionErrorrRrSr��defaultdict�int�set)r��
input_dictr�r�r�r��	_add_dict�s
z_WrapNumbers._add_dictcCsd|j|}t|j��t|j��}x<|D]4}x"|j||D]}|j||=q<W|j||=q(WdS)z�In case the number of keys changed between calls (e.g. a
        disk disappears) this removes the entry from self.reminders.
        N)rrW�keysrSrR)r�rXr��old_dict�	gone_keys�gone_key�remkeyr�r�r��_remove_dead_reminders�s

z#_WrapNumbers._remove_dead_remindersc
Cs||jkr|j||�|S|j||�|j|}i}x�|D]�}||}y||}Wntk
rp|||<w:YnXg}xvtt|��D]f}	||	}
||	}||	f}|
|kr�|j|||7<|j||j|�|j	|
|j||�q�Wt
|�||<q:W||j|<|S)zlCache dict and sum numbers which overflow and wrap.
        Return an updated copy of `input_dict`.
        )rrYr_r�range�lenrRrS�add�append�tuple)
r�rXr�r[�new_dictr�input_tuple�	old_tuple�bits�i�input_value�	old_valuer^r�r�r��run�s2



z_WrapNumbers.runNc
Csh|j�X|dkr0|jj�|jj�|jj�n*|jj|d�|jj|d�|jj|d�WdQRXdS)z>Clear the internal cache, optionally only for function 'name'.N)rQrrrRrS�pop)r�r�r�r�r�r�s

z_WrapNumbers.cache_clearc
Cs"|j�|j|j|jfSQRXdS)z5Return internal cache dicts as a tuple of 3 elements.N)rQrrRrS)r�r�r�r��
cache_info�sz_WrapNumbers.cache_info)N)
r�r�r�r�rrYr_rlrrnr�r�r�r�rN�s'
rNc
Cstj�tj||�SQRXdS)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)�_wnrQrl)rXr�r�r�r�rRs� icCst|dtd�S)N�rb)�	buffering)�open�FILE_READ_BUFFER_SIZE)�fnamer�r�r�rTscCs`tst|td�St|tttd�}y
t|_Wn0tk
r>Yntk
rZ|j��YnX|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').
    )rr)rr�encoding�errors)	�PY3rsrtr3r4�_CHUNK_SIZErr�close)ru�fobjr�r�r�rS"s
cCs\|tkr"||��
}|j�SQRXn6y||��
}|j�SQRXWnttfk
rV|SXdS)z�Read entire file content and return it as a string. File is
    opened in text mode. If specified, `fallback` is the value
    returned in case of error, either if the file does not exist or
    it can't be read().
    N)�_DEFAULT�read�IOErrorr%)ru�fallback�_open�fr�r�r�rU@s

cCst||td�S)z,Same as above but opens file in binary mode.)rr�)rUrT)rurr�r�r�rVQs�%(value).1f%(symbol)sc	Cs�d}i}x0t|d
d��D]\}}d
|d
d>||<qWxBt|d
d��D].}t|�||krLt|�||}|t�SqLW|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�Yr~N�
r)�symbolr�)	r�r�r�r�r�r�r�r�r�)�	enumerate�reversed�absr	�locals�dict)�n�format�symbols�prefixri�sr�r�r�r�r�rWVscCstjdjS)z+Return updated psutil.PROCFS_PATH constant.r�)�sys�modules�PROCFS_PATHr�r�r�r��get_procfs_pathisr�cCs|jttd�S)N)rvrw)�decoder3r4)r�r�r�r�r�psr�cCs|S)Nr�)r�r�r�r�r�uscCs^tjdkrdSy2ddl}|j�s$t�|j�|jd�dks>t�Wntk
rTdSXdSdS)Nr^Tr�colorsF)r#r��curses�isattyrT�	setupterm�tigetnumr)�filer�r�r�r�r[~s
FcCs�t�s
|Sg}tddddddddd	d
�	}d|d<y||}Wn(tk
rdtd
t|j����YnX|j|�|r~|jd�ddj|�|fS)z*Return an highlighted version of 'string'.�34�33�30�32�37�36�91�35�93)	�blue�brown�darkgrey�green�grey�	lightblue�red�violet�yellow�29Nz#invalid color %r; choose between %s�1z[%sm%s�;)r[r�rr?�listrZrcr�)r��color�bold�attrr�r�r�r�rZ�s.

cCst�st||d�n�tr.tt|||�|d�n�ddl}d}|jjj}|jjj}t	ddddd�}||d<y||}Wn,t
k
r�td	|t|j
��f��YnX|r�|dkr�|d
7}|tjkr�d
nd}	|j|_||	�}
||
|�zt||d�Wd||
|�XdS)z$Print a colorized version of string.)r�rN�r}��)r�r�r�r�z#invalid color %r; choose between %r���i�i����)r[�printrrZ�ctypes�windll�Kernel32�GetStdHandle�SetConsoleTextAttributer�rr?r�rZr��stderr�c_ulong�restype)r�r�r�r�r��
DEFAULT_COLORr�r�r��	handle_id�handler�r�r�r\�s2


cCsntrjddl}|j|j�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]> %s)r�)
r�inspect�getframeinfo�currentframe�f_back�
isinstancerr%r~�EnvironmentErrorr�r�r�)r�r�ru�lineno�_�_lines�_indexr�r�r�rY�s

)rarb)rcrdr�r�)N)Ni�)r�)NF)�r��
__future__rrr�r/r&rr#r-r$r�rOrHrrrrr�ImportErrorr	�version_inforxr=�bool�getenvr�objectr|�__all__r�rr�platform�
startswithrrrrrrr
r�AIXr)r*r&r+r-r1r%r/r0r'r(r.r,r2rr rrrr!rrrrrrr"r#r$�IntEnumr�globals�update�__members__r�r�r��getfilesystemencodingr3r4�getfilesystemencodeerrorsrrFrBr@rArCrGr>rDrEr?r�r�r�r�r6r;r<r=r8r9r:r7r5r�rHrr�r�rrrr��__builtins__r��exec_r�rrNrKr"rJrMrOrLrPrQrXrIrNrRrorrnrtrTrSrUrVrWr�r��stdoutr[rZr\rYr�r�r�r��<module>s�






	




	




#

-G

W		&