Your IP : 3.133.126.241


Current Path : /opt/alt/python312/lib64/python3.12/__pycache__/
Upload File :
Current File : //opt/alt/python312/lib64/python3.12/__pycache__/ntpath.cpython-312.opt-1.pyc

�

�Q�f�y���dZdZdZdZdZdZdZdZdZdd	l	Z	dd	l
Z
dd	lZdd	lZdd
l�gd�Z
d�Z	dd
lmZmZmZd�Zd�Zd�Zd�Zd�Zd�Zd�Zej<je_d�Zd�Z e!e	jDd�rd�Z#nd�Z#d�Z$	ddl%m&Z&d�Z'd�Z(d�Z)	dd l%m*Z+d"�Z,	dd#l%m-Z-d$�Z.	dd%l%m/Z/m0Z1d&�Z2d'�Z3d(d)�d*�Z4d+Z5d5d,�Z6d-�Z7	dd.l%m8Z9dd/l%m:Z;dd0l%m<Z=dd1l%m>Z?	dd2l%m@Z@d3�ZAy	#e$rd�ZY��wxYw#e$rd	Z&Y�vwxYw#e$rd!�Z+Y�twxYw#e$re,Z.Y�twxYw#e$re.Z4Y�lwxYw#e$rY�UwxYw#e$rd4�ZAYy	wxYw)6z�Common pathname manipulations, WindowsNT/95 version.

Instead of importing this module directly, import os and refer to this
module as os.path.
�.�..�\�;�/z.;C:\bin�nul�N)�*)(�normcase�isabs�join�
splitdrive�	splitroot�split�splitext�basename�dirname�commonprefix�getsize�getmtime�getatime�getctime�islink�exists�lexists�isdir�isfile�ismount�
expanduser�
expandvars�normpath�abspath�curdir�pardir�sep�pathsep�defpath�altsep�extsep�devnull�realpath�supports_unicode_filenames�relpath�samefile�sameopenfile�samestat�
commonpath�
isjunctionc�&�t|t�ryy)N�\/�\/)�
isinstance�bytes��paths �-/opt/alt/python312/lib64/python3.12/ntpath.py�
_get_bothsepsr:#s���$�����)�
LCMapStringEx�LOCALE_NAME_INVARIANT�LCMAP_LOWERCASEc�X�tj|�}|s|St|t�r]t	j
�}|j
|d�jdd�}ttt|�}|j|d�Sttt|jdd��S)�nNormalize case of pathname.

        Makes all characters lowercase and all slashes into backslashes.
        �surrogateescaperr)�os�fspathr5r6�sys�getfilesystemencoding�decode�replace�_LCMapStringEx�_LOCALE_NAME_INVARIANT�_LCMAP_LOWERCASE�encode)�s�encodings  r9r
r
3s���

�I�I�a�L����H��a����0�0�2�H�����#4�5�=�=�c�4�H�A��5�/��4�A��8�8�H�&7�8�8�!�"8�"2�"#�)�)�C��"6�8�
8r;c��tj|�}t|t�rFtjtj
|�j
dd�j��S|j
dd�j�S)r@rr)rBrCr5r6�fsencode�fsdecoderG�lower)rLs r9r
r
Fsb��

