/ lib / psutil / _pswindows.pyc
_pswindows.pyc
  1  o

  2  #��cM��@s.dZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
  3  mZddlmZddlm
Z
ddlmZdd	lmZdd
  4  lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddlm$Z$ddlm%Z%zddl
  5  mZ&Wn,e'y�Z(z e)e(��*��+d�r�e�,�dd kr�d!Z-e-d"7Z-e-d#7Z-e.e-���dZ([(wwej/d$kr�ddl0Z0ndZ0gd%�Z1d&Z2d'Z3d(ej4vZ5e0du�rd)Z6ne0�7d*d+d)i�Z8e8j6Z6e&j9ej:e&j;ej<e&j=ej>e&j?ej@e&jAejBe&jCejDe&jEejFe&jGejHe&jIejJe&jKejLe&jMejNe&jOe2e&jPejQi
ZRe0du�reGd,d-�d-e0j7�ZSeT��UeSjV�e0du�rsdZWdZXd.ZYd/ZZnGd0d1�d1e0j7�Z[eT��Ue[jV�e\d�id2d�d3d�d4d.�d5d/�d6d7�d8d9�d:d �d;d<�d=d>�d?d@�dAdB�dCdD�dEdF�dGdH�dIdJ�dKdL�dMdN�dOdP�dQdR�dSdT�dUdV�dWdX��Z]e	dYgdZ��Z^e	d[gd\��Z_e	d]gd^��Z`e	d_e`jad`�Zbe	dadbdcg�Zce	dddedf�decja��Zee	dggdh��Zfedidj�dkdl��Zgdmdn�Zhedodp��Zidqdr�Zjdsdt�Zke&jlZldudv�Zmdwdx�Zndydz�Zod{d|�Zpd}d~�Zqdd��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)�
  6  namedtuple�)�_common)�ENCODING)�
ENCODING_ERRS)�AccessDenied)�
NoSuchProcess)�TimeoutExpired)�	conn_tmap)�conn_to_ntuple)�debug)�
isfile_strict)�memoize)�memoize_when_activated)�parse_environ_block)�
usage_percent)�PY3)�long)�	lru_cache��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�
  7  IOPRIO_LOW�
IOPRIO_NORMAL�IOPRIO_HIGH�CONN_DELETE_TCB�AF_LINKZ
  8  DELETE_TCBi+�__pypy__������
AddressFamilyr)c@s$eZdZeZeZeZeZeZeZdS)�PriorityN)	�__name__�
  9  __module__�__qualname__rrrrrr�r1r1��C:\Users\Jacks.GUTTSPC\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\psutil\_pswindows.pyr-nsr-�r c@seZdZdZdZdZdZdS)�
 10  IOPriorityrrr3r N)r.r/r0r$r%r&r'r1r1r1r2r4~s
 11  r4�num_handles�ctx_switches�	user_time�kernel_time�create_timer!�num_threads��	io_rcount�	io_wcount��	io_rbytes��	io_wbytes�	�io_count_others�
 12  �io_bytes_others��num_page_faults��	peak_wset�
�wset��peak_paged_pool��
 13  paged_pool��peak_non_paged_pool��non_paged_pool��pagefile��
peak_pagefile��mem_private��	scputimes)�user�system�idle�	interrupt�dpc�svmem)�total�	available�percent�used�free�pmem)�rss�vmsrGrIrKrMrOZpeak_nonpaged_poolZ
nonpaged_poolrUrW�private�pfullmem)�uss�
pmmap_grouped�pathrh�	pmmap_extzaddr perms � �pio)�
 14  read_count�write_count�
 15  read_bytes�write_bytes�other_countZother_bytesi)�maxsizecCs@d�|�d�dd��}t�|�}|t|�d�}tj�||�S)z�Convert paths using native DOS format like:
 16          "\Device\HarddiskVolume1\Windows\systemew\file.txt"
 17      into:
 18          "C:\Windows\systemew\file.txt"
 19      �\Nr )�join�split�cextZQueryDosDevice�len�osrn)�sZrawdriveZdriveletter�	remainderr1r1r2�convert_dos_path�s
 20  r�cCs"tr|St|t�r|S|�tt�S)zmEncode a unicode string to a byte string by using the default fs
 21      encoding + "replace" error handler.
 22      )r�
 23  isinstance�str�encoderr)r~r1r1r2�
py2_strencode�s
 24  
 25  r�cC�t��S�N)r{�getpagesizer1r1r1r2r���r�c
 26  CsJt��}|\}}}}|}|}|}||}t|||dd�}	t|||	||�S)z&System virtual memory as a namedtuple.r��round_)r{�virtual_memrra)
 27  �memZtotphysZ	availphysZtotsysZavailsysrb�availrfrerdr1r1r2�virtual_memory�sr�c	Csht��}|d}|d}|d}|d}||}t|||�}||}t||dd�}t�||||dd�S)z=Swap system memory as a (total, used, free, sin, sout) tuple.rrr3r r�)r{r��minrr�sswap)	r�Z
 28  total_physZ	free_physZtotal_systemZfree_systemrbrfrerdr1r1r2�swap_memory�sr�cCsPtrt|t�r|jtdd�}t�|�\}}||}t||dd�}t�	||||�S)z'Return disk usage associated with path.�strict)�errorsrr�)
 29  rr��bytes�decoderr{�
 30  disk_usagerr�
 31  sdiskusage)rnrbrfrerdr1r1r2r�sr�cCst�|�}dd�|D�S)zReturn disk partitions.cSsg|]}tj|��qSr1)r�	sdiskpart��.0�xr1r1r2�
 32  <listcomp>�z#disk_partitions.<locals>.<listcomp>)r{�disk_partitions)�all�rawlistr1r1r2r�s
 33  r�cCs<t��\}}}tdd�tt���D��}t||||j|j�S)z)Return system CPU times as a named tuple.cS�g|]}t|��qSr1)�sum)r��nr1r1r2r�)�zcpu_times.<locals>.<listcomp>)r{�	cpu_timesr[�zip�
per_cpu_timesr_r`)r\r]r^Z
percpu_summedr1r1r2r�#s
 34  �r�cCs:g}t��D]\}}}}}t|||||�}|�|�q|S)z6Return system per-CPU times as a list of named tuples.)r{r�r[�append)�retr\r]r^r_r`�itemr1r1r2r�.s
 35  r�cCr�)z0Return the number of logical CPUs in the system.)r{�cpu_count_logicalr1r1r1r2r�7r�r�cCr�)z-Return the number of CPU cores in the system.)r{�cpu_count_coresr1r1r1r2r�<r�r�cCs$t��\}}}}d}t�||||�S)zReturn CPU statistics.r)r{�	cpu_statsr�	scpustats)r6�
 36  interruptsZdpcs�syscalls�soft_interruptsr1r1r2r�As
 37  
 38  �r�cCs(t��\}}d}t�t|�|t|��gS)zMReturn CPU frequency.
 39      On Windows per-cpu frequency is not supported.
 40      �)r{�cpu_freqr�scpufreq�float)�curr�max_�min_r1r1r2r�Isr�FcCs*tst��dat��}tdd�|D��S)z~Return the number of processes in the system run queue averaged
 41      over the last 1, 5, and 15 minutes respectively as a tupleTcSsg|]}t|d��qS)r3)�round)r��loadr1r1r2r�`r�zgetloadavg.<locals>.<listcomp>)�_loadavg_inititializedr{Zinit_loadavg_counter�
 42  getloadavg�tuple)Z	raw_loadsr1r1r2r�Us
 43  r�cCs�|tvrtd|d�dd�tD��f��t|\}}t�|||�}t�}|D]"}|\}}}	}
 44  }}}
