Viewing File: /opt/hc_python/lib/python3.12/site-packages/psutil/__pycache__/_pswindows.cpython-312.pyc

�

`�*j*����dZddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddl	mZddl
m
Z
ddl
mZddl
mZdd	l
mZdd
l
mZddl
mZddl
mZdd
l
mZddl
mZddl
mZddl
mZddl
mZddlmZddlmZddlmZddlmZddlmZddlmZ	ddl	mZ gd�Z)dZ*d Z+d!ejXvZ-ej\d"d#d$i�Z/e/j`Z0e jbe
jde jfe
jhe jje
jle jne
jpe jre
jte jve
jxe jze
j|e j~e
j�e j�e
j�e j�e
j�e j�e
j�e j�e*e j�e
j�i
ZJGd%�d&ej\�ZKeL�j�eKj��Gd'�d(ej\�ZOeL�j�eOj��ePdtid)d�d*d�d+d,�d-d.�d/d0�d1d2�d3d�d4d5�d6d7�d8d9�d:d;�d<d=�d>d?�d@dA�dBdC�dDdE�dFdG�dHdI�dJdK�dLdM�dNdO�dPdQ��ZQej�dR�S�dT��ZSedU��ZTdV�ZUdW�ZVe j�ZWe j�ZXe j�ZYdX�ZZdY�Z[dZ�Z\d[�Z]d\�Z^d]�Z_d^�Z`d_�Zad`abej��Zdda�Zedb�Zfdudc�Zgdd�Zhde�Zidf�Zjdg�Zkdaldh�Zmdi�Zndj�Zodk�ZpGdl�dm�Zqe j�Zre j�Zse j�Ztdn�Zudvdo�Zvdp�Zwdq�ZxGdr�ds�Zyy#e!$rWZ"e#e"�jI�jKd�r,ejL�ddkrdZ'e'dz
Z'e'dz
Z'e(e'�e"��dZ"["wwxYw)wz Windows platform implementation.�N�)�_common)�_ntuples)�ENCODING)�AccessDenied)�
NoSuchProcess)�TimeoutExpired)�	conn_tmap)�conn_to_ntuple)�debug)�
isfile_strict)�memoize)�memoize_when_activated)�parse_environ_block)�
usage_percent)�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�$�eZdZeZeZeZeZeZeZy)�PriorityN)	�__name__�
__module__�__qualname__rrrrrr���B/opt/hc_python/lib64/python3.12/site-packages/psutil/_pswindows.pyr'r'es&��"=��"=��-��-��1��5�r,r'c��eZdZdZdZdZdZy)�
IOPriorityrr��N)r(r)r*rrrrr+r,r-r/r/qs���N��J��M��Kr,r/�num_handles�ctx_switches�	user_timer0�kernel_timer1�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�i)�maxsizec���|jd�r|Sdj|jd�dd�}|dvrJdj|jd�dd�}ddj|jd�dd�z}n;|jd�r|jd�d}ntj|�}|t|�d}tjj||�S)	z�Convert paths using native DOS format like:
        "\Device\HarddiskVolume1\Windows\systemew\file.txt" or
        "\??\C:\Windows\systemew\file.txt"
    into:
        "C:\Windows\systemew\file.txt".
    z\\�\Nr1>�\??\UNC�\Device\Mupr9z\??\r0)�
startswith�join�split�cext�QueryDosDevice�len�os�path)�s�rawdrive�driveletter�	remainders    r-�convert_dos_pathrj�s���	�|�|�F�����y�y������r��*�+�H��1�1��9�9�Q�W�W�T�]�2�A�.�/���t�y�y������q��);�<�<��	�	�	�X�	&��g�g�d�m�A�&���)�)�(�3���#�h�-�/�"�I�
�7�7�<�<��Y�/�/r,c�*�tj�S�N)ra�getpagesizer+r,r-rmrm�s������r,c��tj�}|\}}}}|}|}|}||z
}t||z
|d��}	tj|||	||�S)z&System virtual memory as a namedtuple.r��round_)ra�virtual_memr�ntp�svmem)
�mem�totphys�	availphys�_totsys�	_availsys�total�avail�free�used�percents
          r-�virtual_memoryr~�s_��
�
�
�
�C�-0�*�G�Y����E��E��D��5�=�D��U�U�]�U�1�=�G��9�9�U�E�7�D�$�7�7r,c��tj�}|d}|d}||z
}|dkDr&tj�}td|z|z�}nd}d}||z
}t	|d�}tj||||dd�S)z=Swap system memory as a (total, used, free, sin, sout) tuple.rr0g{�G�z�?�r)rarq�swap_percent�int�roundrr�sswap)rt�
total_phys�total_systemry�percentswapr|r{r}s        r-�swap_memoryr��s���
�
�
�
�C��Q��J��q�6�L�
�:�%�E�

�q�y��'�'�)���4�+�%��-�.�������4�<�D��K��#�G��9�9�U�D�$���A�6�6r,c���t|t�r|jtd��}t	j
|�\}}}t
||d��}tj||||�S)z'Return disk usage associated with path.�strict)�errorsrro)	�
isinstance�bytes�decoderra�
disk_usagerrr�
sdiskusage)reryr|r{r}s     r-r�r��sX���$����{�{�8�H�{�5������-��E�4���D�%��2�G��>�>�%��t�W�5�5r,c�v�tj|�}|D�cgc]}tj|���c}Scc}w)zReturn disk partitions.)ra�disk_partitionsrr�	sdiskpart)�all�rawlist�xs   r-r�r��s3���"�"�3�'�G�'.�/�w�!�C�M�M�1��w�/�/��/s�6c��tj�\}}}tjt	tj
��D�cgc]
}t
|���c}�}tj||||j|j�Scc}w)z)Return system CPU times as a named tuple.)	ra�	cpu_timesrr�	scputimes�zip�
per_cpu_times�sum�	interrupt�dpc)�user�system�idle�n�
percpu_summeds     r-r�r�sz�����)��D�&�$��M�M��t�1�1�3�4�	5�4�Q�#�a�&�4�	5��M��=�=��f�d�M�3�3�]�5F�5F����
6s�Bc��g}tj�D]2\}}}}}tj|||||�}|j	|��4|S)z6Return system per-CPU times as a list of named tuples.)rar�rrr��append)�retr�r�r�r�r��items       r-r�r�sO��
�C�.2�.@�.@�.B�*��f�d�I�s��}�}�T�6�4��C�@���
�
�4��/C��Jr,c�*�tj�S)z0Return the number of logical CPUs in the system.)ra�cpu_count_logicalr+r,r-r�r�s���!�!�#�#r,c�*�tj�S)z-Return the number of CPU cores in the system.)ra�cpu_count_coresr+r,r-r�r�s�����!�!r,c�h�tj�\}}}}d}tj||||�S)zReturn CPU statistics.r)ra�	cpu_statsrr�	scpustats)r3�
interrupts�_dpcs�syscalls�soft_interruptss     r-r�r�#s1��04���0@�-�L�*�e�X��O��=�=��z�?�H�M�Mr,c��tj�\}}d}tjt	|�|t	|��gS)zMReturn CPU frequency.
    On Windows per-cpu frequency is not supported.
    r�)ra�cpu_freqrr�scpufreq�float)�curr�max_�min_s   r-r�r�*s6������J�D�$��D��L�L��t��d�E�$�K�8�9�9r,Fc�N�tj�}td�|D��S)Nc3�4K�|]}t|d����y�w)r0N)r�)�.0�loads  r-�	<genexpr>z#_getloadavg_impl.<locals>.<genexpr>:s����6�I�D��t�Q��I�s�)ra�
getloadavg�tuple)�	raw_loadss r-�_getloadavg_implr�7s�����!�I��6�I�6�6�6r,c��tr
t�St5tstj�daddd�t�S#1swYt�SxYw)z�Return the number of processes in the system run queue averaged
    over the last 1, 5, and 15 minutes respectively as a tuple.
    TN)�_loadavg_initializedr��_lockra�init_loadavg_counterr+r,r-r�r�=sI����!�!�	�#��%�%�'�#'� �
�
���
�
���s�A�Ac���t|\}}tj|||�}t�}|D];}|\}}}	}
}}}
t	|||	|
||t
|dk(r|
nd��}|j
|��=t|�S)z�Return socket connections.  If pid == -1 return system-wide
    connections (as opposed to connections opened by one process only).
    r%N)�pid)r
