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

�

h0i�o�
�	�dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddlm
Z
ddlmZddlmZddlm
Z
	ddlmZ	ddlmZeej$d	��Ze�Zgd
�Zej.dk(Zej.dk(Zej4j7d
�Zej4j7d�ZeZej4j7d�Zej4j7d�Z ej4j7d�Z!exse xse!Z"ej4j7d�Z#ej4j7d�Z$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0d Z1d!Z2d"Z3d#Z4d$Z5d%Z6d&Z7d'Z8d(Z9d)Z:d*Z;d+Z<d,Z=d-Z>Gd.�d/ej~�Z@eA�j�e@j��Gd0�d1ej~�ZDeA�j�eDj��ej��ZFej��ZHe
d2gd3��ZIe
d4gd5��ZJe
d6gd7��ZKe
d8gd9��ZLe
d:gd;��ZMe
d<gd=��ZNe
d>gd?��ZOe
d@gdA��ZPe
dBgdC��ZQe
dDgdE��ZRe
dFgdG��ZSe
dHgdI��ZTe
dJgdK��ZUe
dLdMdNg�ZVe
dOgdP��ZWe
dQdRdSg�ZXe
dTgdU��ZYe
dVgdW��ZZe
dXgdW��Z[e
dYgdZ��Z\e
d[d\d]g�Z]e
d^d_d`g�Z^e
dagdb��Z_e
dcdddeg�Z`eeege
egfeege
gfege
gfeegegfegegfeege
egfege
egfege
egfdf�Zae�eaj�ege
gfegegfdg��e�e#seaj�dhege
egfi�Gdi�djeb�ZcGdk�dlec�ZdGdm�dned�ZeGdo�dpec�ZfGdq�drec�Zgd�ds�Zhdt�Zidu�Zjdv�Zkdw�Zldx�Zmdy�Zndz�Zod{�Zpd�d|�Zqd}�Zrd~�ZsGd�d��Ztd��Zuet�Zvevj�eu_wevj�eu_xd�Zyd��Zzd��Z{ee{fd��Z|efd��Z}d�d��Z~d��Zd��Z�eie�jfd���Z�d�d��Z�dd�e�jfd��Z�d��Z�y#e$rdZY��0wxYw#e$rdZY��7wxYw)�z�Common objects shared by __init__.py and _ps*.py modules.

Note: this module is imported by setup.py, so it should not import
psutil or third-party modules.
�N)�
namedtuple)�AF_INET)�
SOCK_DGRAM)�SOCK_STREAM)�AF_INET6)�AF_UNIX�PSUTIL_DEBUG)R�FREEBSD�BSD�LINUX�NETBSD�OPENBSD�MACOS�OSX�POSIX�SUNOS�WINDOWS�
CONN_CLOSE�CONN_CLOSE_WAIT�CONN_CLOSING�CONN_ESTABLISHED�CONN_FIN_WAIT1�CONN_FIN_WAIT2�
CONN_LAST_ACK�CONN_LISTEN�	CONN_NONE�
CONN_SYN_RECV�
CONN_SYN_SENT�CONN_TIME_WAIT�NIC_DUPLEX_FULL�NIC_DUPLEX_HALF�NIC_DUPLEX_UNKNOWN�STATUS_DEAD�STATUS_DISK_SLEEP�STATUS_IDLE�
STATUS_LOCKED�STATUS_RUNNING�STATUS_SLEEPING�STATUS_STOPPED�STATUS_SUSPENDED�STATUS_TRACING_STOP�STATUS_WAITING�STATUS_WAKE_KILL�
STATUS_WAKING�
STATUS_ZOMBIE�
STATUS_PARKED�ENCODING�
ENCODING_ERRSr�pconn�	pcputimes�pctxsw�pgids�pio�pionice�	popenfile�pthread�puids�sconn�	scpustats�sdiskio�	sdiskpart�
sdiskusage�snetio�snicaddr�	snicstats�sswap�suser�	conn_tmap�deprecated_method�
isfile_strict�memoize�parse_environ_block�path_exists_strict�
usage_percent�
supports_ipv6�sockfam_to_enum�socktype_to_enum�wrap_numbers�	open_text�open_binary�cat�bcat�bytes2human�conn_to_ntuple�debug�hilite�term_supports_colors�print_color�posix�nt�linux�darwin)�freebsd�midnightbsd�openbsd�netbsd)�sunos�solaris�aix�running�sleepingz
disk-sleep�stoppedztracing-stop�zombie�deadz	wake-kill�waking�idle�locked�waiting�	suspended�parked�ESTABLISHED�SYN_SENT�SYN_RECV�	FIN_WAIT1�	FIN_WAIT2�	TIME_WAIT�CLOSE�
CLOSE_WAIT�LAST_ACK�LISTEN�CLOSING�NONEc��eZdZdZdZdZy)�	NicDuplex��rN)�__name__�
__module__�__qualname__r r!r"���?/opt/hc_python/lib64/python3.12/site-packages/psutil/_common.pyr~r~s���O��O��r�r~c��eZdZdZdZy)�BatteryTime������N)r�r�r��POWER_TIME_UNKNOWN�POWER_TIME_UNLIMITEDr�r�r�r�r��s�����r�r�rD)�total�used�free�percent�sin�soutr@)r�r�r�r�r>)�
read_count�write_count�
read_bytes�write_bytes�	read_time�
write_timer?)�device�
mountpoint�fstype�optsrA)�
bytes_sent�
bytes_recv�packets_sent�packets_recv�errin�errout�dropin�dropoutrE)�name�terminal�host�started�pidr<)�fd�family�type�laddr�raddr�statusr�rB)r��address�netmask�	broadcast�ptprC)�isup�duplex�speed�mtu�flagsr=)�ctx_switches�
interrupts�soft_interrupts�syscalls�scpufreq)�current�min�max�shwtemp)�labelr��high�critical�sbattery)r��secsleft�
power_plugged�sfanr�r�r4)�user�system�
children_user�children_systemr9�pathr�r:)�id�	user_time�system_timer;)�real�	effective�savedr6r7)r�r�r�r�r8�ioclass�valuer5�	voluntary�involuntaryr3)r�r�r�r�r�r��addr�ip�port)�all�tcp�tcp4�udp�udp4�inet�inet4�inet6)�tcp6�udp6�unixc�&�eZdZdZdZd�Zd�Zd�Zy)�ErrorzQBase exception class. All other psutil exceptions inherit
    from this one.
    �psutilc�|�tj�}|D]"}t||d�}|s|dk(s�|dk(s�|||<�$|S)Nr�r)�collections�OrderedDict�getattr)�self�attrs�infor�r�s     r��	_infodictzError._infodictsG���&�&�(���D��D�$��-�E�����5�A�:�"��T�
���r�c�.�|jd�}|rGdjdj|j�D��cgc]\}}|�d|����c}}��}nd}djt	|dd�|fD�cgc]}|s�|��	c}�Scc}}wcc}w)N)r��ppidr�z({})�, �=� �msg�)r��format�join�itemsr�)r�r��k�v�details�xs      r��__str__z
Error.__str__s����~�~�5�6����m�m��	�	�D�J�J�L�A�L�D�A�q�a�S��!��<�L�A�B��G��G��x�x�W�T�5�"�%=�w�$G�M�$G�q�1��$G�M�N�N��	B��Ns�B�9B�Bc	���|jd�}dj|j�D��cgc]\}}|�d|����c}}�}d|jj�d|�d�Scc}}w)N)r�r�r��secondsr�r�r�zpsutil.�(�))r�r�r��	__class__r�)r�r�r�r�r�s     r��__repr__zError.__repr__sh���~�~�G�H���)�)�d�j�j�l�C�l�d�a���s�!�A�5�\�l�C�D������0�0�1��7�)�1�=�=��Ds�A&
N)r�r�r��__doc__r�r�rr�r�r�r�r�s����J��	O�>r�r�c�"�eZdZdZdZdd�Zd�Zy)�
NoSuchProcesszXException raised when a process with a certain PID doesn't
    or no longer exists.
    r�Nc�`�tj|�||_||_|xsd|_y)Nzprocess no longer exists�r��__init__r�r�r��r�r�r�r�s    r�rzNoSuchProcess.__init__,s)��
���t�������	��4�4��r�c�`�|j|j|j|jffS�N�rr�r�r��r�s r��
__reduce__zNoSuchProcess.__reduce__2�$��������4�9�9�d�h�h� ?�@�@r��NN�r�r�r�rrrr�r�r�rr%s����J�5�Ar�rc�"�eZdZdZdZdd�Zd�Zy)�
ZombieProcessa1Exception raised when querying a zombie process. This is
    raised on macOS, BSD and Solaris only, and not always: depending
    on the query the OS may be able to succeed anyway.
    On Linux all zombie processes are querable (hence this is never
    raised). Windows doesn't have zombie processes.
    r�Nc�X�tj||||�||_|xsd|_y)Nz"PID still exists but it's a zombie)rrr�r�)r�r�r�r�r�s     r�rzZombieProcess.__init__@s*�����t�S�$��4���	��>�>��r�c�v�|j|j|j|j|jffSr)rr�r�r�r�rs r�rzZombieProcess.__reduce__Es*��������4�9�9�d�i�i���� J�K�Kr��NNNrr�r�r�rr6s����J�?�
Lr�rc�"�eZdZdZdZdd�Zd�Zy)�AccessDeniedz@Exception raised when permission to perform an action is denied.r�Nc�`�tj|�||_||_|xsd|_y)Nr�r
rs    r�rzAccessDenied.__init__Ns'��
���t�������	��9�"��r�c�`�|j|j|j|jffSrrrs r�rzAccessDenied.__reduce__Trr�rrr�r�r�rrIs��J��J��Ar�rc�"�eZdZdZdZdd�Zd�Zy)�TimeoutExpiredzWRaised on Process.wait(timeout) if timeout expires and process
    is still alive.
    r�Nc�n�tj|�||_||_||_d|�d�|_y)Nztimeout after z seconds)r�rrr�r�r�)r�rr�r�s    r�rzTimeoutExpired.__init___s3��
���t����������	�#�G�9�H�5��r�c�`�|j|j|j|jffSr)rrr�r�rs r�rzTimeoutExpired.__reduce__fs$��������t�x�x���� C�D�Dr�rrr�r�r�rrXs����J�6�Er�rc�d�	t|�|zdz}|�t||�}|S#t$rYywxYw)z5Calculate percentage usage of 'used' against 'total'.�dg)�float�round�ZeroDivisionError)r�r��round_�rets    r�rLrLosG����T�{�U�"�c�)������V�$�C��
������s�#�	/�/c�b���tj����fd��}�fd�}i�||_|S)a�A simple memoize decorator for functions supporting (hashable)
    positional arguments.
    It also provides a cache_clear() function for clearing the cache:

    >>> @memoize
    ... def foo()
    ...     return 1
        ...
    >>> foo()
    1
    >>> foo.cache_clear()
    >>>

    It supports:
     - functions
     - classes (acts as a @singleton)
     - staticmethods
     - classmethods

    It does NOT support:
     - methods
    c���|tt|j���f}	�|S#t$r(	�|i|��x}�|<n#t$r}|d�d}~wwxYw|cYSwxYwr)�	frozenset�sortedr��KeyError�	Exception)�args�kwargs�keyr(�err�cache�funs     ��r��wrapperzmemoize.<locals>.wrapper�su����Y�v�f�l�l�n�5�6�7��	���:����	�
$�#&��#7��#7�7��e�C�j���
$��t�#��
$���J�	�s2�,�	A�
A�A�	A�
A�A�A�Ac�&���j�y)zClear cache.N)�clear)r3s�r��cache_clearzmemoize.<locals>.cache_clear�s���
���
r�)�	functools�wrapsr8)r4r5r8r3s`  @r�rIrI{s9���0�_�_�S��	��	��
�E�%�G���Nr�c�j��tj���fd��}d�}d�}||_||_|S)a�A memoize decorator which is disabled by default. It can be
    activated and deactivated on request.
    For efficiency reasons it can be used only against class methods
    accepting no arguments.

    >>> class Foo:
    ...     @memoize
    ...     def foo()
    ...         print(1)
    ...
    >>> f = Foo()
    >>> # deactivated (default)
    >>> foo()
    1
    >>> foo()
    1
    >>>
    >>> # activated
    >>> foo.cache_activate(self)
    >>> foo()
    1
    >>> foo()
    >>> foo()
    >>>
    c���	|j�}|S#t$r 	�|�cYS#t$r}|d�d}~wwxYwt$rC	�|�}n#t$r}|d�d}~wwxYw	||j�<Y|S#t$rYY|SwxYwwxYwr)�_cache�AttributeErrorr.r-)r�r(r2r4s   �r�r5z'memoize_when_activated.<locals>.wrapper�s����	��+�+�c�"�C�(�
��'�	$�
$��4�y� ���
$��t�#��
$���	�
$��$�i����
$��t�#��
$��
�#&����C� �
�
��	"�
���
�	
��	�se��	B�(�B�	9�4�9�B�A�
B�	A�A�A�B�#A5�5	B�>B�B�Bc��i|_y)zsActivate cache. Expects a Process instance. Cache will be
        stored as a "_cache" instance attribute.
        N)r=��procs r��cache_activatez.memoize_when_activated.<locals>.cache_activate�s����r�c�(�	|`y#t$rYywxYw)zDeactivate and clear cache.N)r=r>r@s r��cache_deactivatez0memoize_when_activated.<locals>.cache_deactivate�s��	�����	��	�s��	�)r9r:rBrD)r4r5rBrDs`   r��memoize_when_activatedrE�sA���6�_�_�S�����2��,�G��/�G���Nr�c��	tj|�}tj|j�S#t$r�t