t|||	|
 45  ||t|dkr?|
ndd�}|�|�q&t	|�S)z�Return socket connections.  If pid == -1 return system-wide
 46      connections (as opposed to connections opened by one process only).
 47      z+invalid %r kind argument; choose between %sz, cSr�r1)�reprr�r1r1r2r�nr�z#net_connections.<locals>.<listcomp>r+N)�pid)
 48  r
 49 50  ValueErrorryr{�net_connections�setr�TCP_STATUSES�add�list)�kind�_pid�families�typesr�r�r��fd�fam�type�laddr�raddr�statusr��ntr1r1r2r�hs��r�cCszi}t��}|��D]0\}}tst|t�sJt|���t|�}|\}}}}tt	d�r/t	�
 51  |�}t	�||||d�||<q
 52  |S)z)Get NIC stats (isup, duplex, speed, mtu).�	NicDuplex�)r{�net_if_stats�itemsrr�rr�r��hasattrrr��	snicstats)r��rawdict�namer��isup�duplex�speed�mtur1r1r2r�zs
 53  
 54  r�cCst��}tdd�|��D��S)zsReturn network I/O statistics for every network interface
 55      installed on the system as a dict of raw tuples.
 56      cSsg|]
 57  \}}t|�|f�qSr1�r�)r��k�vr1r1r2r���z#net_io_counters.<locals>.<listcomp>)r{�net_io_counters�dictr��r�r1r1r2r��sr�cCs8g}t��D]}t|�}t|d�|d<|�|�q|S)z,Return the addresses associated to each NIC.r)r{�net_if_addrsr�r�r�)r�r�r1r1r2r��sr�cCsdt��\}}}}|dk}t|d@�}t|d@�}|rdS|s |r$tj}n|dkr+tj}t�|||�S)zReturn battery information.r�r@Nr+)r{�sensors_battery�boolr�POWER_TIME_UNLIMITED�POWER_TIME_UNKNOWN�sbattery)Z
