HEX
Server: LiteSpeed
System: Linux standart9.isimtescil.net 3.10.0-962.3.2.lve1.5.26.7.el7.x86_64 #1 SMP Wed Oct 2 07:53:12 EDT 2019 x86_64
User: karalev (5310)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //opt/alt/python37/lib64/python3.7/site-packages/psutil/__pycache__/_pswindows.cpython-37.opt-1.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+Z__pypy__����
AddressFamilyc@s$eZdZeZeZeZeZeZeZdS)�PriorityN)	�__name__�
__module__�__qualname__rrrrrr�r/r/�D/opt/alt/python37/lib64/python3.7/site-packages/psutil/_pswindows.pyr+msr+�rc@seZdZdZdZdZdZdS)�
IOPriorityrrr1rN)r,r-r.r#r$r%r&r/r/r/r0r2}sr2r ����	�
���
��������)�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�vmsrOrPrQrRrSZpeak_nonpaged_poolZ
nonpaged_poolrVrWZprivate�pfullmem)�uss�
pmmap_grouped�path�	pmmap_extzaddr perms � �pioZ
read_countZwrite_countZ
read_bytesZwrite_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�osrj)�sZrawdriveZdriveletterZ	remainderr/r/r0�convert_dos_path�s
rwcCs&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
)rvr/r/r0�
py2_strencode�s