$rYywxYw)z�Same as os.path.isfile() but does not swallow EACCES / EPERM
    exceptions, see:
    http://mail.python.org/pipermail/python-dev/2012-June/120787.html.
    F)�os�stat�S_ISREG�st_mode�PermissionError�OSError)r��sts  r�rHrH�sH��
(�
�W�W�T�]���|�|�B�J�J�'�'����
�����s�6�A�
Ac�`�	tj|�y#t$r�t$rYywxYw)z�Same as os.path.exists() but does not swallow EACCES / EPERM
    exceptions. See:
    http://mail.python.org/pipermail/python-dev/2012-June/120787.html.
    TF)rGrHrKrL)r�s r�rKrK�s6��
�
����
�����
�����s��-�-c���tjrt�y	tjttj�5}|j	d�ddd�y#1swYyxYw#t
$rYywxYw)z2Return True if IPv6 is supported on this platform.NF)z::1rT)�socket�has_ipv6rr�bindrL)�socks r�rMrM
sZ���?�?�h�.���
�]�]�8�V�%7�%7�
8�D��I�I�j�!�9��9�������s/�(A(�A�A(�A%�!A(�%A(�(	A4�3A4c���i}d}t}	|jd|�}||kr	|S|jd||�}||kDr$|||}||dz|}|r|j�}|||<|dz}�\)zCParse a C environ block of environment variables into a dictionary.r�r�r�)r�find�upper)�datar(�pos�WINDOWS_�next_pos�	equal_posr1r�s        r�rJrJs���
�C�
�C��H�
��9�9�T�3�'���s�?���J��I�I�c�3��1�	��s�?��s�9�%�C���Q���2�E���i�i�k���C��H���l��r�c�P�	tj|�S#t$r|cYSwxYw)z�Convert a numeric socket family value to an IntEnum member.
    If it's not a known member, return the numeric value itself.
    )rP�
AddressFamily�
ValueError��nums r�rNrN5s,����#�#�C�(�(�����
�����%�%c�P�	tj|�S#t$r|cYSwxYw)zConvert a numeric socket type value to an IntEnum member.
    If it's not a known member, return the numeric value itself.
    )rP�
SocketKindr_r`s r�rOrO?s,���� � ��%�%�����
��rbc	�H�|tjthvr|rt|�}|rt|�}|tjk(r%|tthvr|j|t�}nt}t|�}t|�}|�t||||||�St|||||||�S)z2Convert a raw connection tuple to a proper ntuple.)rPrrr�r�getrrNrOr3r<)r��fam�type_r�r�r��
status_mapr�s        r�rVrVIs���
�v�~�~�x�(�(���%�L�E���%�L�E���"�"�"�s�w��.A�'A�����	�2����
�#�
�C��U�#�E�
�{��R��e�U�E�6�:�:��R��e�U�E�6�3�?�?r�c��ddl}|jr|jsy|jtj
k(r?t
|j|j�d|j��d��j�S|jtjk(r?t
|j|j�d|j��d��j�Sy)zbGiven the address ntuple returned by ``net_if_addrs()``
    calculates the broadcast address.
    rN�/F)�strict)�	ipaddressr�r�r�rPr�str�IPv4Network�broadcast_addressr�IPv6Network)r�rms  r��broadcast_addrrr\s�����<�<�t�|�|���{�{�f�n�n�$���!�!��<�<�.��$�,�,��0��
"�
���
�	
�
�{�{�f�o�o�%���!�!��<�<�.��$�,�,��0��
"�
���
�	
�&r�c����fd�}|S)z�A decorator which can be used to mark a method as deprecated
    'replcement' is the method name which will be called instead.
    c����|j�d��d��|j��|_tj|���fd��}|S)Nz*() is deprecated and will be removed; use z
