Your IP : 18.117.225.254


Current Path : /opt/alt/python37/lib64/python3.7/site-packages/psutil/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/site-packages/psutil/__pycache__/_pswindows.cpython-37.pyc

B

xe�_��@s(dZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlmZddlm
Z
ddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddlm$Z$ddlm%Z%yddl
mZ&Wnje'k
�r�Z(zJe)e(��*��+d��r�e�,�dd k�r�d!Z-e-d"7Z-e-d#7Z-e.e-��n�WddZ([(XYnXej/d$k�rddl0Z0ndZ0d%d&d'd(d)d*d+d,d-d.d/d0d1d2gZ1d3Z2d4Z3d5ej4kZ5e0dk�rLd6Z6ne0�7d7d2d6i�Z8e8j6Z6e&j9ej:e&j;ej<e&j=ej>e&j?ej@e&jAejBe&jCejDe&jEejFe&jGejHe&jIejJe&jKejLe&jMejNe&jOe2e&jPejQi
ZRe0dk	�r�Gd8d9�d9e0j7�ZSeT��UeSjV�e0dk�rdZWdZXd:ZYd;ZZn Gd<d=�d=e0j7�Z[eT��Ue[jV�e\ddd:d;d>d?d d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdO�Z]e	dPdQdRdSdTdUg�Z^e	dVdWdXdYdZd[g�Z_e	d\d]d^d_d`dadbdcdddedfdgdhg�Z`e	die`jadj�Zbe	dkdld]g�Zce	dmdndo�decja��Zee	dpdqdrdsdtdudvg�Zfedwdx�dydz��Zgd{d|�Zhed}d~��Zidd��Zjd�d��Zke&jlZld�d��Zmd�d��Znd�d��Zod�d��Zpd�d��Zqd�d��Zrd�d��Zsd�d��Ztd�aud�d��Zvd�d�d��Zwd�d��Zxd�d��Zyd�d��Zzd�d��Z{da|d�d��Z}d�d��Z~d�d%�Zd�d&�Z�Gd�d��d�e��Z�e&j�Z�e&j�Z�e&j�Z�d�d��Z�d�d�d��Z�d�d��Z�d�d��Z�Gd�d��d�e��Z�dS)�z Windows platform implementation.�N)�
namedtuple�)�_common)�AccessDenied)�	conn_tmap)�conn_to_ntuple)�debug)�ENCODING)�
ENCODING_ERRS)�
isfile_strict)�memoize)�memoize_when_activated)�
NoSuchProcess)�parse_environ_block)�TimeoutExpired)�
usage_percent)�long)�	lru_cache)�PY3)�range)�unicode)�ABOVE_NORMAL_PRIORITY_CLASS)�BELOW_NORMAL_PRIORITY_CLASS)�HIGH_PRIORITY_CLASS)�IDLE_PRIORITY_CLASS)�NORMAL_PRIORITY_CLASS)�REALTIME_PRIORITY_CLASS)�_psutil_windowszdll load failed�z3this Windows version is too old (< Windows Vista); z:psutil 3.4.2 is the latest version which supports Windows z2000, XP and 2003 server)���win_service_iter�win_service_getrrrrrr�IOPRIO_VERYLOW�
IOPRIO_LOW�
IOPRIO_NORMAL�IOPRIO_HIGH�CONN_DELETE_TCB�AF_LINKZ
DELETE_TCBi+�__pypy__����
AddressFamilyc@s$eZdZeZeZeZeZeZeZdS)�PriorityN)	�__name__�
__module__�__qualname__rrrrrr�r0r0�D/opt/alt/python37/lib64/python3.7/site-packages/psutil/_pswindows.pyr,msr,�rc@seZdZdZdZdZdZdS)�
IOPriorityrrr2rN)r-r.r/r#r$r%r&r0r0r0r1r3}sr3r ����	�
���
��������)�num_handles�ctx_switches�	user_time�kernel_time�create_time�num_threads�	io_rcount�	io_wcount�	io_rbytes�	io_wbytes�io_count_others�io_bytes_others�num_page_faults�	peak_wset�wset�peak_paged_pool�
paged_pool�peak_non_paged_pool�non_paged_pool�pagefile�
peak_pagefile�mem_private�	scputimes�user�system�idle�	interrupt�dpc�svmem�totalZ	available�percent�used�free�pmem�rss�vmsrPrQrRrSrTZpeak_nonpaged_poolZ
nonpaged_poolrWrXZprivate�pfullmem)�uss�
pmmap_grouped�path�	pmmap_extzaddr perms � �pio�
read_count�write_count�
read_bytes�write_bytes�other_countZother_bytesi)�maxsizecCs@d�|�d�dd��}t�|�}|t|�d�}tj�||�S)z�Convert paths using native DOS format like:
        "\Device\HarddiskVolume1\Windows\systemew\file.txt"
    into:
        "C:\Windows\systemew\file.txt"
    �\Nr)�join�split�cextZwin32_QueryDosDevice�len�osrk)�sZrawdriveZdriveletter�	remainderr0r0r1�convert_dos_path�s
r}cCs&tr|St|t�r|S|�tt�SdS)zmEncode a unicode string to a byte string by using the default fs
    encoding + "replace" error handler.
    N)r�
isinstance�str�encoder	r
)r{r0r0r1�
py2_strencode�s

r�cCst��S)N)rx�getpagesizer0r0r0r1r��sr�cCsNt��}|\}}}}}}|}|}|}	||}
t|||dd�}t||||
|	�S)z&System virtual memory as a namedtuple.r)�round_)rx�virtual_memrr`)�memZtotphysZ	availphysZtotpagefZ
availpagefZtotvirtZfreevirtraZavailrdrcrbr0r0r1�virtual_memory�sr�cCsBt��}|d}|d}||}t||dd�}t�||||dd�S)z=Swap system memory as a (total, used, free, sin, sout) tuple.r2rr)r�r)rxr�rr�sswap)r�rardrcrbr0r0r1�swap_memory�sr�cCsPtrt|t�r|jtdd�}t�|�\}}||}t||dd�}t�	||||�S)z'Return disk usage associated with path.�strict)�errorsr)r�)
rr~�bytes�decoder	rx�
disk_usagerr�
sdiskusage)rkrardrcrbr0r0r1r�sr�cCst�|�}dd�|D�S)zReturn disk partitions.cSsg|]}tj|��qSr0)r�	sdiskpart)�.0�xr0r0r1�
<listcomp>sz#disk_partitions.<locals>.<listcomp>)rx�disk_partitions)�all�rawlistr0r0r1r�s
r�cCs<t��\}}}tdd�tt���D��}t||||j|j�S)z)Return system CPU times as a named tuple.cSsg|]}t|��qSr0)�sum)r��nr0r0r1r� szcpu_times.<locals>.<listcomp>)rx�	cpu_timesrZ�zip�
per_cpu_timesr^r_)r[r\r]Z
percpu_summedr0r0r1r�sr�cCs>g}x4t��D](\}}}}}t|||||�}|�|�qW|S)z6Return system per-CPU times as a list of named tuples.)rxr�rZ�append)�retr[r\r]r^r_�itemr0r0r1r�%s
r�cCst��S)z0Return the number of logical CPUs in the system.)rx�cpu_count_logicalr0r0r0r1r�.sr�cCst��S)z6Return the number of physical CPU cores in the system.)rxZcpu_count_physr0r0r0r1�cpu_count_physical3sr�cCs$t��\}}}}d}t�||||�S)zReturn CPU statistics.r)rx�	cpu_statsr�	scpustats)rE�
interruptsZdpcs�syscalls�soft_interruptsr0r0r1r�8s
r�cCs(t��\}}d}t�t|�|t|��gS)zMReturn CPU frequency.
    On Windows per-cpu frequency is not supported.
    g)rx�cpu_freqr�scpufreq�float)�currZmax_Zmin_r0r0r1r�@sr�FcCs*tst��dat��}tdd�|D��S)z~Return the number of processes in the system run queue averaged
    over the last 1, 5, and 15 minutes respectively as a tupleTcSsg|]}t|d��qS)r2)�round)r��loadr0r0r1r�Wszgetloadavg.<locals>.<listcomp>)�_loadavg_inititializedrxZinit_loadavg_counter�
getloadavg�tuple)Z	raw_loadsr0r0r1r�Ls
r�cCs�|tkr(td|d�dd�tD��f��t|\}}t�|||�}t�}xL|D]D}|\}}}	}
}}}
t|||	|
||t|dkr�|
ndd�}|�|�qNWt	|�S)z�Return 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|��qSr0)�repr)r�r�r0r0r1r�esz#net_connections.<locals>.<listcomp>r*N)�pid)
r�
ValueErrorrvrx�net_connections�setr�TCP_STATUSES�add�list)�kind�_pidZfamilies�typesr�r�r��fd�fam�type�laddr�raddr�statusr��ntr0r0r1r�_s
r�cCs|i}t��}xj|��D]^\}}ts@t|t�s8tt|���t|�}|\}}}}t	t
d�r`t
�|�}t
�||||�||<qW|S)z)Get NIC stats (isup, duplex, speed, mtu).�	NicDuplex)
rx�net_if_stats�itemsrr~r�AssertionErrorr�r��hasattrrr��	snicstats)r�Zrawdict�namer��isup�duplex�speed�mtur0r0r1r�qs

r�cCst��}tdd�|��D��S)zsReturn network I/O statistics for every network interface
    installed on the system as a dict of raw tuples.
    cSsg|]\}}t|�|f�qSr0)r�)r��k�vr0r0r1r��sz#net_io_counters.<locals>.<listcomp>)rx�net_io_counters�dictr�)r�r0r0r1r��sr�cCs<g}x2t��D]&}t|�}t|d�|d<|�|�qW|S)z,Return the addresses associated to each NIC.r)rx�net_if_addrsr�r�r�)r�r�r0r0r1r��sr�cCsdt��\}}}}|dk}t|d@�}t|d@�}|r8dS|s@|rHtj}n|dkrVtj}t�|||�S)zReturn battery information.r�r6Nr*)rx�sensors_battery�boolr�POWER_TIME_UNLIMITED�POWER_TIME_UNKNOWN�sbattery)Z
acline_status�flagsrb�secsleft�
power_pluggedZ
no_batteryZchargingr0r0r1r��sr�cCs,tt���}t|t�dkr tS|a|SdS)z:The system boot time expressed in seconds since the epoch.rN)r�rx�	boot_time�abs�_last_btime)r�r0r0r1r��s
r�cCsLg}t��}x:|D]2}|\}}}t|�}t�|d||d�}|�|�qW|S)z:Return currently connected users as a list of namedtuples.N)rx�usersr�r�suserr�)�retlistr�r�r[�hostnameZtstampr�r0r0r1r��s

r�ccs.x(t��D]\}}tt|�t|��Vq
WdS)z*Yields a list of WindowsService instances.N)rxZwinservice_enumerate�WindowsServicer�)r��display_namer0r0r1r!�scCst|d�}|��d|_|S)zBOpen a Windows service and return it as a WindowsService instance.Nr�)r��
_query_config�
_display_name)r�Zservicer0r0r1r"�s
c@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
ejdd��Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$S)%r�z(Represents an installed Windows service.cCs||_||_dS)N)�_namer�)�selfr�r�r0r0r1�__init__�szWindowsService.__init__cCs d|j|jf}d|jj|fS)Nz(name=%r, display_name=%r)z%s%s)r�r��	__class__r-)r��detailsr0r0r1�__str__�szWindowsService.__str__cCsd|��t|�fS)Nz
<%s at %s>)r��id)r�r0r0r1�__repr__�szWindowsService.__repr__cCst|t�stS|j|jkS)N)r~r��NotImplementedr�)r��otherr0r0r1�__eq__�s
zWindowsService.__eq__cCs
||kS)Nr0)r�r�r0r0r1�__ne__�szWindowsService.__ne__c	CsH|���t�|j�\}}}}WdQRXtt|�t|�t|�t|�d�S)N)r��binpath�username�
start_type)�_wrap_exceptionsrxZwinservice_query_configr�r�r�)r�r�r�r�r�r0r0r1r��s
zWindowsService._query_configc	Cs<|���t�|j�\}}WdQRX|dkr0d}t||d�S)Nr)r�r�)r�rxZwinservice_query_statusr�r�)r�r�r�r0r0r1�
_query_statuss

zWindowsService._query_statusc
cs~y
dVWnntk
rx}zPt|�r<td|jd|jd��n,|jtjtjfkrftd|jd|jd��n�Wdd}~XYnXdS)z{Ctx manager which translates bare OSError and WindowsError
        exceptions into NoSuchProcess and AccessDenied.
        Nz2service %r is not querable (not enough privileges))r�r��msgzservice %r does not exist))	�OSError�is_permission_errrr��winerrorrxZERROR_INVALID_NAMEZERROR_SERVICE_DOES_NOT_EXISTr)r��errr0r0r1r�
s

zWindowsService._wrap_exceptionscCs|jS)z�The 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�)r�r0r0r1r�!szWindowsService.namecCs|jS)z_The service display name. The value is cached when this class
        is instantiated.
        )r�)r�r0r0r1r�(szWindowsService.display_namecCs|��dS)zwThe fully qualified path to the service binary/exe file as
        a string, including command line arguments.
        r�)r�)r�r0r0r1r�.szWindowsService.binpathcCs|��dS)z,The name of the user that owns this service.r�)r�)r�r0r0r1r�4szWindowsService.usernamecCs|��dS)zRA string which can either be "automatic", "manual" or
        "disabled".
        r�)r�)r�r0r0r1r�8szWindowsService.start_typecCs|��dS)zzThe process PID, if any, else None. This can be passed
        to Process class to control the service's process.
        r�)r�)r�r0r0r1r�@szWindowsService.pidcCs|��dS)zService status as a string.r�)r�)r�r0r0r1r�FszWindowsService.statuscCstt�|����S)zService long description.)r�rxZwinservice_query_descrr�)r�r0r0r1�descriptionJszWindowsService.descriptioncCs>|��}|�|���|��|d<|��|d<|��|d<|S)zUUtility method retrieving all the information above as a
        dictionary.
        r�r�r�)r��updater�r�r�r�)r��dr0r0r1�as_dictPszWindowsService.as_dictN)r-r.r/�__doc__r�r�r�r�r�r�r��
contextlib�contextmanagerr�r�r�r�r�r�r�r�r�r�r0r0r0r1r��s$r�cCs<t|t�st|��|jtjtjfkp:t|dd�tjtj	fkS)z*Return True if this is a permission error.r�r*)
r~r�r��errno�EPERM�EACCES�getattrrxZERROR_ACCESS_DENIEDZERROR_PRIVILEGE_NOT_HELD)�excr0r0r1r��sr�cCsFt|t�st|��t|�r&t||d�S|jtjkr>t||d�S|�dS)z3Convert OSError into NoSuchProcess or AccessDenied.)r�r�N)r~r�r�r�rrZESRCHr)rr�r�r0r0r1�convert_oserror�srcst����fdd��}|S)zDDecorator which converts OSError into NoSuchProcess or AccessDenied.c
sJy�|f|�|�Stk
rD}zt||j|jd��Wdd}~XYnXdS)N)r�r�)r�rr�r�)r��args�kwargsr�)�funr0r1�wrapper�sz wrap_exceptions.<locals>.wrapper)�	functools�wraps)r	r
r0)r	r1�wrap_exceptions�sr
cst����fdd��}|S)z�Workaround for https://github.com/giampaolo/psutil/issues/875.
    See: https://stackoverflow.com/questions/4457745#4457745
    c	s�d}d}x�t|�D]d}y�|f|�|�Stk
rt}z0|}|jtkrbt�|�t|dd�}wn�Wdd}~XYqXqWd�||f}t|j|j	|d��dS)Ng-C��6?�!r2g{�G�z�?zI%s retried %s times, converted to AccessDenied as it's still returning %r)r�r�r�)
r�WindowsErrorr��ERROR_PARTIAL_COPY�time�sleep�minrr�r�)	r�rr�delay�timesr��_r�r�)r	r0r1r
�s

z)retry_error_partial_copy.<locals>.wrapper)rr)r	r
r0)r	r1�retry_error_partial_copy�src@s�eZdZdZddddgZdd�Zdd	�Zd
d�Zedd
��Z	dd�Z
eedd���Zee
dd���Zee
dd���Zdd�Zdd�Zedd��Zedd��Zdd�Zed d!��Zed"d#��ZedPd%d&��Zed'd(��Zed)d*��Zed+d,��Zed-d.��Zed/d0��Zed1d2��Zed3d4��Zee
d5d6���Zed7d8��Z edQd:d;��Z!ed<d=��Z"ed>d?��Z#ed@dA��Z$edBdC��Z%edDdE��Z&edFdG��Z'edHdI��Z(edJdK��Z)edLdM��Z*edNdO��Z+d$S)R�Processz1Wrapper class around underlying C implementation.r�r��_ppid�_cachecCs||_d|_d|_dS)N)r�r�r)r�r�r0r0r1r��szProcess.__init__cCs|j�|�|j�|�dS)N)�
_proc_info�cache_activate�exe)r�r0r0r1�
oneshot_enter�szProcess.oneshot_entercCs|j�|�|j�|�dS)N)r�cache_deactivater)r�r0r0r1�oneshot_exit�szProcess.oneshot_exitcCs$t�|j�}t|�tt�ks t�|S)zOReturn multiple information about this process as a
        raw tuple.
        )rxZ	proc_infor�ry�	pinfo_mapr�)r�r�r0r0r1r�szProcess._proc_infocCs,|jdkrdS|jdkrdStj�|���S)zbReturn process name, which on Windows is always the final
        part of the executable.
        rzSystem Idle Processr �System)r�rzrk�basenamer)r�r0r0r1r��s


zProcess.namec
Cs�tr`yt�|j�}Wqltk
r\}z*|jdkrJtd|�t|j|j���Wdd}~XYqlXnt�|j�}t	sxt
|�}|�d�r�t|�S|S)N�z%r forced into AccessDeniedru)
�PYPYrxZproc_exer�rrrrr�rr��
startswithr})r�rr�r0r0r1r�s