acline_status�flagsrd�secsleft�
power_pluggedZ
 58  no_battery�chargingr1r1r2r��sr�cCs(tt���}t|t�dkrtS|a|S)z:The system boot time expressed in seconds since the epoch.r)r�r{�	boot_time�abs�_last_btimer�r1r1r2r��s
 59  r�cCsHg}t��}|D]}|\}}}t|�}t�|d||d�}|�|�q|S)z:Return currently connected users as a list of namedtuples.N)r{�usersr�r�suserr�)�retlistr�r�r\�hostname�tstampr�r1r1r2r��s
 60  r�ccs,�t��D]\}}tt|�t|��VqdS)z*Yields a list of WindowsService instances.N)r{Zwinservice_enumerate�WindowsServicer�)r��display_namer1r1r2r"�s��r"cCst|d�}|��d|_|S)zBOpen a Windows service and return it as a WindowsService instance.Nr�)r��
_query_config�
_display_name)r��servicer1r1r2r#�s
 61  r#c@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
 62  d�Zdd
�Z	dd�Z
 63  ejdd��Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$S)%r�z(Represents an installed Windows service.cCs||_||_dSr�)�_namer�)�selfr�r�r1r1r2�__init__�s
 64  zWindowsService.__init__cCs d|j|jf}d|jj|fS)Nz(name=%r, display_name=%r)z%s%s)r�r��	__class__r.)r��detailsr1r1r2�__str__�s�zWindowsService.__str__cCsd|��t|�fS)Nz
 65  <%s at %s>)r�id�r�r1r1r2�__repr__�szWindowsService.__repr__cCst|t�stS|j|jkSr�)r�r��NotImplementedr��r��otherr1r1r2�__eq__�s
 66  zWindowsService.__eq__cCs
 67  ||kSr�r1rr1r1r2�__ne__�s
 68  zWindowsService.__ne__cCs\|���t�|j�\}}}}Wd�n1swYtt|�t|�t|�t|�d�S)N)r��binpath�username�
 69  start_type)�_wrap_exceptionsr{Zwinservice_query_configr�r�r�)r�r�r
 70  rrr1r1r2r�s
 71  
 72  ���zWindowsService._query_configcCsP|���t�|j�\}}Wd�n1swY|dkr"d}t||d�S)Nr)r�r�)r