r{cCst��S)N)rs�getpagesizer/r/r/r0r|�sr|cCsNt��}|\}}}}}}|}|}|}	||}
t|||dd�}t||||
|	�S)z&System virtual memory as a namedtuple.r)�round_)rs�virtual_memrr_)�memZtotphysZ	availphysZtotpagefZ
availpagefZtotvirtZfreevirtr`Zavailrcrbrar/r/r0�virtual_memory�sr�cCsBt��}|d}|d}||}t||dd�}t�||||dd�S)z=Swap system memory as a (total, used, free, sin, sout) tuple.r1rr)r}r)rsr~rrZsswap)rr`rcrbrar/r/r0�swap_memory�sr�cCsPtrt|t�r|jtdd�}t�|�\}}||}t||dd�}t�	||||�S)z'Return disk usage associated with path.�strict)�errorsr)r})
rrx�bytes�decoder	rs�
disk_usagerrZ
sdiskusage)rjr`rcrbrar/r/r0r�sr�cCst�|�}dd�|D�S)zReturn disk partitions.cSsg|]}tj|��qSr/)rZ	sdiskpart)�.0�xr/r/r0�
<listcomp>sz#disk_partitions.<locals>.<listcomp>)rs�disk_partitions)�all�rawlistr/r/r0r�s
r�cCs<t��\}}}tdd�tt���D��}t||||j|j�S)z)Return system CPU times as a named tuple.cSsg|]}t|��qSr/)�sum)r��nr/r/r0r� szcpu_times.<locals>.<listcomp>)rs�	cpu_timesrY�zip�
per_cpu_timesr]r^)rZr[r\Z
percpu_summedr/r/r0r�sr�cCs>g}x4t��D](\}}}}}t|||||�}|�|�qW|S)z6Return system per-CPU times as a list of named tuples.)rsr�rY�append)�retrZr[r\r]r^�itemr/r/r0r�%s
r�cCst��S)z0Return the number of logical CPUs in the system.)rs�cpu_count_logicalr/r/r/r0r�.sr�cCst��S)z6Return the number of physical CPU cores in the system.)rsZcpu_count_physr/r/r/r0�cpu_count_physical3sr�cCs$t��\}}}}d}t�||||�S)zReturn CPU statistics.r)rs�	cpu_statsrZ	scpustats)rDZ
interruptsZdpcsZsyscallsZsoft_interruptsr/r/r0r�8s
r�cCs(t��\}}d}t�t|�|t|��gS)zMReturn CPU frequency.
    On Windows per-cpu frequency is not supported.
    g)rs�cpu_freqrZscpufreq�float)ZcurrZmax_Zmin_r/r/r0r�@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)r1)�round)r��loadr/r/r0r�Wszgetloadavg.<locals>.<listcomp>)�_loadavg_inititializedrsZinit_loadavg_counter�
getloadavg�tuple)Z	raw_loadsr/r/r0r�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|��qSr/)�repr)r�r�r/r/r0r�esz#net_connections.<locals>.<listcomp>r)N)�pid)
r�
ValueErrorrqrs�net_connections�setr�TCP_STATUSES�add�list)�kind�_pidZfamilies�typesr�r�r��fdZfam�typeZladdrZraddr�statusr��ntr/r/r0r�_s
r�cCsfi}t��}xT|��D]H\}}ts*t|�}|\}}}}ttd�rJt�|�}t�||||�||<qW|S)z)Get NIC stats (isup, duplex, speed, mtu).�	NicDuplex)	rs�net_if_stats�itemsrr{�hasattrrr�Z	snicstats)r�Zrawdict�namer�ZisupZduplexZspeedZmtur/r/r0r�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�qSr/)r{)r��k�vr/r/r0r��sz#net_io_counters.<locals>.<listcomp>)rs�net_io_counters�dictr�)r�r/r/r0r��sr�cCs<g}x2t��D]&}t|�}t|d�|d<|�|�qW|S)z,Return the addresses associated to each NIC.r)rs�net_if_addrsr�r{r�)r�r�r/r/r0r��sr�cCsdt��\}}}}|dk}t|d@�}t|d@�}|r8dS|s@|rHtj}n|dkrVtj}t�|||�S)zReturn battery information.r�r5Nr))rs�sensors_battery�boolrZPOWER_TIME_UNLIMITEDZPOWER_TIME_UNKNOWNZsbattery)Z
acline_status�flagsraZsecsleftZ
power_pluggedZ
no_batteryZchargingr/r/r0r��sr�cCs,tt���}t|t�dkr tS|a|SdS)z:The system boot time expressed in seconds since the epoch.rN)r�rs�	boot_time�abs�_last_btime)r�r/r/r0r��s
r�cCsLg}t��}x:|D]2}|\}}}t|�}t�|d||d�}|�|�qW|S)z:Return currently connected users as a list of namedtuples.N)rs�usersr{rZsuserr�)�retlistr�r�rZZhostnameZtstampr�r/r/r0r��s

r�ccs.x(t��D]\}}tt|�t|��Vq
WdS)z*Yields a list of WindowsService instances.N)rsZwinservice_enumerate�WindowsServicer{)r��display_namer/r/r0r!�scCst|d�}|��d|_|S)zBOpen a Windows service and return it as a WindowsService instance.Nr�)r��
_query_config�
_display_name)r�Zservicer/r/r0r"�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�r/r/r0�__init__�szWindowsService.__init__cCs d|j|jf}d|jj|fS)Nz(name=%r, display_name=%r)z%s%s)r�r��	__class__r,)r�Zdetailsr/r/r0�__str__�szWindowsService.__str__cCsd|��t|�fS)Nz
<%s at %s>)r��id)r�r/r/r0�__repr__�szWindowsService.__repr__cCst|t�stS|j|jkS)N)rxr��NotImplementedr�)r��otherr/r/r0�__eq__�s
zWindowsService.__eq__cCs
||kS)Nr/)r�r�r/r/r0�__ne__�szWindowsService.__ne__c	CsH|���t�|j�\}}}}WdQRXtt|�t|�t|�t|�d�S)N)r��binpath�username�
start_type)�_wrap_exceptionsrsZwinservice_query_configr�r�r{)r�r�r�r�r�r/r/r0r��s
zWindowsService._query_configc	Cs<|���t�|j�\}}WdQRX|dkr0d}t||d�S)Nr)r�r�)r�rsZwinservice_query_statusr�r�)r�r�r�r/r/r0�
_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��winerrorrsZERROR_INVALID_NAMEZERROR_SERVICE_DOES_NOT_EXISTr)r��errr/r/r0r�
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�r/r/r0r�!szWindowsService.namecCs|jS)z_The service display name. The value is cached when this class
        is instantiated.
        )r�)r�r/r/r0r�(szWindowsService.display_namecCs|��dS)zwThe fully qualified path to the service binary/exe file as
        a string, including command line arguments.
        r�)r�)r�r/r/r0r�.szWindowsService.binpathcCs|��dS)z,The name of the user that owns this service.r�)r�)r�r/r/r0r�4szWindowsService.usernamecCs|��dS)zRA string which can either be "automatic", "manual" or
        "disabled".
        r�)r�)r�r/r/r0r�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�r/r/r0r�@szWindowsService.pidcCs|��dS)zService status as a string.r�)r�)r�r/r/r0r�FszWindowsService.statuscCstt�|����S)zService long description.)r{rsZwinservice_query_descrr�)r�r/r/r0�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��dr/r/r0�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�r/r/r/r0r��s$r�cCs*|jtjtjfkp(t|dd�tjtjfkS)z*Return True if this is a permission error.r�r))�errnoZEPERMZEACCES�getattrrsZERROR_ACCESS_DENIEDZERROR_PRIVILEGE_NOT_HELD)�excr/r/r0r��sr�cCs4t|�rt||d�S|jtjkr,t||d�S|�dS)z3Convert OSError into NoSuchProcess or AccessDenied.)r�r�N)r�rr�ZESRCHr)r�r�r�r/r/r0�convert_oserror�s
r�cst����fdd��}|S)zDDecorator which converts OSError into NoSuchProcess or AccessDenied.c
sJy�|f|�|�Stk
rD}zt||j|jd��Wdd}~XYnXdS)N)r�r�)r�r�r�r�)r��args�kwargsr�)�funr/r0�wrapper�sz wrap_exceptions.<locals>.wrapper)�	functools�wraps)r�r�r/)r�r0�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?�!r1g{�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�r�r��delay�timesr��_r�r�)r�r/r0r��s

z)retry_error_partial_copy.<locals>.wrapper)r�r�)r�r�r/)r�r0�retry_error_partial_copy�sr�c@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�r/r/r0r��szProcess.__init__cCs|j�|�|j�|�dS)N)�
_proc_infoZcache_activate�exe)r�r/r/r0�
oneshot_enter�szProcess.oneshot_entercCs|j�|�|j�|�dS)N)r�Zcache_deactivater�)r�r/r/r0�oneshot_exit�szProcess.oneshot_exitcCst�|j�}|S)zOReturn multiple information about this process as a
        raw tuple.
        )rsZ	proc_infor�)r�r�r/r/r0r��szProcess._proc_infocCs,|jdkrdS|jdkrdStj�|���S)zbReturn process name, which on Windows is always the final
        part of the executable.
        rzSystem Idle Processr ZSystem)r�rurj�basenamer�)r�r/r/r0r��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 AccessDeniedrp)
�PYPYrsZproc_exer�r�r�rrr�rr{�
startswithrw)r�r�r�r/r/r0r��s

zProcess.exec
Cs�tjtjkrbytj|jdd�}Wqrtk
r^}z t|�rLtj|jdd�}n�Wdd}~XYqrXntj|jdd�}trz|Sdd�|D�SdS)NT)Zuse_pebFcSsg|]}t|��qSr/)r{)r�rvr/r/r0r�sz#Process.cmdline.<locals>.<listcomp>)rsZWINVERZWINDOWS_8_1Zproc_cmdliner�r�r�r)r�r�r�r/r/r0�cmdlineszProcess.cmdlinecCs t�|j�}|rtstt|��S)N)rsZproc_environr�rrr{)r�Zustrr/r/r0�environszProcess.environcCs4yt�|jStk
r.t|j|j��YnXdS)N)�ppid_mapr��KeyErrorrr�)r�r/r/r0�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)NrOrPrQrRrSrTrUrVrWrX)rsZproc_memory_infor�r�r�r��	pinfo_map)r�r��infor/r/r0�_get_raw_meminfo's 








zProcess._get_raw_meminfocCs(|��}|d}|d}t||f|�S)Nr1r4)rrd)r��trerfr/r/r0�memory_info=szProcess.memory_infocCs,|��}t�|j�}|t�9}t||f�S)N)r
rsZproc_memory_ussr�r|rg)r�Z	basic_memrhr/r/r0�memory_full_infoGs
zProcess.memory_full_infoc
cs�yt�|j�}Wn2tk
rB}zt||j|j��Wdd}~XYnBXx>|D]6\}}}}t|�}tsjt|�}t	|�}||||fVqJWdS)N)
rsZproc_memory_mapsr�r�r�r�rwrr{�hex)r��rawr�ZaddrZpermrjrer/r/r0�memory_mapsNs"zProcess.memory_mapscCst�|j�S)N)rs�	proc_killr�)r�r/r/r0�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�SIGTERMrsrr�r��objectrurr�)r�Zsigr/r/r0�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�Z	monotonicg-C��6?)r�r�r1g{�G�z�?)
rsZINFINITE�intr�r�Z	proc_waitr�rr�ZTimeoutAbandoned�
pid_existsr�r�)r�ZtimeoutZcext_timeoutZtimerZstop_atZ	exit_coder�r/r/r0�waitns&	


zProcess.waitcCs2|jdkrdSt�|j�\}}t|�dt|�S)N)rr zNT AUTHORITY\SYSTEMrp)r�rsZ
proc_usernamer{)r�ZdomainrZr/r/r0r��s
zProcess.usernamec
CsXyt�|j�\}}}|Stk
rR}zt|�r@|��tdS�Wdd}~XYnXdS)NrG)rs�
proc_timesr�r�r�r�r)r�rZr[�createdr�r/r/r0rG�szProcess.create_timecCs|��tdS)NrH)r�r)r�r/r/r0rH�szProcess.num_threadscCs@t�|j�}g}x*|D]"\}}}t�|||�}|�|�qW|S)N)rsZproc_threadsr�rZpthreadr�)r�r�r�Z	thread_id�utimeZstime�ntupler/r/r0�threads�szProcess.threadsc
Cstyt�|j�\}}}WnLtk
rb}z.t|�s2�|��}|td}|td}Wdd}~XYnXt�||dd�S)NrErFg)	rsrr�r�r�r�rrZ	pcputimes)r�rZr[rr�rr/r/r0r��szProcess.cpu_timescCst�|jd�dS)NT)rs�proc_suspend_or_resumer�)r�r/r/r0�suspend�szProcess.suspendcCst�|jd�dS)NF)rsrr�)r�r/r/r0�resume�szProcess.resumecCs4|jdkrt|j|j��t�|j�}ttj�|��S)N)rr )	r�rr�rsZproc_cwdr{rurj�normpath)r�rjr/r/r0�cwd�s
zProcess.cwdcCsh|jdkrgSt�}t�|j�}x>|D]6}t|�}t|�r&tsFt|�}t�	|d�}|�
|�q&Wt|�S)N)rr r))r�r�rsZproc_open_filesrwrrr{rZ	popenfiler�r�)r�r�Zraw_file_namesZ_filerr/r/r0�
open_files�s

zProcess.open_files�inetcCst||jd�S)N)r�)r�r�)r�r�r/r/r0�connections�szProcess.connectionscCs t�|j�}tdk	rt|�}|S)N)rsZproc_priority_getr��enumr+)r��valuer/r/r0�nice_get�szProcess.nice_getcCst�|j|�S)N)rsZproc_priority_setr�)r�r&r/r/r0�nice_set�szProcess.nice_setcCs t�|j�}tdk	rt|�}|S)N)rsZproc_io_priority_getr�r%r2)r�r�r/r/r0�
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�rsZproc_io_priority_setr�)r�Zioclassr&r/r/r0�
ionice_setszProcess.ionice_setcCs�yt�|j�}Wnttk
r�}zVt|�s,�|��}|td|td|td|td|td|tdf}Wdd}~XYnXt|�S)NrIrJrKrLrMrN)rsZproc_io_countersr�r�r�r�rrm)r�r�r�rr/r/r0�io_counters
s




 zProcess.io_counterscCs t�|j�}|rtjStjSdS)N)rsZproc_is_suspendedr�rZSTATUS_STOPPEDZSTATUS_RUNNING)r�Z	suspendedr/r/r0r�szProcess.statuscCsdd�}t�|j�}||�S)Ncs�fdd�td�D�S)Ncsg|]}d|>�@r|�qS)rr/)r��i)r�r/r0r�'szBProcess.cpu_affinity_get.<locals>.from_bitmask.<locals>.<listcomp>�@)r)r�r/)r�r0�from_bitmask&sz.Process.cpu_affinity_get.<locals>.from_bitmask)rsZproc_cpu_affinity_getr�)r�r/�bitmaskr/r/r0�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 %rrr1)r�)Zls�out�br/r/r0�
to_bitmask-s
z,Process.cpu_affinity_set.<locals>.to_bitmaskz&invalid CPU %r; an integer is requiredzinvalid CPU %r)r�rrtr�rxrrr*r�rsZproc_cpu_affinity_setr�)r�r&r4ZallcpusZcpur0r/r/r0�cpu_affinity_set+s
zProcess.cpu_affinity_setc
CsNyt�|j�Stk
rH}zt|�r6|��tdS�Wdd}~XYnXdS)NrC)rsZproc_num_handlesr�r�r�r�r)r�r�r/r/r0rCDszProcess.num_handlescCs|��td}t�|d�S)NrDr)r�rrZpctxsw)r�rDr/r/r0�num_ctx_switchesMszProcess.num_ctx_switches)N)r#),r,r-r.r��	__slots__r�r�r�r
r�r�r�r�r�rrrrr
rrrrrr�rGrHrr�rrr!r"r$r'r(r)r+r,r�r1r5rCr6r/r/r/r0r��sX	

*	
			r�)r))NN)�r�r�r�r�rur�sysr��collectionsr�rrrrrr	r
rrr
rrrrZ_compatrrrrrrrrrrrrrs�ImportErrorr�ry�lowerrZgetwindowsversionr��RuntimeError�version_infor%Z__extra__all__r'r��builtin_module_namesr�r(�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_NONEr�r+�globalsr��__members__r#r$r%r&r2r�rrYr_rd�_fieldsrgrirqrkrmrwr{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"rr�Zpidsrrr�r�r�r�r�r/r/r/r0�<module>s8











		
*