zProcess.exec
Cs�tjtjkrbytj|jdd�}Wqrtk
r^}z t|�rLtj|jdd�}n�Wdd}~XYqrXntj|jdd�}trz|Sdd�|D�SdS)NT)Zuse_pebFcSsg|]}t|��qSr0)r�)r�r{r0r0r1r�sz#Process.cmdline.<locals>.<listcomp>)rxZWINVERZWINDOWS_8_1Zproc_cmdliner�r�r�r)r�r�r�r0r0r1�cmdlineszProcess.cmdlinecCs6t�|j�}|r*ts*t|t�s*tt|���tt	|��S)N)
rxZproc_environr�rr~rr�r�rr�)r�Zustrr0r0r1�environszProcess.environcCs4yt�|jStk
r.t|j|j��YnXdS)N)�ppid_mapr��KeyErrorrr�)r�r0r0r1�ppid!szProcess.ppidcCs�yt�|j�Stk
r�}z~t|�r�|��}|td|td|td|td|td|td|td|td|td	|td
f
S�Wdd}~XYnXdS)NrPrQrRrSrTrUrVrWrXrY)rxZproc_memory_infor�r�r�rr!)r�r��infor0r0r1�_get_raw_meminfo's 








zProcess._get_raw_meminfocCs(|��}|d}|d}t||f|�S)Nr2r5)r-re)r��trfrgr0r0r1�memory_info=szProcess.memory_infocCs,|��}t�|j�}|t�9}t||f�S)N)r/rxZproc_memory_ussr�r�rh)r�Z	basic_memrir0r0r1�memory_full_infoGs
zProcess.memory_full_infoc
cs�yt�|j�}Wn2tk
rB}zt||j|j��Wdd}~XYnBXx>|D]6\}}}}t|�}tsjt|�}t	|�}||||fVqJWdS)N)
rxZproc_memory_mapsr�r�rr�r}rr��hex)r��rawr��addrZpermrkrfr0r0r1�memory_mapsNs"zProcess.memory_mapscCst�|j�S)N)rx�	proc_killr�)r�r0r0r1�kill]szProcess.killcCsT|tjkrt�|j�n8|ttdt��ttdt��fkrHt�|j|�nt	d��dS)NZCTRL_C_EVENTZCTRL_BREAK_EVENTzPonly SIGTERM, CTRL_C_EVENT and CTRL_BREAK_EVENT signals are supported on Windows)
�signal�SIGTERMrxr5r�r�objectrzr6r�)r��sigr0r0r1�send_signalas
zProcess.send_signalNcCs�|dkrtj}nt|d�}ttdtj�}|dk	r<|�|nd}yt�|j|�}Wn>tjk
rxt||j|j��Yntj	k
r�d}YnXd}xJt
|j�s�|S|r�|�|kr�t||j|jd��t�|�t|dd�}q�WdS)Ni��	monotonicg-C��6?)r�r�r2g{�G�z�?)
rxZINFINITE�intrrZ	proc_waitr�rr�ZTimeoutAbandoned�
pid_existsrr)r��timeoutZcext_timeoutZtimerZstop_atZ	exit_coderr0r0r1�waitns&	