�I�I�a�L���a����;�;�r�{�{�1�~�5�5�c�4�@�F�F�H�I�I��y�y��d�#�)�)�+�+r;c���tj|�}t|t�rd}d}d}nd}d}d}|ddj	||�}|j|�s|j|d	�ry
y)zTest whether a path is absolute�\�/s:\rrz:\N��TF)rBrCr5r6rG�
startswith)rLr$r'�	colon_seps    r9rrWsn��
�	�	�!��A��!�U�������	������	�	�"�1��
�
�f�c�"�A�	�|�|�C��A�L�L��A�6��r;c�8�tj|�}t|t�rd}d}d}nd}d}d}	|s|dd|zt	|�\}}}ttj|�D]b}t	|�\}	}
}|
r|	s|s|	}|
}|}�|	r/|	|k7r*|	j
�|j
�k7r|	}|
}|}�N|	}|r|d|vr||z}||z}�d|r|s|r|dd||zvr||z|zS||z|zS#tttf$rtjd	|g|����wxYw)
NrSr3�:rr4�:r���r)rBrCr5r6r�maprQ�	TypeError�AttributeError�BytesWarning�genericpath�_check_arg_types)r8�pathsr$�seps�colon�result_drive�result_root�result_path�p�p_drive�p_root�p_paths            r9rrks_��
�9�9�T�?�D��$���������������!����!�H�s�N�1:�4��.��k�;��R�Y�Y��&�A�&/��l�#�G�V�V���,�#*�L�$��$����W��4��=�=�?�l�&8�&8�&:�:�#*�L�"(�K�"(�K��&���{�2��d�:�)�C�/��%��.�K�+'�.
���\�"�#�.�e�d�l�B��#�%��3�3��k�)�K�7�7���~�|�4���$�$�V�T�:�E�:�
��s�B/C,�$C,�,-Dc�.�t|�\}}}|||zfS)a�Split a pathname into drive/UNC sharepoint and relative path specifiers.
    Returns a 2-tuple (drive_or_unc, path); either part may be empty.

    If you assign
        result = splitdrive(p)
    It is always true that:
        result[0] + result[1] == p

    If the path contained a drive letter, drive_or_unc will contain everything
    up to and including the colon.  e.g. splitdrive("c:/dir") returns ("c:", "/dir")

    If the path contained a UNC path, the drive_or_unc will contain the host name
    and share up to but not including the fourth directory separator character.
    e.g. splitdrive("//host/computer/dir") returns ("//host/computer", "/dir")

    Paths cannot contain both a drive letter and a UNC path.

    )r)ri�drive�root�tails    r9r
r
�s#��&"�!���E�4���$��+��r;c��tj|�}t|t�rd}d}d}d}d}n
d}d}d}d	}d
}|j	||�}|dd|k(r||dd
|k(ri|ddj�|k(rdnd
}|j
||�}|dk(r|||fS|j
||dz�}	|	dk(r|||fS|d|	||	|	dz||	dzdfS||dd|ddfS|dd
|k(r!|d
d|k(r|dd
|d
d|ddfS|dd
||d
dfS|||fS)a�Split a pathname into drive, root and tail. The drive is defined
    exactly as in splitdrive(). On Windows, the root may be a single path
    separator or an empty string. The tail contains anything after the root.
    For example:

        splitroot('//server/share/') == ('//server/share', '/', '')
        splitroot('C:/Users/Barney') == ('C:', '/', 'Users/Barney')
        splitroot('C:///spam///ham') == ('C:', '/', '//spam///ham')
        splitroot('Windows/notepad') == ('', '', 'Windows/notepad')
    rSrTrZ�\\?\UNC\r;rrr[�\\?\UNC\�NrV��r\rU)rBrCr5r6rG�upper�find)
rir$r're�
unc_prefix�empty�normp�start�index�index2s
          r9rr�s���	�	�	�!��A��!�U��������$�
���������#�
���
�I�I�f�c�"�E��R�a�y�C����1�:����r�����*�j�8�A�a�E��J�J�s�E�*�E���{��%���&��Z�Z��U�Q�Y�/�F���|��%���&��W�f�:�q����
�3�Q�v��z�{�^�C�C��!�B�Q�%��1�2��&�&�	�q���u�	���1�:����R�a�5�!�A�a�&�!�A�B�%�'�'��R�a�5�%��1�2��&�&��e�Q��r;c��tj|�}t|�}t|�\}}}t	|�}|r||dz
|vr|dz}|r||dz
|vr�|d|||d}}||z|j|�z|fS)z~Split a pathname.

    Return tuple (head, tail) where tail is everything after the final slash.
    Either part may be empty.rVN)rBrCr:r�len�rstrip)rird�d�r�i�headrps       r9rr�s���
	�	�	�!��A����D���l�G�A�q�!��A��A�
��!�A�#��d�"�	�Q�����!�A�#��d�"��2�A���!�"��$�D��q�5�4�;�;�t�$�$�d�*�*r;c��tj|�}t|t�rt	j
|ddd�St	j
|ddd�S)NrSrT�.rrr)rBrCr5r6ra�	_splitext�ris r9rrsG��
�	�	�!��A��!�U���$�$�Q��t�T�:�:��$�$�Q��c�3�7�7r;c��t|�dS)z)Returns the final component of a pathnamerV�rr�s r9rr�����8�A�;�r;c��t|�dS)z-Returns the directory component of a pathnamerr�r�s r9rrr�r;�st_reparse_tagc��	tj|�}t|jtjk(�S#tttf$rYywxYw�z!Test whether a path is a junctionF)	rB�lstat�OSError�
ValueErrorr_�boolr��stat�IO_REPARSE_TAG_MOUNT_POINT�r8�sts  r9r1r1sM��	����$��B��B�%�%��)H�)H�H�I�I����^�4�	��	�s�=�A�Ac�.�tj|�yr�)rBrCr7s r9r1r1#s��
�	�	�$��r;c�Z�	tj|�}y#ttf$rYywxYw)zCTest whether a path exists.  Returns True for broken symbolic linksFT)rBr�r�r�r�s  r9rr+s2���
�X�X�d�^����
�Z� ����s��*�*)�_getvolumepathnamec�>�tj|�}t|�}t|�}t	|�\}}}|r
|d|vr|S|r|syt
rL|j
|�}t|�j
|�}|j�|j�k(Sy)zaTest whether a path is a mount point (a drive root, the root of a
    share, or a mounted volume)rTF)rBrCr:r!rr�r��casefold)r8rdrnro�rest�x�ys       r9rrAs����9�9�T�?�D����D��4�=�D�!�$���E�4����q��T�!��x���D����K�K�����d�#�*�*�4�0���z�z�|�q�z�z�|�+�+�r;c�8�tj|�}t|t�rd}nd}|j	|�s|Sdt|�}}||kr+||t
|�vr|dz
}||kr||t
|�vr�dtjvrtjd}nEdtjvr|S	tjd}t|tjd�}|dk7rs|d|}t|t�rtj|�}tjjd�}||k7r%|t|�k7r|Stt|�|�}t|t�rtj|�}|||d	zS#t$rd}Y��wxYw)
zLExpand ~ and ~user constructs.

    If user or $HOME is unknown, do nothing.�~�~rV�USERPROFILE�HOMEPATH�	HOMEDRIVErt�USERNAMEN)rBrCr5r6rWr�r:�environ�KeyErrorrrP�getrrrO)r8�tilder��n�userhomern�target_user�current_users        r9rr^s{���9�9�T�?�D��$��������?�?�5�!����c�$�i�q�A�
�a�%�D��G�=��#6�6�	�Q����a�%�D��G�=��#6�6���
�
�"��:�:�m�,��
�2�:�:�
%���	��J�J�{�+�E���r�z�z�*�5�6���A�v��1�Q�i���k�5�)��+�+�k�2�K��z�z�~�~�j�1���,�&��x��1�1����G�H�-�{�;�H��$����;�;�x�(���d�1�2�h����/�	��E�	�s�6F�F�Fc���tj|�}t|t�rPd|vrd|vr|Sddl}t|j
|jzdzd�}d}d}d}d	}d}ttd
d�}nDd|vrd|vr|Sddl}|j
|jzdz}d
}d}d}d}d}tj}|dd}	d}
t|�}|
|k�r||
|
dz}||k(r5||
dzd}t|�}	|j|�}
|	||d|
dzzz
}	�n�||k(r�||
dz|
dz|k(r|	|z
}	|
dz
}
�n�||
dzd}t|�}	|j|�}
|d|
}
	|�:tjtjtj|
��}n||
}|	|z
}	�n%||k(�r||
dz|
dz|k(r|	|z
}	|
dz
}
�n||
dz|
dz|k(rr||
dzd}t|�}	|j|�}
|d|
}
	|�:tjtjtj|
��}n||
}|	|z
}	n�|dd}
|
dz
}
||
|
dz}|r||vr|
|z
}
|
dz
}
||
|
dz}|r||vr�	|�:tjtjtj|
��}n||
}|	|z
}	|r|
dz}
n|	|z
}	|
dz
}
|
|kr��|	S#t$r|	||zz
}	|dz
}
Y�&wxYw#t$r||
z|z}Y��jwxYw#t$r|	||zz
}	|dz
}
Y�ZwxYw#t$r||z|
z|z}Y��wxYw#t$r|	||z|zz
}	|dz
}
Y��wxYw#t$r||
z}Y��wxYw)zfExpand shell variables of the forms $var, ${var} and %var%.

    Unknown variables are left unchanged.�$�%rNz_-�ascii�'�{�}�environb�$�%�'�{�}rVru)rBrCr5r6�string�
ascii_letters�digits�getattrr�r�r}r�rOrPr�)r8r��varchars�quote�percent�brace�rbrace�dollarr��resr}�pathlen�c�var�values               r9rr�sH���9�9�T�?�D��$����t���D� 0��K����-�-��
�
�=��D�g�N�������������"�j�$�/���d�?�s�$���K���'�'�&�-�-�7�$�>�������������*�*��
�r��(�C�
�E��$�i�G�
�'�/���u�Q�w�����:����	�
�#�D��$�i�G�
$��
�
�1�
���q�4�
����+�+�+���'�\��E�A�I�e�a�i�(�G�3��q�����
���E�!�G�H�~���d�)��!� �J�J�w�/�E�
�v��,�C�8�"�?�$&�K�K��
�
�2�;�;�s�;K�0L�$M�E�$+�C�L�E��5�L�C�
�&�[��E�A�I�e�a�i�(�F�2��q�����
���e�a�i���	�*�e�3��E�!�G�H�~���d�)��!� �J�J�v�.�E�
�v��,�C�>�"�?�$&�K�K��
�
�2�;�;�s�;K�0L�$M�E�$+�C�L�E��5�L�C��2�A�h����
����u�q�y�)���A��M��1�H�C��Q�J�E��U�5�1�9�-�A��A��M�)��� "���B�J�J�r�{�{�3�7G�,H� I�� '�����u�����Q�J�E��1�H�C�
��
��W�'�/�X�J��I�
$��q�4�x����!���
$��,$�8� '�#�
�� 7��8��"�(��7�T�>�)�C�#�a�K�E�(��@$�>� &���� 4�v� =��>��"�(��6�E�>�D�0�0�C�#�a�K�E�(��4 �)�"�S�L�E�)�so�3K�L
�AK5�(M�?AL)�8AM"�K2�1K2�5L
�	L
�
L&�%L&�)M�?M�M�M�"M3�2M3)�_path_normpathc��tj|�}t|t�r	d}d}d}d}nd}d}d}d}|j	||�}t|�\}}}||z}|j
|�}d	}	|	t|�kr_||	r||	|k(r||	=n?||	|k(r2|	d	kDr||	d
z
|k7r||	d
z
|	d
z�=|	d
z}	n|	d	k(r|r||	=n|	d
z
}	n|	d
z
}	|	t|�kr�_|s|s|j|�||j|�zS)z0Normalize path, eliminating double slashes, etc.rSrTr��..rrrrrrV)
rBrCr5r6rGrrr��appendr)
r8r$r'r"r#rnro�prefix�compsr�s
          r9r r s3���y�y�����d�E�"��C��F��F��F��C��F��F��F��|�|�F�C�(��%�d�O���t�T������
�
�3���
���#�e�*�n���8�u�Q�x�6�1��!�H��q��V�#��q�5�U�1�Q�3�Z�6�1��a��c�!�A�#�g����F�A��!�V���a����F�A��Q����#�e�*�n��e��L�L�� �������'�'r;c���tj|�}t|�sEt|t�rtj
�}ntj�}t||�}t|�S)z�Return the absolute version of a path as a fallback function in case
    `nt._getfullpathname` is not available or raises OSError. See bpo-31047 for
    more.

    )	rBrCrr5r6�getcwdb�getcwdrr )r8�cwds  r9�_abspath_fallbackr�4sM���9�9�T�?�D���;��d�E�"��*�*�,�C��)�)�+�C��C�����D�>�r;)�_getfullpathnamec�l�	tt|��S#ttf$rt	|�cYSwxYw)z&Return the absolute version of a path.)r�r r�r�r�r7s r9r!r!Ls5��	+�#�H�T�N�3�3����$�	+�$�T�*�*�	+�s��3�3)�_getfinalpathname�readlinkc�x�d}t�}t|�|vro|jt|��	|}t|�}t	|�s.t|�s|}	|St