() insteadc�`��tj�td��t|��|i|��S)Nr)�category�
stacklevel)�warnings�warn�DeprecationWarningr�)r�r/r0r��replacements   ��r��innerz/deprecated_method.<locals>.outer.<locals>.inners-����M�M�#�(:�q�I�-�7�4��-�t�>�v�>�>r�)r�rr9r:)r4r|r�r{s  @�r��outerz deprecated_method.<locals>.outerwsW����|�|�n���}�J�
(�	��;�;���C�K�	����	�	?�
�	?��r�r�)r{r}s` r�rGrGrs���

��Lr�c�6�eZdZdZd�Zd�Zd�Zd�Zd	d�Zd�Z	y)
�_WrapNumberszNWatches numbers so that they don't overflow and wrap
    (reset to zero).
    c�`�tj�|_i|_i|_i|_yr)�	threading�Lock�lockr3�	reminders�
reminder_keysrs r�rz_WrapNumbers.__init__�s&���N�N�$��	���
������r�c��||jvsJ�||jvsJ�||jvsJ�||j|<tjt
�|j|<tjt�|j|<yr)r3r�r�r��defaultdict�int�set)r��
input_dictr�s   r��	_add_dictz_WrapNumbers._add_dict�s|���4�:�:�%�%�%��4�>�>�)�)�)��4�-�-�-�-�-�%��
�
�4��*�6�6�s�;����t��#.�#:�#:�3�#?����4� r�c��|j|}t|j��t|j��z
}|D]9}|j||D]}|j||=�|j||=�;y)z�In case the number of keys changed between calls (e.g. a
        disk disappears) this removes the entry from self.reminders.
        N)r3r��keysr�r�)r�r�r��old_dict�	gone_keys�gone_key�remkeys       r��_remove_dead_remindersz#_WrapNumbers._remove_dead_reminders�s{���:�:�d�#����
�
��(�3�z���/@�+A�A�	�!�H��,�,�T�2�8�<���N�N�4�(��0�=��"�"�4�(��2�"r�c�0�||jvr|j||�|S|j||�|j|}i}|D]�}||}	||}g}t	t|��D]t}	||	}
||	}||	f}|
|kr;|j||xx|z
cc<|j||j|�|j|
|j||z��vt|�||<��||j|<|S#t$r|||<Y��wxYw)zlCache dict and sum numbers which overflow and wrap.
        Return an updated copy of `input_dict`.
        )r3r�r�r-�range�lenr�r��add�append�tuple)
r�r�r�r��new_dictr1�input_tuple�	old_tuple�bits�i�input_value�	old_valuer�s
             r��runz_WrapNumbers.run�s?���t�z�z�!��N�N�:�t�,����#�#�J��5��:�:�d�#�����C�$�S�/�K�
�$�S�M�	��D��3�{�+�,��)�!�n��%�a�L�	��q�����*��N�N�4�(��0�I�=�0��&�&�t�,�S�1�5�5�f�=����K�$�.�.��*>�v�*F�F�G�-�"�$�K�H�S�M�+�.&��
�
�4�����)�
�!,���
��	
�s�D�D�DNc��|j5|�O|jj�|jj�|jj�nT|jj|d�|jj|d�|jj|d�ddd�y#1swYyxYw)z>Clear the internal cache, optionally only for function 'name'.N)r�r3r7r�r��pop)r�r�s  r�r8z_WrapNumbers.cache_clear�s���
�Y�Y��|��
�
� � �"����$�$�&��"�"�(�(�*��
�
���t�T�*����"�"�4��.��"�"�&�&�t�T�2��Y�Y�s�B&B<�<Cc��|j5|j|j|jfcddd�S#1swYyxYw)z5Return internal cache dicts as a tuple of 3 elements.N)r�r3r�r�rs r��
cache_infoz_WrapNumbers.cache_info�s+��
�Y�Y��J�J�����0B�0B�C��Y�Y�s	�#:�Ar)
r�r�r�rrr�r�r�r8r�r�r�r�rr�s(��� �@�	3�%�N
3�Dr�rc�z�tj5tj||�cddd�S#1swYyxYw)z�Given an `input_dict` and a function `name`, adjust the numbers
    which "wrap" (restart from zero) across different calls by adding
    "old value" to "new value" and return an updated dict.
    N)�_wnr�r�)r�r�s  r�rPrP�s#��


����w�w�z�4�(�
���s�1�:i�c�&�t|dt��S)N�rb)�	buffering)�open�FILE_READ_BUFFER_SIZE)�fnames r�rRrR�s����t�'<�=�=r�c��t|ttt��}	t|_|S#t
$rY|St$r|j��wxYw)zaOpen a file in text mode by using the proper FS encoding and
    en/decoding error handlers.
    )r��encoding�errors)r�r�r1r2�_CHUNK_SIZEr>r.�close)r��fobjs  r�rQrQ�sa���
�'���	�D��1����K��
�
��
�K�	���
�
��
��s�*�	A�Ac���|tur"||�5}|j�cddd�S	||�5}|j�cddd�S#1swYyxYw#1swYyxYw#t$r|cYSwxYw)z�Read entire file content and return it as a string. File is
    opened in text mode. If specified, `fallback` is the value
    returned in case of error, either if the file does not exist or
    it can't be read().
    N)�_DEFAULT�readrL)r��fallback�_open�fs    r�rSrSsf���8��
�5�\�Q��6�6�8��\�	��u����v�v�x���	�\������	��O�	�s9�A�A&�A�	A&�A�A#�A&�#A&�&A4�3A4c�&�t||t��S)z,Same as above but opens file in binary mode.)r�r�)rSrR)r�r�s  r�rTrT*s���u�x�{�;�;r�c��d}i}t|dd�D]\}}d|dzdzz||<�t|dd�D]3}t|�||k\s�t|�||z}|t	�zcS|t|d|��zS)z�Used by various scripts. See: https://code.activestate.com/recipes/578019-bytes-to-human-human-to-bytes-converter/?in=user-4178764.

    >>> bytes2human(10000)
    '9.8K'
    >>> bytes2human(100001221)
    '95.4M'
    )	�B�K�M�G�T�P�E�Z�Yr�N�
r)�symbolr�)�	enumerate�reversed�absr$�locals�dict)�nr��symbols�prefixr��sr�r�s        r�rUrU/s���<�G�
�F��'�!�"�+�&���1��!�a�%�2��%��q�	�'��7�1�2�;�'���q�6�V�F�^�#��!�H�v�f�~�-�E��F�H�$�$�(��D���
�!�4�4�4r�c�<�tjdjS)z+Return updated psutil.PROCFS_PATH constant.r�)�sys�modules�PROCFS_PATHr�r�r��get_procfs_pathr�Bs���;�;�x� �,�,�,r�c�8�|jtt��S)N)r�r�)�decoder1r2)r�s r�r�r�Gs���8�8�X�m�8�<�<r�c���tjdk(ry	ddl}|j�sJ�|j	�|jd�dkDsJ�	y#t$rYywxYw)Nr\Tr�colorsF)rGr��curses�isatty�	setupterm�tigetnumr.)�filer�s  r�rYrYPsb��	�w�w�$���	���{�{�}��}��������x�(�1�,�,�,�������s�<A�	A �A Fc�D�t�s|Sg}tddddddddd	�
�	}d|d<	||}|j
|�|r|j
d�ddj|��d|�d�S#t$r,d
|�dt|j	����}t|�d�wxYw)z*Return an highlighted version of 'string'.�34�33�30�32�37�36�91�35�93)	�blue�brown�darkgrey�green�grey�	lightblue�red�violet�yellow�29N�invalid color z; choose amongst �1z[�;�mz)rYr�r-�listr�r_r�r�)r��color�bold�attrr�r�s      r�rXrX`s����!���
�D�
�
����
�����
�F��F�4�L�(��u�
��	�K�K�������C��
�3�8�8�D�>�"�!�A�3�g�.�.��
�(��u�i�'8��f�k�k�m�9L�8M�N����o�4�'�(�s�A*�*5Bc�t�t�st||��ytrtt|||�|��yddl}d}|j
jj}|j
jj}tdddd��}||d<	||}|r
|dkr|dz
}|tjurdnd
}
|j |_||
�}|||�	t||��|||�y#t$r,d	|�d
t|j����}	t|	�d�wxYw#|||�wxYw)z$Print a colorized version of string.�r�rN�r��)r�r�r�r�r�z; choose between �i�i����)rY�printrrX�ctypes�windll�Kernel32�GetStdHandle�SetConsoleTextAttributer�r-r�r�r_r��stderr�c_ulong�restype)r�r�r�r�r�
DEFAULT_COLORrrr�r��	handle_id�handles            r�rZrZ|s:�� �!�
�a�d��	�
�f�Q��t�$�4�0���
��}�}�-�-�:�:���M�M�"�"�:�:�	 ��A�1�A�a�8��$��t��	,��5�M�E��E�Q�J��Q�J�E��3�:�:�-�C�3�	�%�~�~����i�(�����.�	;��!�$��#�F�M�:��!�	,� ��	�*������'�*�,�
��S�/�t�+�	,�� 
$�F�M�:�s�C4�
D,�45D)�,D7c��tr�ddl}|j|j�j�\}}}}}t|t�rt|t�rd|��}nd|��}td|�d|�d|��tj��yy)z@If PSUTIL_DEBUG env var is set, print a debug message to stderr.rNz	ignoring zpsutil-debug [�:z]> r�)r	�inspect�getframeinfo�currentframe�f_back�
isinstancer.rLr�r�r)r�r
r��lineno�_�_lines�_indexs       r�rWrW�s�����+2�+?�+?�� � �"�)�)�,
�(��v�q�&�&��c�9�%��#�w�'�!�#��'��!�#��)��
��U�G�1�V�H�C��u�5�C�J�J�	
�r�r)z%(value).1f%(symbol)s)NF)�rr��enumr9rGrPrHr�r�rxrrrrr�ImportErrorr�bool�getenvr	�objectr��__all__r�rr�platform�
startswithrrrr
rr
rr�AIXr'r(r$r)r+r/r#r-r.r%r&r,r*r0rrrrrrrrrrrr�IntEnumr~�globals�update�__members__r��getfilesystemencodingr1�getfilesystemencodeerrorsr2rDr@r>r?rArEr<rBrCr=r�r�r�r�r4r9r:r;r6r7r8r5r3r�rFr.r�rrrrrLrIrErHrKrMrJrNrOrVrrrGrrPr�r8r�r�rRrQrSrTrUr�r��stdoutrYrXrZrWr�r�r��<module>r&s���
����	�
��
���"��������
�I�B�I�I�n�-�.���8����L	���7���
�'�'�T�/��������(��������)����

�,�,�
!�
!�"<�
=��

�,�,�
!�
!�)�
,��	���	 �	 ��	*��
�"��"�F������� 4�5��	�l�l���e�$������ ����$���
������
����
������
�!���
��
�������
�
����
������	�������	����&�&�'��$�,�,��
�	����(�(�)�%�3�$�$�&��-��-�-�/�
�	�7�%�	&����&J�
K�
�
�Y�!<�=��
�{�$N�O�	�	�H�4�
5��
	�7�J�K���7�.�	/���j�J�L��
�{�B�
D�	�
��N�
P�	��j�";�<��
�
�7�9���j�"J�K���&�7�I�.�/��
��G�
�	�
�{�V�T�N�3�	�
�Y� B�
C���7�:�;���7�:�;���	�E����Y��G� 4�
5��	�H�{�M�:�	;����
A�	��
�&�4��.�)���h��(�;�
�*C�D�
�h��+��/��Y��
�&�
�h��*��.��Y���%��x�
 �;�
�";�<��i�+�z�2�
3��j�;�
�3�
4�	
�	���
�����k�]�+���j�\�*���
��u�
���f��y�;�
�*C�D�E�F�>�I�>�BA�E�A�"L�M�L�&A�5�A�E�U�E�.	�*�ZD�N(��	��8��@�&
�,�.TD�TD�n)��n���?�?����.�.���"��>��4!�	��""�<�
5�&-�
=�	�!�j�j��	��/�:��C�J�J�%;�P
��S���H������G��s$�Q,�Q:�,Q7�6Q7�:R�R
Back to Directory File Manager