r{Zwinservice_query_statusr�r�)r�r�r�r1r1r2�
_query_statuss
 73  �zWindowsService._query_statusc
 74  csp�zdVWdSty7}z$t|�rtd|jd|jd��|jtjtjfvr2td|jd|jd���d}~ww)z{Ctx manager which translates bare OSError and WindowsError
 75          exceptions into NoSuchProcess and AccessDenied.
 76          Nz2service %r is not querable (not enough privileges)�r�r��msgzservice %r does not exist))	�OSError�is_permission_errrr��winerrorr{�ERROR_INVALID_NAME�ERROR_SERVICE_DOES_NOT_EXISTr�r��errr1r1r2r
s*�������zWindowsService._wrap_exceptionscC�|jS)z�The service name. This string is how a service is referenced
 77          and can be passed to win_service_get() to get a new
 78          WindowsService instance.
 79          )r�rr1r1r2r�*szWindowsService.namecCr)z_The service display name. The value is cached when this class
 80          is instantiated.
 81          )r�rr1r1r2r�1szWindowsService.display_namecC�|��dS)zwThe fully qualified path to the service binary/exe file as
 82          a string, including command line arguments.
 83          r
 84  �r�rr1r1r2r
 85  7�zWindowsService.binpathcCr)z,The name of the user that owns this service.rrrr1r1r2r=�zWindowsService.usernamecCr)zRA string which can either be "automatic", "manual" or
 86          "disabled".
 87          rrrr1r1r2rArzWindowsService.start_typecCr)zzThe process PID, if any, else None. This can be passed
 88          to Process class to control the service's process.
 89          r��rrr1r1r2r�IrzWindowsService.pidcCr)zService status as a string.r�rrr1r1r2r�OrzWindowsService.statuscCstt�|����S)zService long description.)r�r{Zwinservice_query_descrr�rr1r1r2�descriptionS�zWindowsService.descriptioncCs>|��}|�|���|��|d<|��|d<|��|d<|S)zUUtility method retrieving all the information above as a
 90          dictionary.
 91          r�r�r)r��updaterr�r�r)r��dr1r1r2�as_dictYszWindowsService.as_dictN)r.r/r0�__doc__r�rrrr	r�r�
 92  contextlib�contextmanagerr
r�r�r
 93  rrr�r�rr"r1r1r1r2r��s(
 94  r�cCs<t|t�s	J|��|jtjtjfvpt|dd�tjtjfvS)z*Return True if this is a permission error.rr+)	r�r�errno�EPERM�EACCES�getattrr{�ERROR_ACCESS_DENIED�ERROR_PRIVILEGE_NOT_HELD)�excr1r1r2r�s��rcCsBt|t�s	J|��t|�rt||d�S|jtjkrt||d�S|�)z3Convert OSError into NoSuchProcess or AccessDenied.�r�r�)r�rrrr&�ESRCHr)r,r�r�r1r1r2�convert_oserror�sr/c�t����fdd��}|S)zDDecorator which converts OSError into NoSuchProcess or AccessDenied.c
 95  sDz�|g|�Ri|��WSty!}z	t||j|jd��d}~ww)Nr-)rr/r�r�)r��args�kwargsr��funr1r2�wrapper�s��z wrap_exceptions.<locals>.wrapper��	functools�wraps�r4r5r1r3r2�wrap_exceptions�sr:cr0)z�Workaround for https://github.com/giampaolo/psutil/issues/875.
 96      See: https://stackoverflow.com/questions/4457745#4457745
 97      c	s�d}d}t|�D]6}z�|g|�Ri|��WSty>}z|}|jtkr9t�|�t|dd�}WYd}~q�d}~wwd�||f}t|j|j	|d��)N�-C��6?�!r3�{�G�z�?zI%s retried %s times, converted to AccessDenied as it's still returning %rr)
 98  r�WindowsErrorr�ERROR_PARTIAL_COPY�time�sleepr�rr�r�)	r�r1r2�delay�timesr��_rrr3r1r2r5�s$
 99  
