%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3/dist-packages/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3/dist-packages/__pycache__/zipp.cpython-312.pyc

�

LJ�f���ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	e
Zd�Zd�Z
Gd�d�ZGd�d�Zy)	�)�divisionNc�B�tjt|�dd�S)a2
    Given a path with elements separated by
    posixpath.sep, generate all parents of that path.

    >>> list(_parents('b/d'))
    ['b']
    >>> list(_parents('/b/d/'))
    ['/b']
    >>> list(_parents('b/d/f/'))
    ['b/d', 'b']
    >>> list(_parents('b'))
    []
    >>> list(_parents(''))
    []
    �N)�	itertools�islice�	_ancestry��paths �&/usr/lib/python3/dist-packages/zipp.py�_parentsrs�� ���I�d�O�Q��5�5�c#��K�|jtj�}|rH|tjk7r4|��tj|�\}}|r|tjk7r�2yyyy�w)aR
    Given a path with elements separated by
    posixpath.sep, generate all elements of that path

    >>> list(_ancestry('b/d'))
    ['b/d', 'b']
    >>> list(_ancestry('/b/d/'))
    ['/b/d', '/b']
    >>> list(_ancestry('b/d/f/'))
    ['b/d/f', 'b/d', 'b']
    >>> list(_ancestry('b'))
    ['b']
    >>> list(_ancestry(''))
    []
    N)�rstrip�	posixpath�sep�split)r
�tails  rrr%sV���� �;�;�y�}�}�%�D�
�4�9�=�=�(��
��_�_�T�*�
��d��4�9�=�=�(�$�(�$�s�A&A-�)A-c�2��eZdZdZ�fd�Zed��Z�xZS)�SanitizedNamesz7
    ZipFile mix-in to ensure names are sanitized.
    c�Z��tt|jt�|����S�N)�list�map�	_sanitize�super�namelist)�self�	__class__s �rrzSanitizedNames.namelist?s!����C������(8�(:�;�<�<r
c��d�}tjdd|tj��}|jdd�}|j	d�}djt
||��}|std��|d|jd�zzS)a]
        Ensure a relative path with posix separators and no dot names.
        Modeled after
        https://github.com/python/cpython/blob/bcc1be39cb1d04ad9fc0bd1b9193d3972835a57c/Lib/zipfile/__init__.py#L1799-L1813
        but provides consistent cross-platform behavior.
        >>> san = SanitizedNames._sanitize
        >>> san('/foo/bar')
        'foo/bar'
        >>> san('//foo.txt')
        'foo.txt'
        >>> san('foo/.././bar.txt')
        'foo/bar.txt'
        >>> san('foo../.bar.txt')
        'foo../.bar.txt'
        >>> san('\\foo\\bar.txt')
        'foo/bar.txt'
        >>> san('D:\\foo.txt')
        'D/foo.txt'
        >>> san('\\\\server\\share\\file.txt')
        'server/share/file.txt'
        >>> san('\\\\?\\GLOBALROOT\\Volume3')
        '?/GLOBALROOT/Volume3'
        >>> san('\\\\.\\PhysicalDrive1\\root')
        'PhysicalDrive1/root'
        Retain any trailing slash.
        >>> san('abc/')
        'abc/'
        Raises a ValueError if the result is empty.
        >>> san('../..')
        Traceback (most recent call last):
        ...
        ValueError: Empty filename
        c��|xr|dvS)N>�..�.�)�parts r�allowedz)SanitizedNames._sanitize.<locals>.allowedfs���3�D��3�3r
z	^([A-Z]):z\1)�flags�\�/zEmpty filename)	�re�sub�
IGNORECASE�replacer�join�filter�
ValueError�endswith)�namer%�bare�clean�parts�joineds      rrzSanitizedNames._sanitizeBs}��H	4�
�v�v�k�5�$�b�m�m�D�����T�3�'�����C� �����&��%�0�1����-�.�.���d�m�m�C�0�0�0�0r
)�__name__�
__module__�__qualname__�__doc__r�staticmethodr�
__classcell__)rs@rrr:s!����=��.1��.1r
rc���eZdZdZdZdd�Zed��Zed��Z	ed��Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�ZeZed��Zed��Zed��Zd�Zej:dkreZyy)�Pathu�
    A pathlib-compatible interface for zip files.

    Consider a zip file with this structure::

        .
        ├── a.txt
        └── b
            ├── c.txt
            └── d
                └── e.txt

    >>> data = io.BytesIO()
    >>> zf = zipfile.ZipFile(data, 'w')
    >>> zf.writestr('a.txt', 'content of a')
    >>> zf.writestr('b/c.txt', 'content of c')
    >>> zf.writestr('b/d/e.txt', 'content of e')
    >>> zf.filename = 'abcde.zip'

    Path accepts the zipfile object itself or a filename

    >>> root = Path(zf)

    From there, several path operations are available.

    Directory iteration (including the zip file itself):

    >>> a, b = root.iterdir()
    >>> a
    Path('abcde.zip', 'a.txt')
    >>> b
    Path('abcde.zip', 'b/')

    name property:

    >>> b.name
    'b'

    join with divide operator:

    >>> c = b / 'c.txt'
    >>> c
    Path('abcde.zip', 'b/c.txt')
    >>> c.name
    'c.txt'

    Read text:

    >>> c.read_text()
    'content of c'

    existence:

    >>> c.exists()
    True
    >>> (b / 'missing.txt').exists()
    False

    Coercion to string:

    >>> str(c)
    'abcde.zip/b/c.txt'
    z>{self.__class__.__name__}({self.root.filename!r}, {self.at!r})c��t|tj�r|n#tj|j|��|_||_yr)�
isinstance�zipfile�ZipFile�_pathlib_compat�root�at)rrCrDs   r�__init__z
Path.__init__�s>���$����0�
�����!5�!5�d�!;�<�	
�	�
��r
c�X�	|j�S#t$rt|�cYSwxYw)zu
        For path-like objects, convert to a filename for compatibility
        on Python 3.6.1 and earlier.
        )�
__fspath__�AttributeError�strr	s rrBzPath._pathlib_compat�s-��	��?�?�$�$���	��t�9��	�s��)�)c�j�tj|jj|j�Sr)�	functools�partialrC�openrD�rs rrMz	Path.open�s!��� � ���������9�9r
c�^�tj|jjd��S�Nr()r�basenamerDrrNs rr1z	Path.name�s ���!�!�$�'�'�.�.��"5�6�6r
c��|j�5}tj|g|��i|��j�cddd�S#1swYyxYwr)rM�io�
TextIOWrapper�read)r�args�kwargs�strms    r�	read_textzPath.read_text�sG��
�Y�Y�[�	B�D��#�#�D�:�4�:�6�:�?�?�A�	B�	B�	B�s�'A�Ac�n�|j�5}|j�cddd�S#1swYyxYwr)rMrU)rrXs  r�
read_byteszPath.read_bytes�s+��
�Y�Y�[�	�D��9�9�;�	�	�	�s�+�4c��tj|jjd��|jjd�k(SrP)r�dirnamerDr)rr
s  r�	_is_childzPath._is_child�s2��� � �������!4�5�������9L�L�Lr
c�.�t|j|�Sr)r=rC)rrDs  r�_nextz
Path._next�s���D�I�I�r�"�"r
c�V�|jxs|jjd�SrP)rDr0rNs r�is_dirzPath.is_dir�s"���7�7�{�3�d�g�g�.�.�s�3�3r
c�$�|j�Sr)rbrNs r�is_filezPath.is_file�s���;�;�=� � r
c�:�|j|j�vSr)rD�_namesrNs r�existszPath.exists�s���w�w�$�+�+�-�'�'r
c��|j�std��t|j|j	��}t|j|�S)NzCan't listdir a file)rbr/rr`rfr.r^)r�subss  r�iterdirzPath.iterdir�s>���{�{�}��3�4�4��4�:�:�t�{�{�}�-���d�n�n�d�+�+r
c�j�tj|jj|j�Sr)rr-rC�filenamerDrNs r�__str__zPath.__str__�s!���~�~�d�i�i�0�0�$�'�'�:�:r
c�:�|jj|��S)NrN)�_Path__repr�formatrNs r�__repr__z
Path.__repr__�s���{�{�!�!�t�!�,�,r
c��|j|�}tj|j|�}tj|j|d�}|j	�}|j||vr
||vr|�S|�S)N�)rBrr-rDrfr`)r�add�next�next_dir�namess     r�joinpathz
Path.joinpath�sm���"�"�3�'���~�~�d�g�g�s�+���>�>�$�'�'�3��3�����
���z�z�d�%�&7�H��<M�(�X�X�SW�X�Xr
c�@��tj�fd��D��S)Nc3�V�K�|] }t|�D]}|dz�vr|dz����"y�w)r(N)r)�.0r1�parentrws   �r�	<genexpr>z%Path._implied_dirs.<locals>.<genexpr>�sB�����.
��"�4�.�.
����|�5�(�
�S�L�.
��.
�s�&))�more_itertools�unique_everseen)rws`r�
_implied_dirszPath._implied_dirs�s#����-�-�.
��.
�
�	
r
c�<�|t|j|��zSr)rr�)�clsrws  r�_add_implied_dirszPath._add_implied_dirss���t�C�-�-�e�4�5�5�5r
c��tj|jjd��}|r|dz
}|j	|�SrP)rr]rDrr`)r�	parent_ats  rr|zPath.parent
s;���%�%�d�g�g�n�n�S�&9�:�	�����I��z�z�)�$�$r
c	��|jtttj|j
j
����Sr)r�rrrrrCrrNs rrfzPath._namess2���%�%�d�3�~�/G�/G����I[�I[�I]�+^�&_�`�`r
)�N)rs)r6r7r8r9rorEr:rB�propertyrMr1rYr[r^r`rbrdrgrjrmrqrx�__truediv__r��classmethodr�r|rf�sys�version_info�__div__r#r
rr=r=ss���>�@N�F�������:��:��7��7�B��M�#�4�!�(�,�;�-�Y��K��
��
��6��6��%��%�a����$����r
r=)�
__future__rrSr�rr@rKrr)r~�type�
__metaclass__rrrr=r#r
r�<module>r�sH�� �	�
�����	���
�6�&+�*71�71�rb�br

Zerion Mini Shell 1.0