zProcess.waitcCs2|jdkrdSt�|j�\}}t|�dt|�S)N)rr zNT AUTHORITY\SYSTEMru)r�rxZ
proc_usernamer�)r��domainr[r0r0r1r��s
zProcess.usernamec
CsXyt�|j�\}}}|Stk
rR}zt|�r@|��tdS�Wdd}~XYnXdS)NrH)rx�
proc_timesr�r�r�rr!)r�r[r\�createdr�r0r0r1rH�szProcess.create_timecCs|��tdS)NrI)rr!)r�r0r0r1rI�szProcess.num_threadscCs@t�|j�}g}x*|D]"\}}}t�|||�}|�|�qW|S)N)rxZproc_threadsr�r�pthreadr�)r�r�r�Z	thread_id�utimeZstime�ntupler0r0r1�threads�szProcess.threadsc
Cstyt�|j�\}}}WnLtk
rb}z.t|�s2�|��}|td}|td}Wdd}~XYnXt�||dd�S)NrFrGg)	rxrBr�r�r�rr!r�	pcputimes)r�r[r\rCr�r,r0r0r1r��szProcess.cpu_timescCst�|jd�dS)NT)rx�proc_suspend_or_resumer�)r�r0r0r1�suspend�szProcess.suspendcCst�|jd�dS)NF)rxrIr�)r�r0r0r1�resume�szProcess.resumecCs4|jdkrt|j|j��t�|j�}ttj�|��S)N)rr )	r�rr�rxZproc_cwdr�rzrk�normpath)r�rkr0r0r1�cwd�s
zProcess.cwdcCsh|jdkrgSt�}t�|j�}x>|D]6}t|�}t|�r&tsFt|�}t�	|d�}|�
|�q&Wt|�S)N)rr r*)r�r�rxZproc_open_filesr}rrr�r�	popenfiler�r�)r�r�Zraw_file_names�_filerFr0r0r1�
open_files�s