100  ��	�z)retry_error_partial_copy.<locals>.wrapperr6r9r1r3r2�retry_error_partial_copy�srEc@s�eZdZdZgd�Zdd�Zdd�Zdd�Zed	d
101  ��Z	dd�Z
102  eed
d���Zee
dd���Zee
dd���Zdd�Zdd�Zedd��Zedd��Zdd�Zedd��Zedd ��ZedMd"d#��Zed$d%��Zed&d'��Zed(d)��Zed*d+��Zed,d-��Zed.d/��Zed0d1��Zee
d2d3���Zed4d5��Z edNd7d8��Z!ed9d:��Z"ed;d<��Z#ed=d>��Z$ed?d@��Z%edAdB��Z&edCdD��Z'edEdF��Z(edGdH��Z)edIdJ��Z*edKdL��Z+d!S)O�Processz1Wrapper class around underlying C implementation.)r�r��_ppid�_cachecCs||_d|_d|_dSr�)r�r�rG)r�r�r1r1r2r��s
103  zProcess.__init__cC�|j�|�|j�|�dSr�)�
104  _proc_info�cache_activate�exerr1r1r2�
oneshot_enter��zProcess.oneshot_entercCrIr�)rJ�cache_deactivaterLrr1r1r2�oneshot_exit�rNzProcess.oneshot_exitcCs$t�|j�}t|�tt�ksJ�|S)zOReturn multiple information about this process as a
105          raw tuple.
106          )r{Z	proc_infor�r|�	pinfo_map�r�r�r1r1r2rJ�szProcess._proc_infocCs,|jdkrdS|jdkrdStj�|���S)zbReturn process name, which on Windows is always the final
107          part of the executable.
108          rzSystem Idle Processr!�System)r�r}rn�basenamerLrr1r1r2r��s
109  
110  
111  zProcess.namec
112  Cs�tr*zt�|j�}Wn%ty)}z|jdkr$td|�t|j|j���d}~wwt�|j�}t	s6t
113  |�}|�d�r?t|�S|S)N�z%r translated into AccessDeniedrx)
�PYPYr{�proc_exer�r>r&rrr�rr��
114  startswithr�)r�rLrr1r1r2rL�s 
115  ��
116  zProcess.exec
117  Cs�tjtjkr1z
118  tj|jdd�}Wn(ty0}zt|�r%tj|jdd�}n�WYd}~n
d}~wwtj|jdd�}tr=|Sdd�|D�S)NT)Zuse_pebFcSr�r1r�)r�r~r1r1r2r� r�z#Process.cmdline.<locals>.<listcomp>)r{�WINVERZWINDOWS_8_1�proc_cmdliner�rrr)r�r�rr1r1r2�cmdlines���zProcess.cmdlinecCs6t�|j�}|rtst|t�sJt|���tt|��Sr�)	r{�proc_environr�rr�rr�rr�)r�Zustrr1r1r2�environ"szProcess.environcCs,zt�|jWStyt|j|j��wr�)�ppid_mapr��KeyErrorrr�rr1r1r2�ppid*s
119  �zProcess.ppidcCs�zt�|j�WStyV}zCt|�rQ|��}|td|td|td|td|td|td|td|td|td	|td
120  f
121  WYd}~S�d}~ww)NrGrIrKrMrOrQrSrUrWrY)r{Zproc_memory_infor�rrrJrQ)r�r�infor1r1r2�_get_raw_meminfo0s&
122  
123  
124  
125  
126  
127  
128  
129  
130  
131  ���zProcess._get_raw_meminfocCs(|��}|d}|d}t||f|�S)Nr3r>)rbrg)r��trhrir1r1r2�memory_infoFszProcess.memory_infocCs,|��}t�|j�}|t�9}t||f�Sr�)rdr{�proc_memory_ussr�r�rk)r��	basic_memrlr1r1r2�memory_full_infoPs
132  zProcess.memory_full_infoc
133  cs|�zt�|j�}Wnty}zt||j|j��d}~ww|D]\}}}}t|�}ts0t|�}t	|�}||||fVq dSr�)
134  r{�proc_memory_mapsr�rr/r�r�rr��hex)r��rawr�addr�permrnrhr1r1r2�memory_mapsWs����zProcess.memory_mapscCst�|j�Sr�)r{�	proc_killr�rr1r1r2�killfrzProcess.killcCsT|tjkr
t�|j�dS|ttdt��ttdt��fvr&t�|j|�dSt	d��)N�CTRL_C_EVENT�CTRL_BREAK_EVENTzPonly SIGTERM, CTRL_C_EVENT and CTRL_BREAK_EVENT signals are supported on Windows)
135  �signal�SIGTERMr{rnr�r)�objectr}ror�)r��sigr1r1r2�send_signaljs
136  ��zProcess.send_signalNcCs�|durtj}nt|d�}ttdtj�}|dur|�|nd}z	t�|j|�}Wntjy9t||j|j��tj	yDd}Ynwd}	t
137  |j�sO|S|r_|�|kr_t||j|jd��t�|�t|dd�}qH)Ni��	monotonicr;Tr-r3r=)
r{�INFINITE�intr)r@Z	proc_waitr�r	r�ZTimeoutAbandoned�
138  pid_existsrAr�)r��timeoutZcext_timeout�timer�stop_at�	exit_coderBr1r1r2�waitws*	�
139  
140  �zProcess.waitcCs2|jdvrdSt�|j�\}}t|�dt|�S)N�rr!zNT AUTHORITY\SYSTEMrx)r�r{Z
proc_usernamer�)r��domainr\r1r1r2r�s
141  zProcess.usernamec
142  CsXzt�|j�\}}}|WSty+}zt|�r&|��tdWYd}~S�d}~ww)Nr9)r{�
143  proc_timesr�rrrJrQ)r�r\r]�createdrr1r1r2r9�s��zProcess.create_timecCs|��tdS)Nr:)rJrQrr1r1r2r:�szProcess.num_threadscCs<t�|j�}g}|D]\}}}t�|||�}|�|�q
144  |Sr�)r{�proc_threadsr�r�pthreadr�)r�r�r��	thread_id�utime�stime�ntupler1r1r2�threads�szProcess.threadsc
145  Csvzt�|j�\}}}Wn'ty2}zt|�s�|��}|td}|td}WYd}~nd}~wwt�||dd�S)Nr7r8r�)	r{r�r�rrrJrQr�	pcputimes)r�r\r]r�rrar1r1r2r��s��zProcess.cpu_timescC�t�|jd�dS)NT�r{Zproc_suspend_or_resumer�rr1r1r2�suspend�rzProcess.suspendcCr�)NFr�rr1r1r2�resume�rzProcess.resumecCs4|jdvrt|j|j��t�|j�}ttj�|��S)Nr�)	r�rr�r{�proc_cwdr�r}rn�normpath)r�rnr1r1r2�cwd�s
146  zProcess.cwdcCsd|jdvrgSt�}t�|j�}|D]}t|�}t|�r-ts"t|�}t�	|d�}|�
147  |�qt|�S)Nr�r+)r�r�r{�proc_open_filesr�r
rr�r�	popenfiler�r�)r�r�Zraw_file_names�_filer�r1r1r2�
148  open_files�s
149  
150  �zProcess.open_files�inetcCst||jd�S)N)r�)r�r�)r�r�r1r1r2�connections��zProcess.connectionscC� t�|j�}tdurt|�}|Sr�)r{Zproc_priority_getr��enumr-�r��valuer1r1r2�nice_get��zProcess.nice_getcCst�|j|�Sr�)r{Zproc_priority_setr�r�r1r1r2�nice_set�r�zProcess.nice_setcCr�r�)r{Zproc_io_priority_getr�r�r4rRr1r1r2�
151  ionice_getr�zProcess.ionice_getcCs:|rtd��|ttttfvrtd|��t�|j|�dS)Nz&value argument not accepted on Windowsz%s is not a valid priority)	�	TypeErrorr$r%r&r'r�r{Zproc_io_priority_setr�)r��ioclassr�r1r1r2�
152  ionice_set
153  s�zProcess.ionice_setcCs�zt�|j�}Wt|�StyI}z2t|�s�|��}|td|td|td|td|td|tdf}WYd}~t|�Sd}~ww)Nr<r=r?rArCrE)r{�proc_io_countersr�rrrJrQrq)r�r�rrar1r1r2�io_counterss"
�
154  
155  
156  
157  
158  
159  ���zProcess.io_counterscCst�|j�}|rtjStjSr�)r{Zproc_is_suspendedr�r�STATUS_STOPPED�STATUS_RUNNING)r��	suspendedr1r1r2r�%szProcess.statuscCsdd�}t�|j�}||�S)Ncs�fdd�td�D�S)Ncsg|]
160  }d|>�@r|�qS)rr1)r��i�r�r1r2r�0r�zBProcess.cpu_affinity_get.<locals>.from_bitmask.<locals>.<listcomp>�@rr�r1r�r2�from_bitmask/sz.Process.cpu_affinity_get.<locals>.from_bitmask)r{�proc_cpu_affinity_getr�)r�r��bitmaskr1r1r2�cpu_affinity_get-szProcess.cpu_affinity_getcCsldd�}tttt����}|D]}||vr(t|ttf�s"td|��td|��q||�}t	�
161  |j|�dS)NcSs.|std|��d}|D]}|d|O}q|S)Nzinvalid argument %rrr3)r�)�ls�out�br1r1r2�
162  to_bitmask6sz,Process.cpu_affinity_set.<locals>.to_bitmaskz&invalid CPU %r; an integer is requiredzinvalid CPU %r)r�rr|r�r�ryrr�r�r{�proc_cpu_affinity_setr�)r�r�r��allcpus�cpur�r1r1r2�cpu_affinity_set4s��zProcess.cpu_affinity_setc
163  CsNzt�|j�WSty&}zt|�r!|��tdWYd}~S�d}~ww)Nr5)r{Zproc_num_handlesr�rrrJrQrr1r1r2r5Ms��zProcess.num_handlescCs|��td}t�|d�S)Nr6r)rJrQr�pctxsw)r�r6r1r1r2�num_ctx_switchesVszProcess.num_ctx_switchesr�)r�),r.r/r0r#�	__slots__r�rMrPrrJr�r:rLrEr[r]r`rbrdrgrmrorvrrr9r:r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r5r�r1r1r1r2rF�s�
164  
165  	
166  
167  
168  *
169  
170  
171  
172  
173  
174  
175  
176  
177  
178  
179  
180  
181  
182  
183  
184  
185  rFr1)r+)NN)�r#r$r&r7r}rr�sysr@�collectionsrr�rrrrrr	r
186  rrr
rrrr�_compatrrrrrrrrrrrrr{�ImportErrorrr��lowerrX�getwindowsversionr�RuntimeError�version_infor��__extra__all__r(r?�builtin_module_namesrVr)�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�
187  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_TCB�PSUTIL_CONN_NONE�	CONN_NONEr�r-�globalsr �__members__r$r%r&r'r4r�rQr[rarg�_fieldsrkrmryrorqr�r�r�r�r��disk_io_countersr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r"r#rtr��pidsrzr^rr/r:rErFr1r1r1r2�<module>sb��
188  
189  
190  
191  �
192  
193  ��������	�
194  ���
���������� ���
195  
196  
197  	
		
198  *
199  
200