ra�net_connections�setr�TCP_STATUSES�add�list)�kind�_pid�families�typesr�r�r��fd�fam�type�laddr�raddr�statusr��nts               r-r�r�Ss��� ��o�O�H�e��"�"�4��5�9�G�

�%�C���37�0��C��u�e�V�S�
���������r�z��t�	
��	��������9�r,c���i}tj�}|j�D]M\}}|\}}}}ttd�rt	j
|�}t
j||||d�||<�O|S)z)Get NIC stats (isup, duplex, speed, mtu).�	NicDuplex�)ra�net_if_stats�items�hasattrrr�rr�	snicstats)r��rawdict�namer��isup�duplex�speed�mtus        r-r�r�jsr��
�C����!�G��}�}����e�#(� ��f�e�S��7�K�(��&�&�v�.�F��M�M�$���s�B�?��D�	�	'�
�Jr,c�*�tj�S)zsReturn network I/O statistics for every network interface
    installed on the system as a dict of raw tuples.
    )ra�net_io_countersr+r,r-r�r�vs�����!�!r,c�*�tj�S)z,Return the addresses associated to each NIC.)ra�net_if_addrsr+r,r-r�r�}s������r,c��tj�\}}}}|dk(}t|dz�}t|dz�}|ry|s|rtj}n|dk(rtj
}t
j|||�S)zReturn battery information.r�r>Nr%)ra�sensors_battery�boolr�POWER_TIME_UNLIMITED�POWER_TIME_UNKNOWNrr�sbattery)�
acline_status�flagsr}�secsleft�
power_plugged�
no_battery�chargings       r-r�r��s{��
/3�.B�.B�.D�+�M�5�'�8�!�Q�&�M��e�c�k�"�J��E�A�I��H������/�/��	�R���-�-���<�<���=�9�9r,c��tj�tj�z
}t|tz
�dkrtS|a|S)z�The system boot time expressed in seconds since the epoch. This
    also includes the time spent during hybernate / suspend.
    r)�timera�uptime�abs�_last_btime)r�s r-�	boot_timer��s<���)�)�+����
�
%�C�
�3�����"������
r,c��g}tj�}|D]2}|\}}}tj|d||d�}|j	|��4|S)z:Return currently connected users as a list of namedtuples.N)ra�usersrr�suserr�)�retlistr�r�r��hostname�tstampr�s       r-r�r��sQ���G��j�j�l�G���!%���h��
�Y�Y�t�T�8�V�T�
:�����r����Nr,c#�`K�tj�D]\}}t||����y�w)z*Yields a list of WindowsService instances.N)ra�winservice_enumerate�WindowsService)r��display_names  r-rr�s+����"�7�7�9���l��T�<�0�0�:�s�,.c�N�t|d�}|j�d|_|S)zBOpen a Windows service and return it as a WindowsService instance.Nr)r�
_query_config�
_display_name)r��services  r-rr�s)���T�4�(�G�#�1�1�3�N�C�G���Nr,c��eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
ejd	��Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zy)rz(Represents an installed Windows service.c� �||_||_yrl)�_namer	)�selfr�rs   r-�__init__zWindowsService.__init__�s����
�)��r,c�p�d|j�d|j�d�}|jj�|��S)Nz(name=z, display_name=�))r
r	�	__class__r()r�detailss  r-�__str__zWindowsService.__str__�s;���4�:�:�.���8J�8J�7M�Q�O���.�.�)�)�*�7�)�4�4r,c�B�d|j��dt|��d�S)N�<z at �>)r�id�rs r-�__repr__zWindowsService.__repr__�s"���4�<�<�>�"�$�r�$�x�j��2�2r,c�`�t|t�stS|j|jk(Srl)r�r�NotImplementedr
�r�others  r-�__eq__zWindowsService.__eq__�s'���%��0�!�!��z�z�U�[�[�(�(r,c��||k(Srlr+rs  r-�__ne__zWindowsService.__ne__�s���5�=� � r,c��|j�5tj|j�\}}}}ddd�t	��S#1swY�xYw)N)r�binpath�username�
start_type)�_wrap_exceptionsra�winservice_query_configr
�dict)rrr#r$r%s     r-rzWindowsService._query_config�sV��
�
"�
"�
$��,�,�T�Z�Z�8�
8�L�'�8�Z�%�
�%���!�	
�	
�%�
$�s�%A
�
Ac��|j�5tj|j�\}}ddd�dk(rd}t	|��S#1swY�xYw)Nr)r�r�)r&ra�winservice_query_statusr
r()rr�r�s   r-�
_query_statuszWindowsService._query_status�sM��
�
"�
"�
$��6�6�t�z�z�B�K�F�C�%��!�8��C��6�s�+�+�	%�
$�s�#A�Ac#�K�	d��y#t$rs}|j}t|�rd|�d�}td||��|�|jt
jt
jhvrd|�d�}td||��|��d}~wwxYw�w)z{Ctx manager which translates bare OSError and WindowsError
        exceptions into NoSuchProcess and AccessDenied.
        Nzservice z( is not querable (not enough privileges)�r�r��msgz does not exist)	�OSErrorr
�is_permission_errr�winerrorra�ERROR_INVALID_NAME�ERROR_SERVICE_DOES_NOT_EXISTr)r�errr�r.s    r-r&zWindowsService._wrap_exceptions�s�����
	����	��:�:�D� ��%��t�h�&N�O��#�t�$�C�@�c�I�����'�'��1�1�"��!����8��#��4�S�A�s�J���	�s%�B�	�B�	B�A.B�B�Bc��|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
rs r-r�zWindowsService.names��
�z�z�r,c��|jS)z_The service display name. The value is cached when this class
        is instantiated.
        )r	rs r-rzWindowsService.display_names���!�!�!r,c�(�|j�dS)zwThe fully qualified path to the service binary/exe file as
        a string, including command line arguments.
        r#�rrs r-r#zWindowsService.binpath"s���!�!�#�I�.�.r,c�(�|j�dS)z,The name of the user that owns this service.r$r8rs r-r$zWindowsService.username(s���!�!�#�J�/�/r,c�(�|j�dS)zRA string which can either be "automatic", "manual" or
        "disabled".
        r%r8rs r-r%zWindowsService.start_type,s���!�!�#�L�1�1r,c�(�|j�dS)zzThe process PID, if any, else None. This can be passed
        to Process class to control the service's process.
        r��r+rs r-r�zWindowsService.pid4s���!�!�#�E�*�*r,c�(�|j�dS)zService status as a string.r�r<rs r-r�zWindowsService.status:s���!�!�#�H�-�-r,c�H�tj|j��S)zService long description.)ra�winservice_query_descrr�rs r-�descriptionzWindowsService.description>s���*�*�4�9�9�;�7�7r,c���|j�}|j|j��|j�|d<|j	�|d<|j�|d<|S)zUUtility method retrieving all the information above as a
        dictionary.
        r�rr@)r�updater+r�rr@)r�ds  r-�as_dictzWindowsService.as_dictDsa��
��� ��	����#�#�%�&��I�I�K��&�	� �-�-�/��.���+�+�-��-���r,N)r(r)r*�__doc__rrrrr!rr+�
contextlib�contextmanagerr&r�rr#r$r%r�r�r@rDr+r,r-rr�so��2�*�5�3�)�!�
�,�������0�"�/�0�2�+�.�8�	r,rc��t|t�sJ|��t|t�xs,|jtj
tjhvS)z*Return True if this is a permission error.)r�r/�PermissionErrorr1ra�ERROR_ACCESS_DENIED�ERROR_PRIVILEGE_NOT_HELD)�excs r-r0r0�sN���c�7�#�(�S�(�#��c�?�+��s�|�|�� � ��%�%�@�0�r,c��t|t�sJ|��t|�r
t||��St|t�r
t||��S|�)z3Convert OSError into NoSuchProcess or AccessDenied.�r�r�)r�r/r0r�ProcessLookupErrorr)rLr�r�s   r-�convert_oserrorrP�sI���c�7�#�(�S�(�#������$�/�/��#�)�*���4�0�0�

�Ir,c�B��tj���fd��}|S)zDDecorator which converts OSError into NoSuchProcess or AccessDenied.c���	�|g|��i|��S#t$r(}t||j|j��|�d}~wwxYw)NrN)r/rPr�r
)r�args�kwargsr4�funs    �r-�wrapperz wrap_exceptions.<locals>.wrapper�sI���	O��t�-�d�-�f�-�-���	O�!�#�4�8�8�$�*�*�E�3�N��	O�s��	A�#;�A��	functools�wraps�rUrVs` r-�wrap_exceptionsr[�s)����_�_�S��O��O��Nr,c�B��tj���fd��}|S)z�Workaround for https://github.com/giampaolo/psutil/issues/875.
    See: https://stackoverflow.com/questions/4457745#4457745.
    c�@��d}d}t|�D]}	�|g|��i|��cS��d|�d��}t|j|j|���#t$rD}|}|jtk(r)t	j