zProcess.open_files�inetcCst||jd�S)N)r�)r�r�)r�r�r0r0r1�connections�szProcess.connectionscCs t�|j�}tdk	rt|�}|S)N)rxZproc_priority_getr��enumr,)r��valuer0r0r1�nice_get�szProcess.nice_getcCst�|j|�S)N)rxZproc_priority_setr�)r�rTr0r0r1�nice_set�szProcess.nice_setcCs t�|j�}tdk	rt|�}|S)N)rxZproc_io_priority_getr�rSr3)r�r�r0r0r1�
ionice_get�szProcess.ionice_getcCs:|rtd��|ttttfkr(td|��t�|j|�dS)Nz&value argument not accepted on Windowsz%s is not a valid priority)	�	TypeErrorr#r$r%r&r�rxZproc_io_priority_setr�)r��ioclassrTr0r0r1�
ionice_setszProcess.ionice_setcCs�yt�|j�}Wnttk
r�}zVt|�s,�|��}|td|td|td|td|td|tdf}Wdd}~XYnXt|�S)NrJrKrLrMrNrO)rxZproc_io_countersr�r�r�rr!rn)r�r�r�r,r0r0r1�io_counters
s




 zProcess.io_counterscCs t�|j�}|rtjStjSdS)N)rxZproc_is_suspendedr�r�STATUS_STOPPED�STATUS_RUNNING)r��	suspendedr0r0r1r�szProcess.statuscCsdd�}t�|j�}||�S)Ncs�fdd�td�D�S)Ncsg|]}d|>�@r|�qS)rr0)r��i)r�r0r1r�'szBProcess.cpu_affinity_get.<locals>.from_bitmask.<locals>.<listcomp>�@)r)r�r0)r�r1�from_bitmask&sz.Process.cpu_affinity_get.<locals>.from_bitmask)rxZproc_cpu_affinity_getr�)r�ra�bitmaskr0r0r1�cpu_affinity_get$szProcess.cpu_affinity_getcCsrdd�}tttt����}x<|D]4}||kr t|ttf�sHtd|��q td|��q W||�}t	�
|j|�dS)NcSs2|std|��d}x|D]}|d|O}qW|S)Nzinvalid argument %rrr2)r�)Zls�out�br0r0r1�
to_bitmask-s
z,Process.cpu_affinity_set.<locals>.to_bitmaskz&invalid CPU %r; an integer is requiredzinvalid CPU %r)r�rryr�r~r=rrXr�rxZproc_cpu_affinity_setr�)r�rTrfZallcpusZcpurbr0r0r1�cpu_affinity_set+s
zProcess.cpu_affinity_setc
CsNyt�|j�Stk
rH}zt|�r6|��tdS�Wdd}~XYnXdS)NrD)rxZproc_num_handlesr�r�r�rr!)r�r�r0r0r1rDDszProcess.num_handlescCs|��td}t�|d�S)NrEr)rr!r�pctxsw)r�rEr0r0r1�num_ctx_switchesMszProcess.num_ctx_switches)N)rQ),r-r.r/r��	__slots__r�rr r
rr�r
rrr'r(r+r-r/r0r4r6r;r@r�rHrIrGr�rJrKrMrPrRrUrVrWrZr[r�rcrgrDrir0r0r0r1r�sX	

*	
			r)r*)NN)�r�r�rrrzr7�sysr�collectionsr�rrrrrr	r
