Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/site-packages/psutil/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/site-packages/psutil/__pycache__/_common.cpython-35.pyc



Cs[)F�X@s�dZddlmZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZddlmZddlmZddlmZydd	lmZWnek
rdZYnXydd
lmZWnek
r/dZYnXe	jd�krNddlZndZe	jddkZd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTgHZejdUkZejdVkZe	jjdW�Ze	jjdX�ZeZ e	jjdY�Z!e	jjdZ�Z"e	jjd[�Z#e!p�e"p�e#Z$e	jjd��Z%e	jjd^�Z&d_Z'd`Z(daZ)dbZ*dcZ+ddZ,deZ-dfZ.dgZ/dhZ0diZ1djZ2dkZ3dlZ4dmZ5dnZ6doZ7dpZ8dqZ9drZ:dsZ;dtZ<duZ=dvZ>dwZ?dxZ@edkr�dyZAdzZBdZCn,Gd{d|�d|ejD�ZEeF�jGeEjH�edkr�d�ZId�ZJn,Gd}d~�d~ejD�ZKeF�jGeKjH�e	jL�ZMesDdZNn7ye	jO�ZNWn$ePk
rzerpd�ndZNYnXedHd�d�d�d�d�d�g�ZQedDd�d�d�d�g�ZRedBd�d�d�d�d�d�g�ZSedCd�d�d�d�g�ZTedEd�d�d�d�d�d�d�d�g�ZUedId�d�d�d�d�g�ZVed@d�d�d�d�d�d�d�g�ZWedFd�d�d�d�d�g�ZXedGd�d�d�d�g�ZYedAd�d�d�d�g�ZZed�d�d�d�g�Z[ed�d�d�d�d�g�Z\ed�d�d�d�g�Z]ed�d�d�g�Z^ed8d�d�d�d�g�Z_ed=d�d�g�Z`ed>d�d�d�g�Zaed?d�d�d�g�Zbed:d�d�d�g�Zced;d�d�d�d�g�Zded<d�d�g�Zeed9d�d�g�Zfed7d�d�d�d�d�d�g�Zged�d�d�g�Zhd�eeegeegfd�eegegfd�egegfd�eegegfd�egegfd�eegeegfd�egeegfd�egeegfiZiedk	r�eijGd�egegfd�egegfi�edk	reijGd�egeegfi�[[[[dd�dP�Zjd�dM�Zkd�d��Zld�dL�Zmd�dO�Znekd�dQ��Zod�dN�Zpd�dR�Zqd�dS�Zrd�dK�ZsGd�d��d��Ztd�dT�Zuet�Zvevjweu_wevjxeu_xdS)�z9Common objects shared by __init__.py and _ps*.py modules.�)�divisionN)�defaultdict)�
namedtuple)�AF_INET)�
SOCK_DGRAM)�SOCK_STREAM)�AF_INET6)�AF_UNIX���FREEBSD�BSD�LINUX�NETBSD�OPENBSD�MACOS�OSX�POSIX�SUNOS�WINDOWS�ENCODING�
ENCODING_ERRSr�
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�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�posix�nt�linux�darwin�freebsdZopenbsdZnetbsd�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@s"eZdZdZdZdZdS)�	NicDuplexrrrsrN)�__name__�
__module__�__qualname__r$r%r&�rxrx�A/opt/alt/python35/lib64/python3.5/site-packages/psutil/_common.pyrt�srtc@seZdZdZdZdS)�BatteryTimersrrN������)rurvrw�POWER_TIME_UNKNOWN�POWER_TIME_UNLIMITEDrxrxrxryrz�srz�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�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�unixcCsry||d}Wn<tk
rPt|t�s@t|t�rFdnd}YnX|dk	rjt||�S|SdS)z5Calculate percentage usage of 'used' against 'total'.�dgrN)�ZeroDivisionError�
isinstance�float�round)r�r��round_�retrxrxryrNs
/
csItj����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()
    >>>
    cs^|tt|j���f}y�|SWn-tk
rY�||�}�|<|SYnXdS)N)�	frozenset�sorted�items�KeyError)�args�kwargs�keyr�)�cache�funrxry�wrapper%s
zmemoize.<locals>.wrappercs�j�dS)zClear cache.N)�clearrx)r�rxry�cache_clear.szmemoize.<locals>.cache_clear)�	functools�wrapsr�)r�r�r�rx)r�r�ryrKs
$		csstj�����fdd����fdd�}��fdd�}i�d�_|�_|�_�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()
    >>> foo()
    1
    >>> foo()
    >>> foo()
    >>>
    csR�js�|�Sy��}Wn&tk
rI�|�}��<YnX|SdS)N)�cache_activatedr�)�selfr�)r�r�r�rxryr�Qs	

z'memoize_when_activated.<locals>.wrappercs
d�_dS)zActivate cache.TN)r�rx)r�rxry�cache_activate\sz.memoize_when_activated.<locals>.cache_activatecsd�_�j�dS)zDeactivate and clear cache.FN)r�r�rx)r�r�rxry�cache_deactivate`s	z0memoize_when_activated.<locals>.cache_deactivateF)r�r�r�r�r�)r�r�r�rx)r�r�r�ry�memoize_when_activated7s'			r�cCsqytj|�}WnGtk
r\}z'|jtjtjfkrF�dSWYdd}~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��st�errrxrxryrJlscCscytj|�WnGtk
rZ}z'|jtjtjfkrD�dSWYdd}~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�r�rxrxryrM{scCs{tjstdkrdSyAtjttj�}tj|��|jd�WdQRXdSWntjk
rvdSYnXdS)z2Return True if IPv6 is supported on this platform.NF�::1rT)r�r)�socket�has_ipv6rr�
contextlib�closing�bind�error)�sockrxrxryrO�scCs�i}d}t}x�|jd|�}||kr4P|jd||�}||kr�|||�}||d|�}|r�|j�}|||<|d}qW|S)zCParse a C environ block of environment variables into a dictionary.r��=rs)r�find�upper)�datar��pos�WINDOWS_�next_pos�	equal_posr�r�rxrxryrL�s 
cCsDtdkr|Sytj|�SWnttfk
r?|SYnXdS)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�AttributeError)�numrxrxryrP�scCsDtdkr|Sytj|�SWnttfk
r?|SYnXdS)zConvert a numeric socket type value to an IntEnum member.
    If it's not a known member, return the numeric value itself.
    N)rr��AddressTyperr)rrxrxryrQ�scs�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.
    csSd|j�f�|jdkr+�|_tj|���fdd��}|S)Nz8%s() is deprecated and will be removed; use %s() insteadcs/tj�dtdd�t|��||�S)N�category�
stacklevelrr)�warnings�warn�
FutureWarning�getattr)r�r�r�)�msg�replacementrxry�inner�sz/deprecated_method.<locals>.outer.<locals>.inner)ru�__doc__r�r�)r�r)r)rry�outer�s	$z deprecated_method.<locals>.outerrx)rrrx)rryrI�sc@saeZdZdZdd�Zdd�Zdd�Zdd	�Zd
dd�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�rxrxry�__init__�s		z_WrapNumbers.__init__cCsv||jkst�||jks*t�||jks?t�||j|<tt�|j|<tt�|j|<dS)N)r��AssertionErrorr#r$r�int�set)r��
input_dictr�rxrxry�	_add_dict�s
z_WrapNumbers._add_dictcCs||j|}t|j��t|j��}xF|D]>}x'|j||D]}|j||=qNW|j||=q6WdS)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(�keysr$r#)r�r)r��old_dict�	gone_keys�gone_key�remkeyrxrxry�_remove_dead_reminders�s
"
z#_WrapNumbers._remove_dead_remindersc
CsP||jkr#|j||�|S|j||�|j|}i}x�|j�D]�}||}y||}Wntk
r�|||<wSYnXg}x�tt|��D]{}	||	}
||	}||	f}|
|kr|j|||7<|j||j	|�|j
|
|j||�q�Wt|�||<qSW||j|<|S)zkCache dict and sum numbers which overflow and wrap.
        Return an updated copy of `input_dict`
        )r�r*r0r+r��range�lenr#r$�add�append�tuple)
r�r)r�r,�new_dictr��input_tuple�	old_tuple�bits�i�input_value�	old_valuer/rxrxry�run�s2





 
z_WrapNumbers.runNc
Cs�|j�t|dkr@|jj�|jj�|jj�n9|jj|d�|jj|d�|jj|d�WdQRXdS)z>Clear the internal cache, optionally only for function 'name'.N)r"r�r�r#r$�pop)r�r�rxrxryr�%s


z_WrapNumbers.cache_clearc
Cs+|j�|j|j|jfSWdQRXdS)z5Return internal cache dicts as a tuple of 3 elements.N)r"r�r#r$)r�rxrxry�
cache_info1s
z_WrapNumbers.cache_info)
rurvrwrr%r*r0r=r�r?rxrxrxryr�s'rc
Cs%tj�tj||�SWdQRXdS)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)�_wnr"r=)r)r�rxrxryrR7s
)r
r)rXrYr{r|)yr�
__future__rrr�r�r�r�r��sysr r�collectionsrrrrrr�ImportErrorr	�version_infor�PY3�__all__r�rr�platform�
startswithrrrrrrr
r�AIXr+r,r(r-r/r3r'r1r2r)r*r0r.r4rr"r!rrr#rrrrrr r$r%r&�IntEnumrt�globals�update�__members__r}r~rz�getfilesystemencodingrr�getfilesystemencodeerrorsrrFrBr@rArCrGr>rDrEr?r�r�r�r�r6r;r<r=r8r9r:r7r5r�rHrNrKr�rJrMrOrLrPrQrIrrRr@r�r?rxrxrxry�<module>sN

										

	 5

W