|�t
|dzd�}Yd}~���d}~wwxYw)N�-C��6?�!r0�{�G�z�?z	 retried z: times, converted to AccessDenied as it's still returning r-)
�ranger/r1�ERROR_PARTIAL_COPYr��sleep�minrr�r
)	rrSrT�delay�times�_r4r.rUs	        �r-rVz)retry_error_partial_copy.<locals>.wrapper�s���������u��A�
��4�1�$�1�&�1�1���e�9�U�G�$�"�e�
%�	��t�x�x�d�j�j�c�B�B���
����<�<�#5�5��J�J�u�%����	�4�0�E����

�s�A�	B�9B�B�BrWrZs` r-�retry_error_partial_copyrh�s)���
�_�_�S��C��C�&�Nr,c�@�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)d��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+y)+�Processz1Wrapper class around underlying C implementation.)�_cacher
�_ppidr�c�.�||_d|_d|_yrl)r�r
rl)rr�s  r-rzProcess.__init__�s�������
���
r,c�p�|jj|�|jj|�yrl)�
_proc_info�cache_activate�exers r-�
oneshot_enterzProcess.oneshot_enter�s&�����&�&�t�,�������%r,c�p�|jj|�|jj|�yrl)ro�cache_deactivaterqrs r-�oneshot_exitzProcess.oneshot_exit�s&�����(�(��.����!�!�$�'r,c�~�tj|j�}t|�tt�k(sJ�|S)zOReturn multiple information about this process as a
        raw tuple.
        )ra�	proc_infor�rc�	pinfo_map�rr�s  r-rozProcess._proc_info�s1��
�n�n�T�X�X�&���3�x�3�y�>�)�)�)��
r,c��|jdk(ry|jdk(rytjj|j	��S)zbReturn process name, which on Windows is always the final
        part of the executable.
        rzSystem Idle Processr7�System)r�rdre�basenamerqrs r-r�zProcess.name�s;���8�8�q�=�(��8�8�q�=���w�w������
�+�+r,c�j�tr!	tj|j�}ntj|j�}|jd�rt|�S|S#t$rD}|j
dk(r/t
|�d��t|j|j�|��d}~wwxYw)N�z translated into AccessDeniedr[)�PYPYra�proc_exer�r/�errnorrr
r^rj)rrqr4s   r-rqzProcess.exe�s����
��m�m�D�H�H�-���-�-����)�C��>�>�$��#�C�(�(��
���
��9�9��?��S�G�#@�A�B�&�t�x�x����<�#�E���

�s�A%�%	B2�.?B-�-B2c�P�tjtjk\r"	tj|jd��Stj|jd��S#t
$r7}t
|�r&tj|jd��cYd}~S�d}~wwxYw)NT)�use_pebF)ra�WINVER�WINDOWS_8_1�proc_cmdliner�r/r0�rr4s  r-�cmdlinezProcess.cmdline�s���;�;�$�*�*�*�
��(�(����4�@�@��$�$�T�X�X�t�<�<��
�
�$�S�)��,�,�T�X�X�u�E�E���	
�s#� A%�%	B%�.+B �B%�B � B%c�V�tj|j�}t|�Srl)ra�proc_environr�r)rrfs  r-�environzProcess.environ	s#��
���d�h�h�'��"�1�%�%r,c��	t�|jS#t$r"t|j|j�d�wxYwrl)�ppid_mapr��KeyErrorrr
rs r-�ppidzProcess.ppidsA��	@��:�d�h�h�'�'���	@�����$�*�*�5�4�?�	@�s	��+Ac
��	tj|j�S#t$r�}t	|�r�td�|j
�}|td|td|td|td|td|td|td|td	|td
|tdf
cYd}~S�d}~wwxYw)Nz*attempting memory_info() fallback (slower)rErGrIrKrMrOrQrSrUrW)ra�proc_memory_infor�r/r0rrorx)rr4�infos   r-�_get_raw_meminfozProcess._get_raw_meminfos���	��(�(����2�2���	� ��%��B�C����(����#4�5�6���;�/�0���6�*�+���#4�5�6���<�0�1���#8�9�:���#3�4�5���:�.�/���?�3�4���=�1�2���
��%	�s!�!�	C�BC�?C�C�Cc�d�|j�}|d}|d}tj||f|z�S)Nr0r<)r�rr�pmem)r�t�rss�vmss    r-�memory_infozProcess.memory_info,s;��

�!�!�#����d����d���x�x�#�s��a��(�(r,c��|j�}tj|j�}|t	�z}tj||fz�Srl)r�ra�proc_memory_ussr�rmrr�pfullmem)r�	basic_mem�usss   r-�memory_full_infozProcess.memory_full_info6sF���$�$�&�	��"�"�4�8�8�,���{�}����|�|�Y�#��/�0�0r,c#�K�	tj|j�}|D]%\}}}}t|�}t	|�}||||f���'y#t
$r'}t
||j|j�|�d}~wwxYw�wrl)ra�proc_memory_mapsr�rj�hexr/rPr
)r�raw�addr�permrer�r4s       r-�memory_mapszProcess.memory_maps=s�����
	.��'�'����1�C�*-�%��d�D�#�'��-���4�y���T�4��-�-�*-���	F�"�#�t�x�x����<�#�E��	F�s'�B�A�+B�	A>�"A9�9A>�>Bc�@�tj|j�Srl)ra�	proc_killr�rs r-�killzProcess.killJs���~�~�d�h�h�'�'r,c��|tjk(r tj|j�y|tj
tjhvr!tj|j|�yd}t|��)NzPonly SIGTERM, CTRL_C_EVENT and CTRL_BREAK_EVENT signals are supported on Windows)
�signal�SIGTERMrar�r��CTRL_C_EVENT�CTRL_BREAK_EVENTrdr��
ValueError)r�sigr.s   r-�send_signalzProcess.send_signalNs_���&�.�.� ��N�N�4�8�8�$�
�V�(�(�&�*A�*A�B�
B��G�G�D�H�H�c�"�+�
��S�/�!r,Nc�`�|�tj}nt|dz�}ttdtj�}|�
|�|znd}	tj
|j|�}d}	t|j�s|S|r,|�|k\r"t||j|j���t	j|�t|dzd�}�j#tj$r'}t||j|j�|�d}~wtj$rd}Y��wxYw)Ni��	monotonicr^rNr0r`)
ra�INFINITEr��getattrr��	proc_waitr�r	r
�TimeoutAbandoned�
pid_existsrcrd)r�timeout�cext_timeout�timer�stop_at�	exit_coder4res        r-�waitzProcess.wait[s���?��=�=�L��w��~�.�L���k�4�9�9�5��'.�':�%�'�G�#���	����t�x�x��>�I�&����d�h�h�'� � ��5�7�g�-�$�W�$�(�(����L�L��J�J�u�����	�4�(�E�
��'�"�"�	I� ��$�(�(�D�J�J�?�S�H���$�$�		��I�		�s� C�D-�0"D�D-�,D-c�r�|jdvrytj|j�\}}|�d|��S)N�rr7zNT AUTHORITY\SYSTEMr[)r�ra�
proc_username)r�domainr�s   r-r$zProcess.username�s:���8�8�v��)��)�)�$�(�(�3�������D�6�"�"r,c���	tj|j�\}}}|S#t$r>}t	|�r-|r�td�|j
�tdcYd}~S�d}~wwxYw)Nz*attempting create_time() fallback (slower)r6)ra�
proc_timesr�r/r0rrorx)r�	fast_only�_user�_system�createdr4s      r-r6zProcess.create_time�sf��		�&*�o�o�d�h�h�&?�#�E�7�G��N���	� ��%����B�C����(��=�)A�B�B���
	�s �$'�	A.�2A)�"A.�(A)�)A.c�6�|j�tdS)Nr8)rorxrs r-r8zProcess.num_threads�s����� ��=�!9�:�:r,c��tj|j�}g}|D].\}}}tj|||�}|j|��0|Srl)ra�proc_threadsr�rr�pthreadr�)rr�r�	thread_id�utime�stime�ntuples       r-�threadszProcess.threads�sQ���#�#�D�H�H�-����'.�#�I�u�e��[�[��E�5�9�F��N�N�6�"�(/��r,c�$�	tj|j�\}}}tj||dd�S#t$rI}t	|�s�td�|j