rrr
rrrr�_compatrrrrrrrrrrrrrx�ImportErrorr�r�lowerr&�getwindowsversionr��RuntimeError�version_inforSZ__extra__all__r'r�builtin_module_namesr%r(�IntEnumr+ZMIB_TCP_STATE_ESTAB�CONN_ESTABLISHEDZMIB_TCP_STATE_SYN_SENT�
CONN_SYN_SENTZMIB_TCP_STATE_SYN_RCVD�
CONN_SYN_RECVZMIB_TCP_STATE_FIN_WAIT1�CONN_FIN_WAIT1ZMIB_TCP_STATE_FIN_WAIT2�CONN_FIN_WAIT2ZMIB_TCP_STATE_TIME_WAIT�CONN_TIME_WAITZMIB_TCP_STATE_CLOSED�
CONN_CLOSEZMIB_TCP_STATE_CLOSE_WAIT�CONN_CLOSE_WAITZMIB_TCP_STATE_LAST_ACK�
CONN_LAST_ACKZMIB_TCP_STATE_LISTEN�CONN_LISTENZMIB_TCP_STATE_CLOSING�CONN_CLOSINGZMIB_TCP_STATE_DELETE_TCBZPSUTIL_CONN_NONE�	CONN_NONEr�r,�globalsr��__members__r#r$r%r&r3r�r!rZr`re�_fieldsrhrjrvrlrnr}r�r�r�r�Zdisk_io_countersr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r!r"r9r�Zpidsr>r)r�rr
rrr0r0r0r1�<module>s8











		
*



?>