tt|�|��}t|�|vr�o|S#t$r}|j|vrYd}~|S�d}~wt$rY|SwxYw)N)rVrurU��� �2�C�Wi&i(i))�setr
�add�_nt_readlinkrrr rrr��winerrorr�)r8�allowed_winerror�seen�old_path�exs     r9�_readlink_deepr�Ys���L���u���t�n�D�(��H�H�X�d�^�$�
���#�D�)���T�{�"�(�+�'�����$�D���):�D�$A�B�D��t�n�D�(�,����
��;�;�"2�2��
��	���
����
�s)�%B�B�	B9�B)�(B)�)B9�8B9c�f�d}|dd}|r	t|�}|rt||�S|S|S#t$r{}|j|vr�	t	|�}||k7r|rt||�n|cYd}~Sn#t$rYnwxYwt|�\}}|r|s
||zcYd}~S|rt||�n|}Yd}~nd}~wwxYw|r����)N)rVrurUr�r�r�r��5�Ar�r��{�i�i�r)r�rr�r�r�r)r8r�rpr��new_path�names      r9�_getfinalpathname_nonstrictr��s���$X���B�Q�x���
:�(��.��+/�t�D�$�'�9�T�9�*���)�
:��;�;�&6�6��	� .�d�3�H��4�'�7;�t�H�d�3��I�(�������#�4�[�
��d����$�;�&�+/�t�D�$�'�T���'
:��	�sN�(�(�	B,�B'�A'� B,�&B'�'	A3�0B'�2A3�3B'�B,�B'�'B,F)�strictc��t|�}t|t�rId}d}d}tj�}t|�ttjt��k(r7yd}d}d}tj�}t|�tt�k(ry|j|�}|st|�st||�}	t|�}d	}|sU|j|�rD|j|�r||t%|�dz}	n|t%|�d}		t|	�|k(r|	}|S|S#t$r,}|rtt|��d�t|�}Yd}~��d}~wt$r$}|r�|j }t#|�}Yd}~��d}~wwxYw#t$r}Yd}~|Sd}~wt$r}|j k(r|	}Yd}~|Sd}~wwxYw)
Ns\\?\rrs\\s\\.\NULz\\?\rsz\\z\\.\NULr)r r5r6rBr�r
rOr)r�rWrrr�r�r��strr�r�r�)
r8r�r�ry�new_unc_prefixr��
had_prefix�initial_winerrorr��spaths
          r9r*r*�s�����~���d�E�"��F�(�J�$�N��*�*�,�C���~��"�+�+�g�*>�!?�?�$��F�'�J�#�N��)�)�+�C���~��'�!2�2�#��_�_�V�,�
��%��+���T�?�D�	5�$�T�*�D� ��"�d�o�o�f�5����z�*�&��c�*�o�.>�)?�?���S��[�\�*��
!�$�U�+�t�3� �D���t���I�	"�
��c�"�g�&�D�0��D�>�D���	5���!�{�{��.�t�4�D��		5��&�
������
!��;�;�"2�2� �D�����
!�sB�
D,�F�,	F�5"E�F�(F�F�	G�G�*G�GTc�L�tj|�}t|t�rd}d}d}nd}d}d}|�|}|st	d��tj|�}	tt
|��}tt
|��}t|�\}}}	t|�\}
}}t|�t|
�k7rt	d	|
�d
|����|	j|�D�cgc]}|s�|��	}
}|j|�D�cgc]}|s�|��	}}d}t|
|�D]#\}}t|�t|�k7rn|dz
}�%|gt|
�|z
z||dz}|s|St|�Scc}wcc}w#ttttt f$rt#j$d
||��wxYw)z#Return a relative version of a pathrSr�r�rrrNzno path specifiedzpath is on mount z, start on mount rrVr,)rBrCr5r6r�r!r rr
r�zipr�rr^r_r`�DeprecationWarningrarb)r8r|r$r"r#�	start_abs�path_abs�start_drive�_�
start_rest�
path_drive�	path_restr��
start_list�	path_listr��e1�e2�rel_lists                   r9r,r,�s���
�9�9�T�?�D��$����������������}�����,�-�-��I�I�e��E���H�U�O�,�	��8�D�>�*��%.�y�%9�"��Q�
�#,�X�#6� �
�A�y��K� �H�Z�$8�8���K�)�*�
*�",�!1�!1�#�!6�<�!6�A�!�a�!6�
�<� )���� 4�:� 4�1��Q� 4�	�:�
���*�i�0�F�B����|�x��|�+��
��F�A�1�
�8�s�:��q�0�1�I�a�b�M�A����M��X����=��:��
�z�>�<�AS�T���$�$�Y��e�<�
��s>�BE,�E"�#E"�'E,�<E'�E'�AE,�E,�"
E,�,7F#c
�`�|std��tttj|��}t|dt�rd}d}d}nd}d}d}	|D�cgc]+}t|j||�j����-}}|D���cgc]\}}}|j|���}}}}t|D���chc]\}}}|��
c}}}�d	k7rtd
��t|D���chc]\}}}|��
c}}}�d	k7rtd��t|dj||��\}	}
}|j|�}|D�
cgc]
}
|
s�|
|k7s�|
��}}
|D��
cgc]}|D�
cgc]
}
|
s�|
|k7s�|
��c}
��}}}
t|�}t|�}t|�D]\}}
|
||k7s�|d|}n|dt|�}|	|
z|j|�zScc}wcc}}}wcc}}}wcc}}}wcc}
wcc}
wcc}
}w#t t"f$rt%j&d
g|����wxYw)zDGiven a sequence of path names, returns the longest common sub-path.z%commonpath() arg is an empty sequencerrSrTr�rrrrVz%Can't mix absolute and relative pathszPaths don't have the same driveNr0)r��tupler]rBrCr5r6rrGrQrr��min�max�	enumeraterr^r_rarb)rcr$r'r"ri�drivesplitsr�r��split_pathsrnror8�commonr�rL�s1�s2r�s                  r9r0r0.s-����@�A�A��#�b�i�i��'�(�E��%��(�E�"��������������JO�P�%�Q�y����6�3�!7�!=�!=�!?�@�%��P�3>�?�;���1�a�q�w�w�s�|�;��?���-��g�a��A���-�.�!�3��D�E�E�
��-��g�a��A���-�.�!�3��>�?�?�%�e�A�h�&6�&6�v�s�&C�D���t�T����C���#�9�V��q�Q�&�[�!�V��9�DO�P�K�q�1�:�1�a��a�6�k��1�:�K��P�
��
��
��
���b�M�D�A�q��B�q�E�z�������"�
�H�S��W�%�F��t�|�c�h�h�v�.�.�.��5Q��?��-��.��
:��:��P��
�~�&���$�$�\�:�E�:�
��s��H�0G�H�G!�*H�9
G(�"H�(
G/�5AH�G6�G6�G6�H�	H�%G;�-G;�3G;�7H�<2H�/,H�H�;H�H�'H-)�_path_isdir)�_path_isfile)�_path_islink)�_path_exists)�_path_isdevdrivec�J�	tt|��S#t$rYywxYw�z@Determines whether the specified path is on a Windows Dev Drive.F)rr!r�r7s r9�
isdevdriverts(��	�#�G�D�M�2�2���	��	�s��	"�"c��yr�r7s r9rros��r;)N)B�__doc__r"r#r(r$r%r'r&r)rBrDr�ra�__all__r:�_winapir<rHr=rIr>rJr
�ImportErrorrrr
rrrr�rr�hasattr�stat_resultr1r�ntr�rrrr�r r�r�r!r�r�r�r�r�r*r+r,r0rrrrrrrrrrrr;r9�<module>r$s����

��	
��	��
��

��	��
��
��	�
����O���!,�-�-�
8�H�(+�b�.1�r
+�*8��(�(�0�0���
���2�>�>�+�,�J���$�%��:-�zj�`&(�-�P�"+�#�+�]�>�
(�T/�b"'�<�@"��+�p.�b
	�(�)�)�)�
�#���_�	,�,�	,��t������^�#(�"(�#(��t� ��G� �����H���d�	��	������s}�
C3�D�D�(D�2D)�D6�)E�3C>�=C>�D�
D�D�D�D&�%D&�)D3�2D3�6D>�=D>�E�E

?>