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



Cs[,;@sdZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
yddl	mZWne
k
rZzleejjdrejddkrd	Zed
7Zed7Zed7ZeenWYddZ[XnXdd
l
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddl$m%Z%ddl$m&Z&ddl$m'Z'ddlm(Z(ddlm)Z)dd lm*Z*dd!lm+Z+dd"lm,Z,dd#lm-Z-ej.dkrddl/Z/ndZ/d&d'd(d)d*d+d,d-d.d/g
Z0d0Z1e2ej3ej4ej5gZ6e2ej7ej8gZ9e/dkrdZ:n!e/j;d1d/diZ<e<j:Z:ej=e
j>ej?e
j@ejAe
jBejCe
jDejEe
jFejGe
jHejIe
jJejKe
jLejMe
jNejOe
jPejQe
jRejSe1ejTe
jUi
ZVe/dk	rGd2d3d3e/j;ZWeXjYeWjZe[d4dd5dd6d7d8d$d9d%d:d;d<dd=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZZ\ed[d\d]d^d_d`gZ]edadbdcdddedfgZ^edgdhdidGdIdKdMdOdjdkdUdWdlgZ_edme_j`dZaedodpdhgZbedqdrdsjcebj`ZdedtdudvdwdxdydzgZee d{d|d}d~ZfddZgddZhddZiejjZjddZkddZlddZmddZnddZoddZpddZqddZrdddZsddZtddZuddZvddZwdaxddZyddZzdd&Z{dd'Z|Gddde}Z~ejZejZejZddZGddde}ZdS)z Windows platform implementation.N)
namedtuple)_common)_psutil_windowszdll load failedz3this Windows version is too old (< Windows Vista); z:psutil 3.4.2 is the latest version which supports Windows z92000, XP and 2003 server; it may be possible that psutil z)will work if compiled from sources though)	conn_tmap)ENCODING)
ENCODING_ERRS)
isfile_strict)memoize_when_activated)parse_environ_block)sockfam_to_enum)socktype_to_enum)
usage_percent)long)	lru_cache)PY3)unicode)xrange)AccessDenied)
NoSuchProcess)TimeoutExpired)ABOVE_NORMAL_PRIORITY_CLASS)BELOW_NORMAL_PRIORITY_CLASS)HIGH_PRIORITY_CLASS)IDLE_PRIORITY_CLASS)NORMAL_PRIORITY_CLASS)REALTIME_PRIORITY_CLASSwin_service_iterwin_service_getrrrrrrCONN_DELETE_TCBAF_LINKZ
DELETE_TCB
AddressFamilyc@s4eZdZeZeZeZeZeZeZdS)PriorityN)	__name__
__module____qualname__rrrrrrr)r)/_pswindows.pyr%osr%num_handlesctx_switches	user_timekernel_timecreate_timenum_threads	io_rcount	io_wcount	io_rbytes	io_wbytes	io_count_others
io_bytes_othersnum_page_faults	peak_wset
wsetpeak_paged_pool
paged_poolpeak_non_paged_poolnon_paged_poolpagefile
peak_pagefilemem_private	scputimesusersystemidle	interruptdpcsvmemtotalZ	availablepercentusedfreepmemrssvmsZpeak_nonpaged_poolZ
nonpaged_poolZprivatepfullmemuss
pmmap_groupedpath	pmmap_extzaddr perms  pioZ
read_countZwrite_countZ
read_bytesZwrite_bytesother_countZother_bytesmaxsizeicCsTdj|jddd}tj|}tjj||t|dS)zConvert paths using native DOS format like:
        "\Device\HarddiskVolume1\Windows\systemew\file.txt"
    into:
        "C:\Windows\systemew\file.txt"
    \Nr)joinsplitcextZwin32_QueryDosDeviceosrclen)sZrawdriveZdriveletterr)r)r*convert_dos_paths"rpcCs1tr
|St|tr|S|jttSdS)zmEncode a unicode string to a byte string by using the default fs
    encoding + "replace" error handler.
    N)r
isinstancestrencoderr	)ror)r)r*
py2_strencodes
rtcCsotj}|\}}}}}}|}|}|}	||}
t|||dd}t||||
|	S)z&System virtual memory as a namedtuple.round_r)rlvirtual_memrrX)memZtotphysZ	availphysZtotpagefZ
availpagefZtotvirtZfreevirtrYZavailr\r[rZr)r)r*virtual_memorys
rxcCs[tj}|d}|d}||}t||dd}tj||||ddS)z=Swap system memory as a (total, used, free, sin, sout) tuple.r.rrurr)rlrvrrZsswap)rwrYr\r[rZr)r)r*swap_memorys


rycCsttr*t|tr*|jtdd}tj|\}}||}t||dd}tj	||||S)z'Return disk usage associated with path.errorsstrictrur)
rrqbytesdecoderrl
disk_usagerrZ
sdiskusage)rcrYr\r[rZr)r)r*r~s
r~cCs tj|}dd|DS)zReturn disk partitions.cSsg|]}tj|qSr))rZ	sdiskpart).0xr)r)r*
<listcomp>s	z#disk_partitions.<locals>.<listcomp>)rldisk_partitions)allrawlistr)r)r*rsrcCsVtj\}}}tddttjD}t||||j|jS)z)Return system CPU times as a named tuple.cSsg|]}t|qSr))sum)rnr)r)r*rs	zcpu_times.<locals>.<listcomp>)rl	cpu_timesrRzip
per_cpu_timesrVrW)rSrTrUZ
percpu_summedr)r)r*r	s%rcCsUg}xHtjD]:\}}}}}t|||||}|j|qW|S)z6Return system per-CPU times as a list of named tuples.)rlrrRappend)retrSrTrUrVrWitemr)r)r*rs
"rcCs
tjS)z0Return the number of logical CPUs in the system.)rlcpu_count_logicalr)r)r)r*rsrcCs
tjS)z6Return the number of physical CPU cores in the system.)rlZcpu_count_physr)r)r)r*cpu_count_physical"srcCs4tj\}}}}d}tj||||S)zReturn CPU statistics.r)rl	cpu_statsrZ	scpustats)r,Z
interruptsZdpcsZsyscallsZsoft_interruptsr)r)r*r'srcCs:tj\}}d}tjt||t|gS)zMReturn CPU frequency.
    On Windows per-cpu frequency is not supported.
    g)rlcpu_freqrZscpufreqfloat)ZcurrZmax_Zmin_r)r)r*r/src	CsC|tkr8td|djddtDft|\}}tj|||}t}x|D]}|\}}}	}
}}}
|
rtj|
}
|rtj|}t|}t	|}t
|	}	|dkr
tj|||	|
|||
}ntj|||	|
||}|j
|qmWt|S)zReturn socket connections.  If pid == -1 return system-wide
    connections (as opposed to connections opened by one process only).
    z+invalid %r kind argument; choose between %sz, cSsg|]}t|qSr))repr)rrr)r)r*rCs	z#net_connections.<locals>.<listcomp>r)r
ValueErrorrjrlnet_connectionssetraddrTCP_STATUSESr
rZsconnZpconnaddlist)kind_pidfamiliestypesrrrfdZfamtypeladdrraddrstatuspidntr)r)r*r=s(&	

$rcCsi}tj}x|jD]\}}ts^t|tsRtt|t|}|\}}}}t	t
drt
j|}t
j||||||<qW|S)z)Get NIC stats (isup, duplex, speed, mtu).	NicDuplex)
rlnet_if_statsitemsrrqrAssertionErrorrrthasattrrrZ	snicstats)rZrawdictnamerZisupduplexZspeedZmtur)r)r*rXs! rcCs)tj}tdd|jDS)zsReturn network I/O statistics for every network interface
    installed on the system as a dict of raw tuples.
    cSs(g|]\}}t||fqSr))rt)rkvr)r)r*rls	z#net_io_counters.<locals>.<listcomp>)rlnet_io_countersdictr)rr)r)r*rgsrcCsNg}xAtjD]3}t|}t|d|d<|j|qW|S)z,Return the addresses associated to each NIC.r)rlnet_if_addrsrrtr)rrr)r)r*rosrcCstj\}}}}|dk}t|d@}t|d@}|rNdS|sZ|rftj}n|dkr{tj}tj|||S)zReturn battery information.rr7Nr)rlsensors_batteryboolrZPOWER_TIME_UNLIMITEDZPOWER_TIME_UNKNOWNZsbattery)Z
acline_statusflagsrZZsecsleftZ
power_pluggedZ
no_batteryZchargingr)r)r*r~s	rcCs:ttj}t|tdkr,tS|a|SdS)z:The system boot time expressed in seconds since the epoch.rN)rrl	boot_timeabs_last_btime)rr)r)r*rs
rcCsjg}tj}xQ|D]I}|\}}}t|}tj|d||d}|j|qW|S)z:Return currently connected users as a list of namedtuples.N)rlusersrtrZsuserr)retlistrrrShostnameZtstamprr)r)r*rs
rccs;x4tjD]&\}}tt|t|Vq
WdS)z*Yields a list of WindowsService instances.N)rlZwinservice_enumerateWindowsServicert)rdisplay_namer)r)r*r scCs&t|d}|jd|_|S)zBOpen a Windows service and return it as a WindowsService instance.Nr)r
_query_config
_display_name)rZservicer)r)r*r!sc@seZdZdZddZddZddZdd	Zd
dZdd
Z	ddZ
ejddZ
ddZddZddZddZddZddZddZd d!Zd"d#Zd$S)%rz(Represents an installed Windows service.cCs||_||_dS)N)_namer)selfrrr)r)r*__init__s	zWindowsService.__init__cCs*d|j|jf}d|jj|fS)Nz(name=%r, display_name=%r)z%s%s)rr	__class__r&)rZdetailsr)r)r*__str__szWindowsService.__str__cCsd|jt|fS)Nz
<%s at %s>)rid)rr)r)r*__repr__szWindowsService.__repr__cCs#t|tstS|j|jkS)N)rqrNotImplementedr)rotherr)r)r*__eq__szWindowsService.__eq__cCs||kS)Nr))rrr)r)r*__ne__szWindowsService.__ne__cCsi|j#tj|j\}}}}WdQRXtdt|dt|dt|dt|S)Nrbinpathusername
start_type)_wrap_exceptionsrlZwinservice_query_configrrrt)rrrrrr)r)r*rs
%zWindowsService._query_configcCsQ|jtj|j\}}WdQRX|dkr>d}td|d|S)Nrrr)rrlZwinservice_query_statusrr)rrrr)r)r*
_query_statuss

zWindowsService._query_statusccsy	dVWntk
r}z|jtkrUtddd|jdd|jnI|jtkss|jtkrtddd|jdd|jnWYdd}~XnXdS)z{Ctx manager which translates bare OSError and WindowsError
        exceptions into NoSuchProcess and AccessDenied.
        Nrrmsgz2service %r is not querable (not enough privileges)zservice %r does not exist))ZWindowsErrorerrnoACCESS_DENIED_ERRSETrrNO_SUCH_SERVICE_ERRSETwinerrorr)rerrr)r)r*rs	zWindowsService._wrap_exceptionscCs|jS)zThe service name. This string is how a service is referenced
        and can be passed to win_service_get() to get a new
        WindowsService instance.
        )r)rr)r)r*rszWindowsService.namecCs|jS)z_The service display name. The value is cached when this class
        is instantiated.
        )r)rr)r)r*rszWindowsService.display_namecCs|jdS)zwThe fully qualified path to the service binary/exe file as
        a string, including command line arguments.
        r)r)rr)r)r*rszWindowsService.binpathcCs|jdS)z,The name of the user that owns this service.r)r)rr)r)r*rszWindowsService.usernamecCs|jdS)zRA string which can either be "automatic", "manual" or
        "disabled".
        r)r)rr)r)r*rszWindowsService.start_typecCs|jdS)zzThe process PID, if any, else None. This can be passed
        to Process class to control the service's process.
        r)r)rr)r)r*r'szWindowsService.pidcCs|jdS)zService status as a string.r)r)rr)r)r*r-szWindowsService.statuscCsttj|jS)zService long description.)rtrlZwinservice_query_descrr)rr)r)r*description1szWindowsService.descriptioncCsS|j}|j|j|j|d<|j|d<|j|d<|S)zUUtility method retrieving all the information above as a
        dictionary.
        rrr)rupdaterrrr)rdr)r)r*as_dict7szWindowsService.as_dictN)r&r'r(__doc__rrrrrrr
contextlibcontextmanagerrrrrrrrrrrr)r)r)r*rs$rcs%tjfdd}|S)zqDecorator which translates bare OSError and WindowsError
    exceptions into NoSuchProcess and AccessDenied.
    csy|||SWnstk
r}zS|jtkrMt|j|j|jtjkrtt|j|jWYdd}~XnXdS)N)OSErrorrrrrrESRCHr)rargskwargsr)funr)r*wrapperxsz wrap_exceptions.<locals>.wrapper)	functoolswraps)rrr))rr*wrap_exceptionsts!
rc@seZdZdZdddgZddZddZd	d
ZeddZ	e
d
dZe
ddZe
ddZ
e
ddZddZddZe
ddZe
ddZddZe
dd Ze
d!d"Ze
d#d$d%Ze
d&d'Ze
d(d)Ze
d*d+Ze
d,d-Ze
d.d/Ze
d0d1Ze
d2d3Ze
d4d5Ze
d6d7Ze
d8d9d:Z e
d;d<Z!e
d=d>Z"e#e$d?r.e
d@dAZ%e
dBdCZ&e
dDdEZ'e
dFdGZ(e
dHdIZ)e
dJdKZ*e
dLdMZ+e
dNdOZ,d#S)PProcessz1Wrapper class around underlying C implementation.rr_ppidcCs||_d|_d|_dS)N)rrr)rrr)r)r*rs		zProcess.__init__cCs|jjdS)N)oneshot_infoZcache_activate)rr)r)r*
oneshot_enterszProcess.oneshot_entercCs|jjdS)N)rZcache_deactivate)rr)r)r*oneshot_exitszProcess.oneshot_exitcCs4tj|j}t|ttks0t|S)zOReturn multiple information about this process as a
        raw tuple.
        )rlZ	proc_inforrn	pinfo_mapr)rrr)r)r*rszProcess.oneshot_infocCsu|jdkrdS|jdkr&dSy ttjj|jSWn(tk
rpttj|jSYnXdS)zbReturn process name, which on Windows is always the final
        part of the executable.
        rzSystem Idle ProcessrZSystemN)	rrtrmrcbasenameexerrlZ	proc_name)rr)r)r*rs 
zProcess.namecCs@|jdkr$t|j|jtttj|jS)Nrr)rr)rrrrtrprlZproc_exe)rr)r)r*rszProcess.execCs1tj|j}tr|Sdd|DSdS)NcSsg|]}t|qSr))rt)rror)r)r*rs	z#Process.cmdline.<locals>.<listcomp>)rlZproc_cmdlinerr)rrr)r)r*cmdlineszProcess.cmdlinecCsPtj|j}|r@tr@t|ts@tt|tt	|S)N)
rlZproc_environrrrqrrrrrt)rZustrr)r)r*environs
!zProcess.environcCs@yt|jSWn'tk
r;t|j|jYnXdS)N)ppid_maprKeyErrorrr)rr)r)r*ppids
zProcess.ppidcCsytj|jSWntk
r}z|jtkr|j}|td|td|td|td|td|td|td|td|td	|td
f
SWYdd}~XnXdS)Nr>r@rBrDrFrHrJrLrNrP)rlZproc_memory_inforrrrrr)rrinfor)r)r*_get_raw_meminfos zProcess._get_raw_meminfocCs4|j}|d}|d}t||f|S)Nr.r5)rr])rtr^r_r)r)r*memory_infos

zProcess.memory_infocCs/|j}tj|j}t||fS)N)rrlZproc_memory_ussrr`)rZ	basic_memrar)r)r*memory_full_infoszProcess.memory_full_infoccs	ytj|j}Wnstk
r}zS|jtkrOt|j|j|jtjkrvt	|j|jWYdd}~XnzXxv|D]n\}}}}t
|}tst|t
stt|t|}t|}||||fVqWdS)N)rlZproc_memory_mapsrrrrrrrrrprrqrrrrthex)rrawrrZpermrcr^r)r)r*memory_mapss!zProcess.memory_mapscCstj|jS)N)rlZ	proc_killr)rr)r)r*killszProcess.killcCstj|j|dS)N)rmrr)rsigr)r)r*send_signalszProcess.send_signalNcCs6|dkrtj}nt|d}ttdtj}|dk	rV||nd}ytj|j|}WnGtjk
rt||j|jYntj	k
rd}YnXd}xjt
|js|S|r||krt|d|jd|jtj|t|dd}qWdS)Ni	monotonicg-C6?rrr.g{Gz?)
rlZINFINITEintgetattrtimeZ	proc_waitrrrZTimeoutAbandoned
pid_existssleepmin)rtimeoutZcext_timeoutZtimerZstop_atZ	exit_codedelayr)r)r*waits&	
zProcess.waitcCsC|jdkrdStj|j\}}t|dt|S)NrrzNT AUTHORITY\SYSTEMri)rr)rrlZ
proc_usernamert)rZdomainrSr)r)r*rAszProcess.usernamecCsz|jdkrtSytj|jSWnItk
ru}z)|jtkr`|jtdSWYdd}~XnXdS)Nrrr0)rr)	rrrlZproc_create_timerrrrr)rrr)r)r*r0HszProcess.create_timecCs|jtdS)Nr1)rr)rr)r)r*r1TszProcess.num_threadscCsXtj|j}g}x9|D]1\}}}tj|||}|j|qW|S)N)rlZproc_threadsrrZpthreadr)rrrZ	thread_idutimeZstimentupler)r)r*threadsXszProcess.threadscCsytj|j\}}Wnbtk
r}zB|jtkrk|j}|td}|td}nWYdd}~XnXtj	||ddS)Nr-r/g)
rlZproc_cpu_timesrrrrrrrZ	pcputimes)rrSrTrrr)r)r*raszProcess.cpu_timescCstj|jS)N)rlZproc_suspendr)rr)r)r*suspendoszProcess.suspendcCstj|jS)N)rlZproc_resumer)rr)r)r*resumesszProcess.resumecCsL|jdkr$t|j|jtj|j}ttjj|S)Nrr)rr)	rrrrlZproc_cwdrtrmrcnormpath)rrcr)r)r*cwdwszProcess.cwdcCs|jdkrgSt}tj|j}xW|D]O}t|}t|r5tset|}tj	|d}|j
|q5Wt|S)Nrrr)rrr)rrrlZproc_open_filesrpr
rrtrZ	popenfilerr)rrZraw_file_names_filer	r)r)r*
open_filess	
zProcess.open_filesZinetcCst|d|jS)Nr)rr)rrr)r)r*connectionsszProcess.connectionscCs.tj|j}tdk	r*t|}|S)N)rlZproc_priority_getrenumr%)rvaluer)r)r*nice_getszProcess.nice_getcCstj|j|S)N)rlZproc_priority_setr)rrr)r)r*nice_setszProcess.nice_setproc_io_priority_getcCstj|jS)N)rlrr)rr)r)r*
ionice_getszProcess.ionice_getcCsA|rtd|dkr.td|tj|j|S)Nz<set_proc_ionice() on Windows takes only 1 argument (2 given)r.rrz9value must be 2 (normal), 1 (low) or 0 (very low); got %r)r.rr)	TypeErrorrrlZproc_io_priority_setr)rr_r)r)r*
ionice_sets
zProcess.ionice_setcCsytj|j}Wntk
r}zn|jtkr|j}|td|td|td|td|td|tdf}nWYdd}~XnXt|S)Nr3r4r6r8r:r<)	rlZproc_io_countersrrrrrrrf)rrrrr)r)r*io_countersszProcess.io_counterscCs*tj|j}|rtjStjSdS)N)rlZproc_is_suspendedrrZSTATUS_STOPPEDZSTATUS_RUNNING)rZ	suspendedr)r)r*rszProcess.statuscCs(dd}tj|j}||S)NcsfddtdDS)Ncs$g|]}d|>@r|qS)rr))ri)rr)r*rs	zBProcess.cpu_affinity_get.<locals>.from_bitmask.<locals>.<listcomp>@)r)rr))rr*from_bitmasksz.Process.cpu_affinity_get.<locals>.from_bitmask)rlZproc_cpu_affinity_getr)rrbitmaskr)r)r*cpu_affinity_getszProcess.cpu_affinity_getcCsdd}tttt}xR|D]J}||kr.t|ttfshtd|q.td|q.W||}t	j
|j|dS)NcSs?|std|d}x|D]}|d|O}q#W|S)Nzinvalid argument %rrr.)r)loutbr)r)r*
to_bitmasks
z,Process.cpu_affinity_set.<locals>.to_bitmaskz&invalid CPU %r; an integer is requiredzinvalid CPU %r)rrangernrrqrrrrrlZproc_cpu_affinity_setr)rrr$ZallcpusZcpurr)r)r*cpu_affinity_sets
zProcess.cpu_affinity_setcCsdytj|jSWnItk
r_}z)|jtkrJ|jtdSWYdd}~XnXdS)Nr+)rlZproc_num_handlesrrrrrr)rrr)r)r*r+szProcess.num_handlescCs$|jtd}tj|dS)Nr,r)rrrZpctxsw)rr,r)r)r*num_ctx_switchesszProcess.num_ctx_switches)-r&r'r(r	__slots__rrrrrrrrrrrrrrrrrrrr0r1r
rrrrrrrrrrlrrrrr r&r+r'r)r)r)r*rsR	
*		
	r)rrrr)rar)rrrrrmsysrcollectionsrrrrlImportErrorrrrlower
startswithZgetwindowsversionrRuntimeErrorrrr	r
rrr
rrZ_compatrrrrr_exceptionsrrrrrrrrrversion_inforZ__extra__all__r"	frozensetEPERMZEACCESZERROR_ACCESS_DENIEDrZERROR_INVALID_NAMEZERROR_SERVICE_DOES_NOT_EXISTrr#IntEnumr$ZMIB_TCP_STATE_ESTABZCONN_ESTABLISHEDZMIB_TCP_STATE_SYN_SENTZ
CONN_SYN_SENTZMIB_TCP_STATE_SYN_RCVDZ
CONN_SYN_RECVZMIB_TCP_STATE_FIN_WAIT1ZCONN_FIN_WAIT1ZMIB_TCP_STATE_FIN_WAIT2ZCONN_FIN_WAIT2ZMIB_TCP_STATE_TIME_WAITZCONN_TIME_WAITZMIB_TCP_STATE_CLOSEDZ
CONN_CLOSEZMIB_TCP_STATE_CLOSE_WAITZCONN_CLOSE_WAITZMIB_TCP_STATE_LAST_ACKZ
CONN_LAST_ACKZMIB_TCP_STATE_LISTENZCONN_LISTENZMIB_TCP_STATE_CLOSINGZCONN_CLOSINGZMIB_TCP_STATE_DELETE_TCBZPSUTIL_CONN_NONEZ	CONN_NONErr%globalsr__members__rrrRrXr]_fieldsr`rbrjrdrfrprtrxryZdisk_io_countersr~rrrrrrrrrrrrrrrr r!objectrZpidsrrrrr)r)r)r*<module>s


						
		
					
Back to Directory File Manager