Viewing File: /opt/alt/python35/lib64/python3.5/site-packages/psutil/__pycache__/_common.cpython-35.opt-1.pyc



Cs[)FX@sdZddlmZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZddlmZddlmZddlmZydd	lmZWnek
rdZYnXydd
lmZWnek
r/dZYnXe	jdkrNddlZndZe	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	jjdWZe	jjdXZeZ e	jjdYZ!e	jjdZZ"e	jjd[Z#e!pe"pe#Z$e	jjdZ%e	jjd^Z&d_Z'd`Z(daZ)dbZ*dcZ+ddZ,deZ-dfZ.dgZ/dhZ0diZ1djZ2dkZ3dlZ4dmZ5dnZ6doZ7dpZ8dqZ9drZ:dsZ;dtZ<duZ=dvZ>dwZ?dxZ@edkrdyZAdzZBdZCn,Gd{d|d|ejDZEeFjGeEjHedkrdZIdZJn,Gd}d~d~ejDZKeFjGeKjHe	jLZMesDdZNn7ye	jOZNWn$ePk
rzerpdndZNYnXedHddddddgZQedDddddgZRedBddddddgZSedCddddgZTedEddddddddgZUedIdddddgZVed@dddddddgZWedFdddddgZXedGddddgZYedAddddgZZeddddgZ[edddddgZ\eddddgZ]edddgZ^ed8ddddgZ_ed=ddgZ`ed>dddgZaed?dddgZbed:dddgZced;ddddgZded<ddgZeed9ddgZfed7ddddddgZgedddgZhdeeegeegfdeegegfdegegfdeegegfdegegfdeegeegfdegeegfdegeegfiZiedk	reijGdegegfdegegfiedk	reijGdegeegfi[[[[dddPZjddMZkddZlddLZmddOZnekddQZoddNZpddRZqddSZrddKZsGdddZtddTZuetZvevjweu_wevjxeu_xdS)z9Common objects shared by __init__.py and _ps*.py modules.)divisionN)defaultdict)
namedtuple)AF_INET)
SOCK_DGRAM)SOCK_STREAM)AF_INET6)AF_UNIXFREEBSDBSDLINUXNETBSDOPENBSDMACOSOSXPOSIXSUNOSWINDOWSENCODING
ENCODING_ERRSr
CONN_CLOSECONN_CLOSE_WAITCONN_CLOSINGCONN_ESTABLISHEDCONN_FIN_WAIT1CONN_FIN_WAIT2
CONN_LAST_ACKCONN_LISTEN	CONN_NONE
CONN_SYN_RECV
CONN_SYN_SENTCONN_TIME_WAITNIC_DUPLEX_FULLNIC_DUPLEX_HALFNIC_DUPLEX_UNKNOWNSTATUS_DEADSTATUS_DISK_SLEEPSTATUS_IDLE
STATUS_LOCKEDSTATUS_RUNNINGSTATUS_SLEEPINGSTATUS_STOPPEDSTATUS_SUSPENDEDSTATUS_TRACING_STOPSTATUS_WAITINGSTATUS_WAKE_KILL
STATUS_WAKING
STATUS_ZOMBIE
STATUS_PARKEDpconn	pcputimespctxswpgidspiopionice	popenfilepthreadpuidssconn	scpustatssdiskio	sdiskpart
sdiskusagesnetiosnicaddr	snicstatssswapsuser	conn_tmapdeprecated_method
isfile_strictmemoizeparse_environ_blockpath_exists_strict
usage_percent
supports_ipv6sockfam_to_enumsocktype_to_enumwrap_numbersposixntlinuxdarwinZfreebsdZopenbsdZnetbsdsunossolarisaixrunningZsleepingz
disk-sleepstoppedztracing-stopZzombieZdeadz	wake-killZwakingZidlelockedZwaitingZ	suspendedZparkedZESTABLISHEDZSYN_SENTZSYN_RECVZ	FIN_WAIT1Z	FIN_WAIT2Z	TIME_WAITZCLOSEZ
CLOSE_WAITZLAST_ACKZLISTENZCLOSINGNONEc@s"eZdZdZdZdZdS)	NicDuplexr^r_rN)__name__
__module____qualname__r$r%r&rdrd/_common.pyr`sr`c@seZdZdZdZdS)BatteryTimer_r^N)rarbrcPOWER_TIME_UNKNOWNPOWER_TIME_UNLIMITEDrdrdrdrerfsrfreplacesurrogateescapetotalusedfreeZpercentsinZsoutZ
read_countZwrite_countZ
read_bytesZwrite_bytesZ	read_timeZ
write_timeZdeviceZ
mountpointZfstypeZoptsZ
bytes_sentZ
bytes_recvZpackets_sentZpackets_recvZerrinZerroutZdropinZdropoutnameZterminalhoststartedpidfdfamilytypeladdrraddrstatusaddressZnetmaskZ	broadcastZptpZisupduplexZspeedZmtuZctx_switchesZ
interruptsZsoft_interruptsZsyscallsscpufreqcurrentminmaxshwtempZlabelhighcriticalsbatteryZsecsleftZ
power_pluggedsfanusersystem
children_userchildren_systempathidZ	user_timeZsystem_timerealZ	effectiveZsavedZioclassvalueZ	voluntaryZinvoluntaryaddrZipportallZtcpZtcp4ZudpZudp4ZinetZinet4Zinet6Ztcp6Zudp6ZunixcCsry||d}Wn<tk
rPt|ts@t|trFdnd}YnX|dk	rjt||S|SdS)z5Calculate percentage usage of 'used' against 'total'.dgrN)ZeroDivisionError
isinstancefloatround)rnrmZround_retrdrdrerNs
/
csItjfdd}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|jf}y|SWn-tk
rY||}|<|SYnXdS)N)	frozensetsorteditemsKeyError)argskwargskeyr)cachefunrdrewrapper%s
zmemoize.<locals>.wrappercsjdS)zClear cache.N)clearrd)rrdrecache_clear.szmemoize.<locals>.cache_clear)	functoolswrapsr)rrrrd)rrrerKs
$		csstjfddfdd}fdd}id_|_|_S)aA 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()
    >>>
    csRjs|Sy}Wn&tk
rI|}<YnX|SdS)N)cache_activatedr)selfr)rrrrdrerQs	

z'memoize_when_activated.<locals>.wrappercs
d_dS)zActivate cache.TN)rrd)rrdrecache_activate\sz.memoize_when_activated.<locals>.cache_activatecsd_jdS)zDeactivate and clear cache.FN)rrrd)rrrdrecache_deactivate`s	z0memoize_when_activated.<locals>.cache_deactivateF)rrrrr)rrrrd)rrrrememoize_when_activated7s'			rcCsqytj|}WnGtk
r\}z'|jtjtjfkrFdSWYdd}~XnXtj|jSdS)zSame as os.path.isfile() but does not swallow EACCES / EPERM
    exceptions, see:
    http://mail.python.org/pipermail/python-dev/2012-June/120787.html
    FN)osstatOSErrorerrnoEPERMEACCESS_ISREGst_mode)rsterrrdrdrerJlscCscytj|WnGtk
