HEX
Server: LiteSpeed
System: Linux us-phx-web1284.main-hosting.eu 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: u300739242 (300739242)
PHP: 8.2.30
Disabled: system, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/alt/python311/lib64/python3.11/site-packages/psutil/__pycache__/_pswindows.cpython-311.pyc
�

8�;ff�����dZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlmZddlm
Z
ddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddlm$Z$ddlm%Z%	ddl
mZ&nn#e'$rfZ(e)e(���*���+d��r0ej,��dd krd!Z-e-d"z
Z-e-d#z
Z-e.e-����dZ([(wwxYwerddl/Z/ndZ/gd$�Z0d%Z1d&Z2d'ej3vZ4e/�d(Z5ne/j6d)d*d(i��Z7e7j5Z5e&j8ej9e&j:ej;e&j<ej=e&j>ej?e&j@ejAe&jBejCe&jDejEe&jFejGe&jHejIe&jJejKe&jLejMe&jNe1e&jOejPi
ZQe/�5Gd+�d,e/j6��ZReS���TeRjU��e/�	dZVdZWd-ZXd.ZYn5Gd/�d0e/j6��ZZeS���TeZjU��e[d�id1d�d2d�d3d-�d4d.�d5d6�d7d8�d9d �d:d;�d<d=�d>d?�d@dA�dBdC�dDdE�dFdG�dHdI�dJdK�dLdM�dNdO�dPdQ�dRdS�dTdU�dVdW��Z\e	dXgdY���Z]e	dZgd[���Z^e	d\gd]���Z_e	d^e_j`d_z��Zae	d`dadbg��Zbe	dcddde�cebj`��z��Zde	dfgdg���Zeedh�i��dj���Zfdk�Zgedl���Zhdm�Zidn�Zje&jkZkdo�Zldp�Zmdq�Zndr�Zods�Zpdt�Zqdu�Zrdv�Zsdwatdx�Zud�dy�Zvdz�Zwd{�Zxd|�Zyd}�Zzda{d~�Z|d�Z}d��Z~d��ZGd��d���Z�e&j�Z�e&j�Z�e&j�Z�d��Z�d�d��Z�d��Z�d��Z�Gd��d���Z�dS)�z Windows platform implementation.�N)�
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�
IOPRIO_LOW�
IOPRIO_NORMAL�IOPRIO_HIGH�CONN_DELETE_TCB�AF_LINK�
DELETE_TCBi+�__pypy__����
AddressFamilyr(c�&�eZdZeZeZeZeZeZeZdS)�PriorityN)	�__name__�
__module__�__qualname__rrrrrr���F/opt/alt/python311/lib64/python3.11/site-packages/psutil/_pswindows.pyr.r.ss4������&A�#�&A�#�1��1�� 5��"9���r3r.��c��eZdZdZdZdZdZdS)�
IOPriorityrrr5r6N)r/r0r1r#r$r%r&r2r3r4r8r8�s"���������
��
����r3r8�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)�total�	available�percent�used�free�pmem)�rss�vmsrLrNrPrRrT�peak_nonpaged_pool�
nonpaged_poolrZr\�private�pfullmem)�uss�
pmmap_grouped�pathrm�	pmmap_extzaddr perms � �pio)�
read_count�write_count�
read_bytes�write_bytes�other_count�other_bytesi)�maxsizec��d�|�d��dd���}tj|��}|t	|��d�}t
j�||��S)z�Convert paths using native DOS format like:
        "\Device\HarddiskVolume1\Windows\systemew\file.txt"
    into:
        "C:\Windows\systemew\file.txt".
    �\Nr6)�join�split�cext�QueryDosDevice�len�osru)�s�rawdrive�driveletter�	remainders    r4�convert_dos_pathr��sb���y�y�������r��r�*�+�+�H��%�h�/�/�K��#�h�-�-�/�/�"�I�
�7�<�<��Y�/�/�/r3c��tr|St|t��r|S|�tt
��S)zmEncode a unicode string to a byte string by using the default fs
    encoding + "replace" error handler.
    )r�
isinstance�str�encoderr)r�s r4�
py2_strencoder��s<���5����a����	5��H��8�8�H�m�4�4�4r3c�(�tj��S�N)r��getpagesizer2r3r4r�r��s������r3c��tj��}|\}}}}|}|}|}||z
}t||z
|d���}	t|||	||��S)z&System virtual memory as a namedtuple.r��round_)r��virtual_memrrf)
�mem�totphys�	availphys�totsys�availsysrg�availrkrjris
          r4�virtual_memoryr��sd��
�
�
�
�C�+.�(�G�Y����E��E��D��5�=�D��U�U�]�U�1�=�=�=�G����w��d�3�3�3r3c��tj��}|d}|d}||z
}|dkr)tj��}td|z|z��}nd}d}||z
}t	|d��}tj||||dd��S)z=Swap system memory as a (total, used, free, sin, sout) tuple.rr5g{�G�z�?�r)r�r��swap_percent�int�roundr�sswap)r��
total_phys�total_systemrg�percentswaprjrkris        r4�swap_memoryr��s���
�
�
�
�C��Q��J��q�6�L�
�:�%�E�

�q�y�y��'�)�)���4�+�%��-�.�.��������4�<�D��K��#�#�G��=���d�G�Q��:�:�:r3c��tr1t|t��r|�td���}tj|��\}}||z
}t||d���}tj	||||��S)z'Return disk usage associated with path.�strict)�errorsrr�)
rr��bytes�decoderr��
disk_usagerr�
sdiskusage)rurgrkrjris     r4r�r�sy��
�6�z�$��&�&�6��{�{�8�H�{�5�5���/�$�'�'�K�E�4��4�<�D��D�%��2�2�2�G���e�T�4��9�9�9r3c�B�tj|��}d�|D��S)zReturn disk partitions.c�*�g|]}tj|���Sr2)r�	sdiskpart��.0�xs  r4�
<listcomp>z#disk_partitions.<locals>.<listcomp>,s ��3�3�3�a�G��q�!�3�3�3r3)r��disk_partitions)�all�rawlists  r4r�r�)s&���"�3�'�'�G�3�3�7�3�3�3�3r3c��tj��\}}}td�ttj���D���}t||||j|j��S)z)Return system CPU times as a named tuple.c�,�g|]}t|����Sr2)�sum)r��ns  r4r�zcpu_times.<locals>.<listcomp>:s��K�K�K�1��A���K�K�Kr3)r��	cpu_timesr`�zip�
per_cpu_timesrdre)rarbrc�
percpu_summeds    r4r�r�4sb����)�)��D�&�$��K�K��T�5G�5I�5I�0J�K�K�K�L�M���f�d�M�3�]�5F���r3c��g}tj��D]0\}}}}}t|||||��}|�|���1|S)z6Return system per-CPU times as a list of named tuples.)r�r�r`�append)�retrarbrcrdre�items       r4r�r�@sY��
�C�.2�.@�.B�.B���*��f�d�I�s���v�t�Y��<�<���
�
�4������Jr3c�(�tj��S)z0Return the number of logical CPUs in the system.)r��cpu_count_logicalr2r3r4r�r�Is���!�#�#�#r3c�(�tj��S)z-Return the number of CPU cores in the system.)r��cpu_count_coresr2r3r4r�r�Ns����!�!�!r3c�d�tj��\}}}}d}tj||||��S)zReturn CPU statistics.r)r��	cpu_statsr�	scpustats)r:�
interrupts�dpcs�syscalls�soft_interruptss     r4r�r�Ss;��/3�~�/?�/?�,�L�*�d�H��O����j�/�8���r3c��tj��\}}d}tjt	|��|t	|����gS)zMReturn CPU frequency.
    On Windows per-cpu frequency is not supported.
    r�)r��cpu_freqr�scpufreq�float)�curr�max_�min_s   r4r�r�\s<������J�D�$��D���U�4�[�[�$��d���<�<�=�=r3Fc��tstj��datj��}t	d�|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 tuple.
    Tc�.�g|]}t|d����S)r5)r�)r��loads  r4r�zgetloadavg.<locals>.<listcomp>ts ��7�7�7�T�%��a�.�.�7�7�7r3)�_loadavg_inititializedr��init_loadavg_counter�
getloadavg�tuple)�	raw_loadss r4r�r�hsM��"�&��!�#�#�#�!%����!�!�I��7�7�Y�7�7�7�8�8�8r3c��|tvr7td|�dd�d�tD���������t|\}}tj|||��}t��}|D]E}|\}}}	}
}}}
t
|||	|
||t|dkr|
nd���}|�|���Ft|��S)z�Return socket connections.  If pid == -1 return system-wide
    connections (as opposed to connections opened by one process only).
    zinvalid z kind argument; choose between z, c�,�g|]}t|����Sr2)�reprr�s  r4r�z#net_connections.<locals>.<listcomp>�s��;�;�;�A��Q���;�;�;r3r+N)�pid)
r�
ValueErrorr�r��net_connections�setr�TCP_STATUSES�add�list)�kind�_pid�families�typesr�r�r��fd�fam�type�laddr�raddr�statusr��nts               r4r�r�|s����9����j��t�t�T�Y�Y�;�;��;�;�;�<�<�<�
>�
�
�	
� ��o�O�H�e��"�4��5�9�9�G�

�%�%�C�����37�0��C��u�e�V�S�
���������r�z�z���t�	
�	
�	
��	����������9�9�r3c�~�i}tj��}|���D]�\}}ts;t	|t
��sJt
|�����t|��}|\}}}}ttd��rtj
|��}tj||||d��||<��|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�mtus        r4r�r��s���
�C���!�!�G��}�}���D�D���e��	'��d�G�,�,�8�8�d�4�j�j�8�8�8� ��&�&�D�#(� ��f�e�S��7�K�(�(�	/��&�v�.�.�F��%�d�F�E�3��C�C��D�	�	��Jr3c�~�tj��}td�|���D����S)zsReturn network I/O statistics for every network interface
    installed on the system as a dict of raw tuples.
    c�6�g|]\}}t|��|f��Sr2�r�)r��k�vs   r4r�z#net_io_counters.<locals>.<listcomp>�s)��?�?�?�4�1�a�-��"�"�A�&�?�?�?r3)r��net_io_counters�dictr��r�s r4rr�s7���
�
 �
 �C��?�?�3�9�9�;�;�?�?�?�@�@�@r3c��g}tj��D]>}t|��}t|d��|d<|�|���?|S)z,Return the addresses associated to each NIC.r)r��net_if_addrsr�r�r�)r�r�s  r4rr�sY��
�C��"�$�$�����U���� ��q��*�*��a���
�
�5������Jr3c��tj��\}}}}|dk}t|dz��}t|dz��}|rdS|s|r
tj}n|dkrtj}tj|||��S)zReturn battery information.r�rENr+)r��sensors_battery�boolr�POWER_TIME_UNLIMITED�POWER_TIME_UNKNOWN�sbattery)�
acline_status�flagsri�secsleft�
power_plugged�
no_battery�chargings       r4rr�s���
/3�.B�.D�.D�+�M�5�'�8�!�Q�&�M��e�c�k�"�"�J��E�A�I���H����t��.��.��/���	�R����-����G�X�}�=�=�=r3c��ttj����}t|tz
��dkrtS|a|S)z:The system boot time expressed in seconds since the epoch.r)r�r��	boot_time�abs�_last_btimer
s r4rr�sA����� � �
!�
!�C�
�3������"�"������
r3c��g}tj��}|D]D}|\}}}t|��}tj|d||d��}|�|���E|S)z:Return currently connected users as a list of namedtuples.N)r��usersr�r�suserr�)�retlistr�r�ra�hostname�tstampr�s       r4rr�sk���G��j�l�l�G�����!%���h���T�"�"��
�]�4��x���
>�
>�����r������Nr3c#�K�tj��D]1\}}tt|��t|����V��2dS)z*Yields a list of WindowsService instances.N)r��winservice_enumerate�WindowsServicer�)r��display_names  r4r!r!�sZ����"�7�9�9�O�O���l��]�4�0�0�-��2M�2M�N�N�N�N�N�N�O�Or3c�d�t|d��}|���d|_|S)zBOpen a Windows service and return it as a WindowsService instance.Nr')r&�
_query_config�
_display_name)r��services  r4r"r"�s/���T�4�(�(�G�#�1�1�3�3�N�C�G���Nr3c��eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
ejd	���Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�ZdS)r&z(Represents an installed Windows service.c�"�||_||_dSr�)�_namer*)�selfr�r's   r4�__init__zWindowsService.__init__	s����
�)����r3c�H�d|j�d|j�d�}|jj�|��S)Nz(name=z, display_name=�))r.r*�	__class__r/)r/�detailss  r4�__str__zWindowsService.__str__
s7����J�J�J�����
����0�0�'�'�:�:r3c�R�d|����dt|���d�S)N�<z at �>)r5�id�r/s r4�__repr__zWindowsService.__repr__s%���#�|�|�~�~�~�~�r�$�x�x�x�x�8�8r3c�Z�t|t��stS|j|jkSr�)r�r&�NotImplementedr.�r/�others  r4�__eq__zWindowsService.__eq__s+���%��0�0�	"�!�!��z�U�[�(�(r3c��||kSr�r2r>s  r4�__ne__zWindowsService.__ne__s���5�=� � r3c�$�|���5tj|j��\}}}}ddd��n#1swxYwYt	t|��t|��t|��t|�����S)N)r'�binpath�username�
start_type)�_wrap_exceptionsr��winservice_query_configr.r	r�)r/r'rDrErFs     r4r)zWindowsService._query_config!s���
�
"�
"�
$�
$�	�	��,�T�Z�8�8�
8�L�'�8�Z�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�&�|�4�4�!�'�*�*�"�8�,�,�$�Z�0�0�	
�
�
�	
s�A�A�Ac���|���5tj|j��\}}ddd��n#1swxYwY|dkrd}t	||���S)Nr)r�r�)rGr��winservice_query_statusr.r	)r/r�r�s   r4�
_query_statuszWindowsService._query_status.s���
�
"�
"�
$�
$�	C�	C��6�t�z�B�B�K�F�C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C��!�8�8��C��6�s�+�+�+�+s�>�A�Ac#�K�	dV�dS#t$rv}t|��r!d|jz}td|j|����|jt
jt
jfvr!d|jz}td|j|�����d}~wwxYw)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_errr.r�winerrorr��ERROR_INVALID_NAME�ERROR_SERVICE_DOES_NOT_EXISTr	)r/�errrNs   r4rGzWindowsService._wrap_exceptions5s�����
	��E�E�E�E�E���	�	�	� ��%�%�

�H��j�!��#�t�$�*�#�F�F�F�F����'��1�"���2�D�J�>��#��4�:�3�G�G�G�G������	���s�
�
B
�A1B�B
c��|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:s r4r�zWindowsService.nameNs��
�z�r3c��|jS)z_The service display name. The value is cached when this class
        is instantiated.
        )r*r:s r4r'zWindowsService.display_nameUs
���!�!r3c�6�|���dS)zwThe fully qualified path to the service binary/exe file as
        a string, including command line arguments.
        rD�r)r:s r4rDzWindowsService.binpath[s���!�!�#�#�I�.�.r3c�6�|���dS)z,The name of the user that owns this service.rErXr:s r4rEzWindowsService.usernameas���!�!�#�#�J�/�/r3c�6�|���dS)zRA string which can either be "automatic", "manual" or
        "disabled".
        rFrXr:s r4rFzWindowsService.start_typees���!�!�#�#�L�1�1r3c�6�|���dS)zzThe process PID, if any, else None. This can be passed
        to Process class to control the service's process.
        r��rKr:s r4r�zWindowsService.pidms���!�!�#�#�E�*�*r3c�6�|���dS)zService status as a string.r�r\r:s r4r�zWindowsService.statusss���!�!�#�#�H�-�-r3c�h�ttj|�������S)zService long description.)r�r��winservice_query_descrr�r:s r4�descriptionzWindowsService.descriptionws#���T�8������E�E�F�F�Fr3c��|���}|�|�����|���|d<|���|d<|���|d<|S)zUUtility method retrieving all the information above as a
        dictionary.
        r�r'r`)r)�updaterKr�r'r`)r/�ds  r4�as_dictzWindowsService.as_dict}su��
��� � ��	����#�#�%�%�&�&�&��I�I�K�K��&�	� �-�-�/�/��.���+�+�-�-��-���r3N)r/r0r1�__doc__r0r5r;r@rBr)rK�
contextlib�contextmanagerrGr�r'rDrErFr�r�r`rdr2r3r4r&r&s,������2�2�*�*�*�;�;�;�9�9�9�)�)�)�!�!�!�
�
�
�,�,�,��������0���"�"�"�/�/�/�0�0�0�2�2�2�+�+�+�.�.�.�G�G�G�	�	�	�	�	r3r&c���t|t��s
J|���|jtjtjfvrdSt|dd��tjtjfvrdSdS)z*Return True if this is a permission error.TrQr+F)	r�rO�errno�EPERM�EACCES�getattrr��ERROR_ACCESS_DENIED�ERROR_PRIVILEGE_NOT_HELD)�excs r4rPrP�ss���c�7�#�#�(�(�S�(�(�(�
�y�U�[�%�,�/�/�/��t��s�J��#�#�� ��%�(����t��5r3c���t|t��s
J|���t|��rt||���S|jtjkrt
||���S|�)z3Convert OSError into NoSuchProcess or AccessDenied.�r�r�)r�rOrPrri�ESRCHr	)ror�r�s   r4�convert_oserrorrs�sj���c�7�#�#�(�(�S�(�(�(�����0���$�/�/�/�/�
�y�E�K�����4�0�0�0�0�

�Ir3c�F��tj����fd���}|S)zDDecorator which converts OSError into NoSuchProcess or AccessDenied.c�z��	�|g|�Ri|��S#t$r!}t||j|j����d}~wwxYw)Nrq)rOrsr�r.)r/�args�kwargsrT�funs    �r4�wrapperz wrap_exceptions.<locals>.wrapper�se���	F��3�t�-�d�-�-�-�f�-�-�-���	F�	F�	F�!�#�4�8�$�*�E�E�E�E�����	F���s��
:�5�:��	functools�wraps�rxrys` r4�wrap_exceptionsr~�s?����_�S���F�F�F�F���F��Nr3c�F��tj����fd���}|S)z�Workaround for https://github.com/giampaolo/psutil/issues/875.
    See: https://stackoverflow.com/questions/4457745#4457745.
    c�T��d}d}t|��D]a}	�|g|�Ri|��cS#t$rD}|}|jtkr,t	j|��t
|dzd��}Yd}~�Y�d}~wwxYwd��||��}t|j	|j
|����)N�-C��6?�!r5�{�G�z�?zH{} retried {} times, converted to AccessDenied as it's stillreturning {}rM)r�WindowsErrorrQ�ERROR_PARTIAL_COPY�time�sleep�min�formatrr�r.)	r/rvrw�delay�times�_rTrNrxs	        �r4ryz)retry_error_partial_copy.<locals>.wrapper�s���������u���		�		�A�
��s�4�1�$�1�1�1�&�1�1�1�1�1���
�
�
����<�#5�5�5��J�u�%�%�%����	�4�0�0�E��H�H�H�H������

����
�!�6�#�u�c�2�2�	��t�x�d�j�c�B�B�B�Bs�&�
A4�9A/�.A/�/A4rzr}s` r4�retry_error_partial_copyr��s?���
�_�S���C�C�C�C���C�&�Nr3c��eZdZdZgd�Zd�Zd�Zd�Zed���Z	d�Z
eed�����Zee
d	�����Zee
d
�����Zd�Zd�Zed
���Zed���Zd�Zed���Zed���Zed)d���Zed���Zed���Zed���Zed���Zed���Zed���Zed���Zee
d�����Zed���Z ed*d���Z!ed���Z"ed ���Z#ed!���Z$ed"���Z%ed#���Z&ed$���Z'ed%���Z(ed&���Z)ed'���Z*ed(���Z+dS)+�Processz1Wrapper class around underlying C implementation.)r�r.�_ppid�_cachec�0�||_d|_d|_dSr�)r�r.r�)r/r�s  r4r0zProcess.__init__s�������
���
�
�
r3c�n�|j�|��|j�|��dSr�)�
_proc_info�cache_activate�exer:s r4�
oneshot_enterzProcess.oneshot_enter	s4����&�&�t�,�,�,������%�%�%�%�%r3c�n�|j�|��|j�|��dSr�)r��cache_deactivater�r:s r4�oneshot_exitzProcess.oneshot_exit
s4����(�(��.�.�.���!�!�$�'�'�'�'�'r3c��tj|j��}t|��tt��ksJ�|S)zOReturn multiple information about this process as a
        raw tuple.
        )r��	proc_infor�r��	pinfo_map�r/r�s  r4r�zProcess._proc_infos7��
�n�T�X�&�&���3�x�x�3�y�>�>�)�)�)�)��
r3c��|jdkrdS|jdkrdStj�|�����S)zbReturn process name, which on Windows is always the final
        part of the executable.
        rzSystem Idle Processr>�System)r�r�ru�basenamer�r:s r4r�zProcess.namesC���8�q�=�=�(�(��8�q�=�=��8��w������
�
�+�+�+r3c��tre	tj|j��}nc#t$r=}|jdkr,t
d|z��t|j|j����d}~wwxYwtj|j��}tst|��}|�d��rt|��S|S)N�z%r translated into AccessDeniedr�)
�PYPYr��proc_exer�r�rir
rr.rr��
startswithr�)r/r�rTs   r4r�zProcess.exe&s����	*�
��m�D�H�-�-�����
�
�
��9��?�?��;�c�A�B�B�B�&�t�x���<�<�<������

�����-���)�)�C��	%���$�$�C��>�>�$���	)�#�C�(�(�(��
s�#�
A*�8A%�%A*c�V�tjtjkr`	tj|jd���}n^#t
$r6}t
|��rtj|jd���}n�Yd}~n#d}~wwxYwtj|jd���}tr|Sd�|D��S)NT)�use_pebFc�,�g|]}t|����Sr2r)r�r�s  r4r�z#Process.cmdline.<locals>.<listcomp>Ms ��2�2�2��M�!�$�$�2�2�2r3)r��WINVER�WINDOWS_8_1�proc_cmdliner�rOrPr)r/r�rTs   r4�cmdlinezProcess.cmdline;s����;�$�*�*�*�
��'���$�?�?�?�����
�
�
�$�S�)�)���+�D�H�e�D�D�D�C�C���C�C�C�C�����
�����#�D�H�d�;�;�;�C��	3��J�2�2�c�2�2�2�2s�8�
A8�,A3�3A8c���tj|j��}|r3ts,t	|t
��sJt
|�����tt|����Sr�)	r��proc_environr�rr�rr�rr�)r/�ustrs  r4�environzProcess.environOs_��� ���*�*���	9��	9��d�G�,�,�8�8�d�4�j�j�8�8�8�"�=��#6�#6�7�7�7r3c��	t��|jS#t$rt|j|j���wxYwr�)�ppid_mapr��KeyErrorr	r.r:s r4�ppidzProcess.ppidWsG��	6��:�:�d�h�'�'���	6�	6�	6����$�*�5�5�5�	6���s	��%Ac
��	tj|j��S#t$r�}t	|��r�|���}|td|td|td|td|td|td|td|td|td	|td
f
cYd}~S�d}~wwxYw)NrLrNrPrRrTrVrXrZr\r^)r��proc_memory_infor�rOrPr�r�)r/rT�infos   r4�_get_raw_meminfozProcess._get_raw_meminfo]s��	��(���2�2�2���	�	�	� ��%�%�
����(�(����#4�5�6���;�/�0���6�*�+���#4�5�6���<�0�1���#8�9�:���#3�4�5���:�.�/���?�3�4���=�1�2��������
�����#	���s!��
D	�CD�=D	�D�D	c�f�|���}|d}|d}t||f|z�S)Nr5rC)r�rl)r/�trmrns    r4�memory_infozProcess.memory_infoss:��

�!�!�#�#����d����d���c�3�Z�!�^�$�$r3c��|���}tj|j��}|t	��z}t||fz�Sr�)r�r��proc_memory_ussr�r�rr)r/�	basic_memrss   r4�memory_full_infozProcess.memory_full_info}sE���$�$�&�&�	��"�4�8�,�,���{�}�}�����c�V�+�,�,r3c#�$K�	tj|j��}|D]C\}}}}t|��}tst|��}t
|��}||||fV��DdS#t$r }t||j|j	���d}~wwxYwr�)
r��proc_memory_mapsr�r�rr��hexrOrsr.)r/�raw�addr�permrurmrTs       r4�memory_mapszProcess.memory_maps�s�����	.��'���1�1�C�*-�
.�
.�%��d�D�#�'��-�-���/�(��.�.�D��4�y�y���T�4��-�-�-�-�-�
.�
.���	=�	=�	=�"�#�t�x���<�<�<�����	=���s�A%�%
B�/B
�
Bc�4�tj|j��Sr�)r��	proc_killr�r:s r4�killzProcess.kill�s���~�d�h�'�'�'r3c�>�|tjkrtj|j��dS|ttdt
����ttdt
����fvrtj|j|��dSd}t|���)N�CTRL_C_EVENT�CTRL_BREAK_EVENTzPonly SIGTERM, CTRL_C_EVENT and CTRL_BREAK_EVENT signals are supported on Windows)
�signal�SIGTERMr�r�r�rl�objectr�r�r�)r/�sigrNs   r4�send_signalzProcess.send_signal�s����&�.� � ��N�4�8�$�$�$�$�$�
��F�N�F�H�H�5�5��F�.����9�9�
�
�
�
�G�D�H�c�"�"�"�"�"�+�
��S�/�/�!r3Nc�8�|�
tj}nt|dz��}ttdtj��}|�
|��|znd}	tj|j|��}n@#tj$rt||j|j���tj	$rd}YnwxYwd}	t|j��s|S|r*|��|krt||j|j����t	j|��t|dzd��}�j)Ni��	monotonicr�Trqr5r�)
r��INFINITEr�rlr��	proc_waitr�r
r.�TimeoutAbandoned�
pid_existsr�r�)r/�timeout�cext_timeout�timer�stop_at�	exit_coder�s       r4�waitzProcess.wait�sA���?��=�L�L��w��~�.�.�L���k�4�9�5�5��'.�':�%�%�'�'�G�#�#���	���t�x��>�>�I�I���"�	@�	@�	@� ��$�(�D�J�?�?�?��$�		�		�		��I�I�I�		������	)��d�h�'�'�
!� � ��
M�5�5�7�7�g�-�-�$�W�$�(���L�L�L�L��J�u�������	�4�(�(�E�
	)s�A/�/:B,�+B,c��|jdvrdStj|j��\}}t|��dzt|��zS)N�rr>zNT AUTHORITY\SYSTEMr�)r�r��
proc_usernamer�)r/�domainras   r4rEzProcess.username�sK���8�v���)�)��)�$�(�3�3�����V�$�$�t�+�m�D�.A�.A�A�Ar3c���	tj|j��\}}}|S#t$r?}t	|��r*|���tdcYd}~S�d}~wwxYw)Nr=)r��
proc_timesr�rOrPr�r�)r/rarb�createdrTs     r4r=zProcess.create_time�s���	�$(�O�D�H�$=�$=�!�D�&�'��N���	�	�	� ��%�%�
C����(�(��=�)A�B�B�B�B�B�B�B������	���s �!�
A*�3A%�A*�$A%�%A*c�L�|���tdS)Nr?)r�r�r:s r4r?zProcess.num_threads�s����� � ��=�!9�:�:r3c��tj|j��}g}|D]1\}}}tj|||��}|�|���2|Sr�)r��proc_threadsr�r�pthreadr�)r/r�r!�	thread_id�utime�stime�ntuples       r4�threadszProcess.threads�s\���#�D�H�-�-����'.�	#�	#�#�I�u�e��_�Y��u�=�=�F��N�N�6�"�"�"�"��r3c�0�	tj|j��\}}}na#t$rT}t	|��s�|���}|td}|td}Yd}~nd}~wwxYwtj||dd��S)Nr;r<r�)	r�r�r�rOrPr�r�r�	pcputimes)r/rarbr�rTr�s      r4r�zProcess.cpu_times�s���	4�$(�O�D�H�$=�$=�!�D�&�'�'���	4�	4�	4�$�S�)�)�
���?�?�$�$�D��	�+�.�/�D��)�M�2�3�F�F�F�F�F�F�����	4����� ��v�s�C�8�8�8s� �
A>�A
A9�9A>c�:�tj|jd��dS)NT�r��proc_suspend_or_resumer�r:s r4�suspendzProcess.suspends���#�D�H�d�3�3�3�3�3r3c�:�tj|jd��dS)NFr�r:s r4�resumezProcess.resumes���#�D�H�e�4�4�4�4�4r3c���|jdvrt|j|j���tj|j��}ttj�|����S)Nr�)	r�rr.r��proc_cwdr�r�ru�normpath)r/rus  r4�cwdzProcess.cwdsV���8�v����t�x���4�4�4��}�T�X�&�&���R�W�-�-�d�3�3�4�4�4r3c�J�|jdvrgSt��}tj|j��}|D]`}t	|��}t|��r@tst|��}tj	|d��}|�
|���at|��S)Nr�r+)r�r�r��proc_open_filesr�rrr�r�	popenfiler�r�)r/r��raw_file_names�_filer�s     r4�
open_fileszProcess.open_filess����8�v����I��e�e��
�-�d�h�7�7��#�	 �	 �E�$�U�+�+�E��U�#�#�
 ��1�)�%�0�0�E� �*�5�"�5�5�����������C�y�y�r3�inetc�.�t||j���S)N)r�)r�r�)r/r�s  r4�connectionszProcess.connections%s���t�$�(�3�3�3�3r3c�d�tj|j��}t�t	|��}|Sr�)r��proc_priority_getr��enumr.�r/�values  r4�nice_getzProcess.nice_get)s*���&�t�x�0�0�����U�O�O�E��r3c�6�tj|j|��Sr�)r��proc_priority_setr�rs  r4�nice_setzProcess.nice_set0s���%�d�h��6�6�6r3c�d�tj|j��}t�t	|��}|Sr�)r��proc_io_priority_getr�rr8r�s  r4�
ionice_getzProcess.ionice_get4s*���'���1�1�����S�/�/�C��
r3c��|rd}t|���|ttttfvrtd|z���t
j|j|��dS)Nz&value argument not accepted on Windowsz%s is not a valid priority)	�	TypeErrorr#r$r%r&r�r��proc_io_priority_setr�)r/�ioclassrrNs    r4�
ionice_setzProcess.ionice_set;sj���	!�:�C��C�.�.� ������	
�
�
��9�G�C�D�D�D��!�$�(�G�4�4�4�4�4r3c	��	tj|j��}n�#t$r�}t	|��s�|���}|td|td|td|td|td|tdf}Yd}~nd}~wwxYwt|�S)NrArBrDrFrHrJ)r��proc_io_countersr�rOrPr�r�rx)r/r�rTr�s    r4�io_counterszProcess.io_countersIs���
	��'���1�1�C�C���	�	�	�$�S�)�)�
���?�?�$�$�D��Y�{�+�,��Y�{�+�,��Y�{�+�,��Y�{�+�,��Y�0�1�2��Y�0�1�2�
�C�C�C�C�C�C�����		�����C�y�s��
C�BB=�=Cc�h�tj|j��}|rtjStjSr�)r��proc_is_suspendedr�r�STATUS_STOPPED�STATUS_RUNNING)r/�	suspendeds  r4r�zProcess.status[s.���*�4�8�4�4�	��	*��)�)��)�)r3c�P�d�}tj|j��}||��S)Nc�:���fd�td��D��S)Nc�$��g|]}d|z�z�
|��
S)rr2)r��ir�s  �r4r�zBProcess.cpu_affinity_get.<locals>.from_bitmask.<locals>.<listcomp>fs&���9�9�9�!�Q�!�V�q�L�9�A�9�9�9r3�@r)r�s`r4�from_bitmaskz.Process.cpu_affinity_get.<locals>.from_bitmaskes#���9�9�9�9�u�R�y�y�9�9�9�9r3)r��proc_cpu_affinity_getr�)r/r"�bitmasks   r4�cpu_affinity_getzProcess.cpu_affinity_getcs5��	:�	:�	:��,�T�X�6�6���|�G�$�$�$r3c�R�d�}tttt��������}|D]F}||vr@t	|t
tf��std|z���td|z����G||��}tj
|j|��dS)Nc�L�|std|z���d}|D]
}|d|zz}�|S)Nzinvalid argument %rrr5)r�)�ls�out�bs   r4�
to_bitmaskz,Process.cpu_affinity_set.<locals>.to_bitmaskmsF���
=� �!6��!;�<�<�<��C��
�
���q�!�t�����Jr3z&invalid CPU %r; an integer is requiredzinvalid CPU %r)r�rr�r�r�r�rrr�r��proc_cpu_affinity_setr�)r/rr+�allcpus�cpur$s      r4�cpu_affinity_setzProcess.cpu_affinity_setks���	�	�	��u�S����1�1�2�2�3�3���	=�	=�C��'�!�!�!�#��T�{�3�3�=�#�@�3�F����%�%5��%;�<�<�<�
"��*�U�#�#���"�4�8�W�5�5�5�5�5r3c���	tj|j��S#t$r?}t	|��r*|���tdcYd}~S�d}~wwxYw)Nr9)r��proc_num_handlesr�rOrPr�r�)r/rTs  r4r9zProcess.num_handles�sv��	��(���2�2�2���	�	�	� ��%�%�
C����(�(��=�)A�B�B�B�B�B�B�B������	���s ��
A$�3A�A$�A�A$c�v�|���td}tj|d��S)Nr:r)r�r�r�pctxsw)r/r:s  r4�num_ctx_switcheszProcess.num_ctx_switches�s-�����(�(��>�)B�C���~�l�A�.�.�.r3r�)r),r/r0r1re�	__slots__r0r�r�rr�r�r~r�r�r�r�r�r�r�r�r�r�r�r�rEr=r?r�r�r�r�r�rrr	rrrrr�r%r/r9r4r2r3r4r�r��s�������;�;�3�3�3�I����&�&�&�(�(�(�������
,�
,�
,��������_��&��3�3����_�3�$��8�8����_�8�6�6�6����,�%�%��_�%��-�-��_�-�
.�
.�
.��(�(��_�(��"�"��_�"� �()�()�()��_�()�T�B�B��_�B��	�	��_�	��;�;��_�;�����_���
9�
9��_�
9��4�4��_�4��5�5��_�5���5�5����_�5�����_��$�4�4�4��_�4�����_���7�7��_�7�����_���5�5��_�5�����_��"�*�*��_�*��%�%��_�%��6�6��_�6�2����_���/�/��_�/�/�/r3r�r2)r+)NN)�rerfrir{r�r��sysr��collectionsrr�rrrrr	r
rrr
rrrrr�_compatrrrrrrrrrrrrr��ImportErrorrTr��lowerr��getwindowsversionrN�RuntimeErrorr�__extra__all__r'r��builtin_module_namesr�r(�IntEnumr,�MIB_TCP_STATE_ESTAB�CONN_ESTABLISHED�MIB_TCP_STATE_SYN_SENT�
CONN_SYN_SENT�MIB_TCP_STATE_SYN_RCVD�
CONN_SYN_RECV�MIB_TCP_STATE_FIN_WAIT1�CONN_FIN_WAIT1�MIB_TCP_STATE_FIN_WAIT2�CONN_FIN_WAIT2�MIB_TCP_STATE_TIME_WAIT�CONN_TIME_WAIT�MIB_TCP_STATE_CLOSED�
CONN_CLOSE�MIB_TCP_STATE_CLOSE_WAIT�CONN_CLOSE_WAIT�MIB_TCP_STATE_LAST_ACK�
CONN_LAST_ACK�MIB_TCP_STATE_LISTEN�CONN_LISTEN�MIB_TCP_STATE_CLOSING�CONN_CLOSING�MIB_TCP_STATE_DELETE_TCB�PSUTIL_CONN_NONE�	CONN_NONEr�r.�globalsrb�__members__r#r$r%r&r8r	r�r`rfrl�_fieldsrrrtr�rvrxr�r�r�r�r��disk_io_countersr�r�r�r�r�r�r�r�r�r�r�r�rrrrrrr!r"r&�pidsr�r�rPrsr~r�r�r2r3r4�<module>r^s���
'�&�������������	�	�	�	�
�
�
�
�
�
�
�
�����"�"�"�"�"�"�������������"�"�"�"�"�"�!�!�!�!�!�!�"�"�"�"�"�"�#�#�#�#�#�#�������#�#�#�#�#�#�������"�"�"�"�"�"�������+�+�+�+�+�+�(�(�(�(�(�(�"�"�"�"�"�"�������������������������������8�8�8�8�8�8�8�8�8�8�8�8�0�0�0�0�0�0�0�0�0�0�0�0�2�2�2�2�2�2�4�4�4�4�4�4��)�)�)�)�)�)�)��������C�������#�#�$5�6�6�
�!�C�!�#�#�A�&��*�*�D���K�K���)�)���l�3����
��������� ���K�K�K�K��D�

�
�
��$�����S�-�-���<��G�G� �D�L��9�b�/�B�B�M��#�G�	��g�6����!6����!6�� �'�"8�� �'�"8�� �'�"8���w�1��!�7�#:����!6���w�2���� 4��!�?���7�,��� ��:�:�:�:�:�4�<�:�:�:��G�I�I���X�)�*�*�*��<��N��J��M��K�K������T�\�����G�I�I���Z�+�,�,�,��D�
�
�
���
���
��a�
���	
�
��
���

��a�
��a�
��a�
��a�
��B�
��B�
��B�
��b�
�
��
� �B�!
�"�r�#
�$��%
�&�2�'
�(�R�)
�*�"�+
�,��-
�	�B
�J�{�E�E�E�
G�
G�	�	�
�7�M�M�M�N�N���z�
�
5�
5�
5�6�6���:�j�$�,��":�;�;���
�?�V�U�O�<�<�
��J������-�*?�!@�!@�@�
B�
B�	��j��7�7�7�8�8����3����	0�	0���	0�
5�
5�
5�	���	���
4�
4�
4�;�;�;�>�(��	:�	:�	:�4�4�4�	�	�	����$�$�$�
"�"�"�
���>�>�>���9�9�9�(����8���A�A�A����>�>�>�2�����	�	�	�"O�O�O����@�@�@�@�@�@�@�@�^�y��
�_�
��=��
�
�
� ����
�
�
����8U/�U/�U/�U/�U/�U/�U/�U/�U/�U/s�<C�D.�A!D)�)D.