�}|td}|td}Yd}~�ed}~wwxYw)Nz(attempting cpu_times() fallback (slower)r4r5r�)
rar�r�r/r0rrorxrr�	pcputimes)rr�r��_createdr4r�s      r-r�zProcess.cpu_times�s���	4�%)�_�_�T�X�X�%>�"�D�&�(��}�}�T�6�3��4�4���	4�$�S�)���<�=��?�?�$�D��	�+�.�/�D��)�M�2�3�F��
	4�s�#=�	B�?B
�
Bc�D�tj|jd�y)NT�ra�proc_suspend_or_resumer�rs r-�suspendzProcess.suspend�s���#�#�D�H�H�d�3r,c�D�tj|jd�y)NFr�rs r-�resumezProcess.resume�s���#�#�D�H�H�e�4r,c���|jdvr t|j|j��tj|j�}t
jj|�S)Nr�)r�rr
ra�proc_cwdrdre�normpath)rres  r-�cwdzProcess.cwd�sN���8�8�v���t�x�x����4�4��}�}�T�X�X�&���w�w����%�%r,c��|jdvrgSt�}tj|j�}|D]@}t	|�}t|�s�t
j|d�}|j|��Bt|�S)Nr�r%)
r�r�ra�proc_open_filesrjr
rr�	popenfiler�r�)rr��raw_file_names�filer�s     r-�
open_fileszProcess.open_files�ss���8�8�v���I��e��
�-�-�d�h�h�7��"�D�#�D�)�D��T�"����t�R�0�������	#�
�C�y�r,c�0�t||j��S)N)r�)r�r�)rr�s  r-r�zProcess.net_connections�s���t�$�(�(�3�3r,c�Z�tj|j�}t|�}|Srl)ra�proc_priority_getr�r'�r�values  r-�nice_getzProcess.nice_get�s$���&�&�t�x�x�0�������r,c�B�tj|j|�Srl)ra�proc_priority_setr�r�s  r-�nice_setzProcess.nice_set�s���%�%�d�h�h��6�6r,c�Z�tj|j�}t|�}|Srl)ra�proc_io_priority_getr�r/rys  r-�
ionice_getzProcess.ionice_get�s$���'�'����1����o���
r,c��|r
d}t|��|tjtjtjtj
hvr|�d�}t
|��tj|j|�y)Nz&value argument not accepted on Windowsz is not a valid priority)
�	TypeErrorr/rrrrr�ra�proc_io_priority_setr�)r�ioclassr�r.s    r-�
ionice_setzProcess.ionice_set�sr���:�C��C�.� ���%�%��!�!��$�$��"�"�	
�
��I�5�6�C��S�/�!��!�!�$�(�(�G�4r,c	�h�	tj|j�}tj|�S#t$ru}t	|�s�td�|j
�}|td|td|td|td|td|tdf}Yd}~��d}~wwxYw)Nz*attempting io_counters() fallback (slower)r:r;r=r?rArC)
ra�proc_io_countersr�r/r0rrorxrr�pio)rr�r4r�s    r-�io_counterszProcess.io_counters�s���	��'�'����1�C��w�w��}����	�$�S�)���>�?��?�?�$�D��Y�{�+�,��Y�{�+�,��Y�{�+�,��Y�{�+�,��Y�0�1�2��Y�0�1�2�
�C��	�s�3�	B1�A+B,�,B1c��tj|j�}|rtjStj
Srl)ra�proc_is_suspendedr�r�STATUS_STOPPED�STATUS_RUNNING)r�	suspendeds  r-r�zProcess.statuss1���*�*�4�8�8�4�	���)�)�)��)�)�)r,c�V�d�}tj|j�}||�S)Nc�P�td�D�cgc]
}d|z|zs�|��c}Scc}w)N�@r)ra)r��is  r-�from_bitmaskz.Process.cpu_affinity_get.<locals>.from_bitmasks(��$�R�y�9�y�!�Q�!�V�q�L�A�y�9�9��9s�
#�#)ra�proc_cpu_affinity_getr�)rr�bitmasks   r-�cpu_affinity_getzProcess.cpu_affinity_gets(��	:��,�,�T�X�X�6���G�$�$r,c��d�}tttt����}|D]7}||vs�t	|t
�sd|�d�}t
|��d|��}t|��||�}tj|j|�y)Nc�L�|sd|��}t|��d}|D]
}|d|zz}�|S)Nzinvalid argument rr0)r�)�lsr.�out�bs    r-�
to_bitmaskz,Process.cpu_affinity_set.<locals>.to_bitmask"s<���)�"��0�� ��o�%��C����q�!�t�����Jr,zinvalid CPU z; an integer is required)r�rarcr�r�r�r�r�ra�proc_cpu_affinity_setr�)rr�r�allcpus�cpur.rs       r-�cpu_affinity_setzProcess.cpu_affinity_set s���	��u�S���1�2�3���C��'�!�!�#�s�+�(���/G�H�C�#�C�.�(�$�S�G�,�� ��o�%�
��U�#���"�"�4�8�8�W�5r,c���	tj|j�S#t$r;}t	|�r*td�|j
�tdcYd}~S�d}~wwxYw)Nz*attempting num_handles() fallback (slower)r2)ra�proc_num_handlesr�r/r0rrorxr�s  r-r2zProcess.num_handles:sW��	��(�(����2�2���	� ��%��B�C����(��=�)A�B�B���		�s �!�	A%�/A �A%�A � A%c�b�|j�td}tj|d�S)Nr3r)rorxrr�pctxsw)rr3s  r-�num_ctx_switcheszProcess.num_ctx_switchesDs)�����(��>�)B�C���z�z�,��*�*r,rl)F)�inet),r(r)r*rE�	__slots__rrrrurror�r[rqrhr�r�r�r�r�r�r�r�r�r�r$r6r8r�r�r�r�r�r�r�r�r�r�r�r�r�rrr2rr+r,r-rjrj�s���;�3�I��&�(�����
,�������"��=���=���&���&�@��.�)��)��1��1�.��(��(��
"��
"��()��()�T�#��#������;��;������5��5��4��4��5��5���&���&����� �4��4�����
�7��7�����
�5��5�����$�*��*��%��%��6��6�2�����+��+r,rjr+)r%)NN)zrErF�enumrXrdr��sys�	threadingr�r�rrrrrrrr	r
rrr
rrrrrrrrrrrra�ImportErrorr4�str�lowerr^�getwindowsversionr.�RuntimeError�__extra__all__r rb�builtin_module_namesr�IntEnumr$r!�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(rx�	lru_cacherjrmr~r��	heap_info�	heap_trim�disk_io_countersr�r�r�r�r�r�r�r�r��Lockr�r�r�r�r�r�r�r�r�r�r�rrr�pidsr�r�r0rPr[rhrjr+r,r-�<module>rDsX��
'����	�
�
������!�"�#��#��"��+�(�"�8�8�0�0�2�4��)�*
��$�����S�-�-�-������_�y�"�o�>�
�
�
�
��	���g�6�6�����!6�!6�����!6�!6�� � �'�"8�"8�� � �'�"8�"8�� � �'�"8�"8����w�1�1��!�!�7�#:�#:�����!6�!6����w�2�2����� 4� 4��!�!�?����7�,�,���"6�t�|�|�6��	����%�%�&�������	����'�'�(��
��
��
��
��	
�
�
��

��
��
��
��
��
��
��
��
�
�
� �!
�"�#
�$�%
�&�'
�(�)
�*�+
�,�-
�	�>����S�!�0�"�0�*	��	��	8�7�6
�N�N�	��N�N�	��(�(��6�0���$�
"�
N�:����	�����7��,�.	�"��:�2��
� � 1��}�}�X�y�y��
�_�_�
��=�=����
��8K+�K+��m���C�����#�#�$5�6�!�C�!�!�#�A�&��*�D���K�K���)�)���3��S�(�
���s�N�O�AO�O
Back to Directory File Manager