rZ}z'|jtjtjfkrDdSWYdd}~XnXdSdS)zSame as os.path.exists() but does not swallow EACCES / EPERM
    exceptions, see:
    http://mail.python.org/pipermail/python-dev/2012-June/120787.html
    FNT)rrrrrr)rrrdrdrerM{scCs{tjstdkrdSyAtjttj}tj||jdWdQRXdSWntjk
rvdSYnXdS)z2Return True if IPv6 is supported on this platform.NF::1rT)rr)sockethas_ipv6rr
contextlibclosingbinderror)sockrdrdrerOscCsi}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=r_)rfindupper)datarposZWINDOWS_Znext_posZ	equal_posrrrdrdrerLs 
cCsDtdkr|Sytj|SWnttfk
r?|SYnXdS)zConvert a numeric socket family value to an IntEnum member.
    If it's not a known member, return the numeric value itself.
    N)enumr
AddressFamily
ValueErrorAttributeError)numrdrdrerPs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)rrZAddressTyperr)rrdrdrerQscsfdd}|S)zA decorator which can be used to mark a method as deprecated
    'replcement' is the method name which will be called instead.
    csSd|jf|jdkr+|_tj|fdd}|S)Nz8%s() is deprecated and will be removed; use %s() insteadcs/tjdtddt|||S)Ncategory
stacklevelr^)warningswarn
FutureWarninggetattr)rrr)msgreplacementrdreinnersz/deprecated_method.<locals>.outer.<locals>.inner)ra__doc__rr)rr)r)rreouters	$z deprecated_method.<locals>.outerrd)rrrd)rrerIsc@saeZdZdZddZddZddZdd	Zd
ddZd
dZ	d
S)_WrapNumberszNWatches numbers so that they don't overflow and wrap
    (reset to zero).
    cCs.tj|_i|_i|_i|_dS)N)	threadingLocklockr	reminders
reminder_keys)rrdrdre__init__s		z_WrapNumbers.__init__cCs7||j|<tt|j|<tt|j|<dS)N)rrintrsetr)r
input_dictrqrdrdre	_add_dicts
z_WrapNumbers._add_dictcCs||j|}t|jt|j}xF|D]>}x'|j||D]}|j||=qNW|j||=q6WdS)zIn case the number of keys changed between calls (e.g. a
        disk disappears) this removes the entry from self.reminders.
        N)rrkeysrr)rrrqold_dictZ	gone_keysZgone_keyremkeyrdrdre_remove_dead_reminderss
"
z#_WrapNumbers._remove_dead_remindersc
CsP||jkr#|j|||S|j|||j|}i}x|jD]}||}y||}Wntk
r|||<wSYnXg}xtt|D]{}	||	}
||	}||	f}|
|kr|j|||7<|j||j	||j
|
|j||qWt|||<qSW||j|<|S)zkCache dict and sum numbers which overflow and wrap.
        Return an updated copy of `input_dict`
        )rrrrrrangelenrraddappendtuple)
rrrqrZnew_dictrZinput_tupleZ	old_tuplebitsiZinput_valueZ	old_valuerrdrdreruns2





 
z_WrapNumbers.runNc
Cs|jt|dkr@|jj|jj|jjn9|jj|d|jj|d|jj|dWdQRXdS)z>Clear the internal cache, optionally only for function 'name'.N)rrrrrpop)rrqrdrdrer%s


z_WrapNumbers.cache_clearc
Cs+|j|j|j|jfSWdQRXdS)z5Return internal cache dicts as a tuple of 3 elements.N)rrrr)rrdrdre
cache_info1s
z_WrapNumbers.cache_info)
rarbrcrrrrrrrrdrdrdrers'rc
Cs%tjtj||SWdQRXdS)zGiven 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)rrqrdrdrerR7s
)r
r)rWrXrgrh)yrZ
__future__rrrrrrrsysrrcollectionsrrrrrrImportErrorr	version_inforZPY3__all__rqrrplatform
startswithrrrrrrr
rZAIXr+r,r(r-r/r3r'r1r2r)r*r0r.r4rr"r!rrr#rrrrrr r$r%r&IntEnumr`globalsupdate__members__rirjrfgetfilesystemencodingrrZgetfilesystemencodeerrorsrrFrBr@rArCrGr>rDrEr?r}rrrr6r;r<r=r8r9r:r7r5rrHrNrKrrJrMrOrLrPrQrIrrRrrrrdrdrdre<module>sN

										

	 5

W		
Back to Directory File Manager