%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python3/dist-packages/setuptools/_vendor/jaraco/__pycache__/
Upload File :
Create Path :
Current File : //usr/lib/python3/dist-packages/setuptools/_vendor/jaraco/__pycache__/context.cpython-312.pyc

�


_�d$���ddlZddlZddlZddlZddlZddlZddlZddlZejd��Z	ejdde	fd��Z
d�Zejejfd��Z
ejdde
fd��Zejd��ZGd	�d
�ZGd�dej"ej$�ZGd
�dej$�Zy)�Nc#��K�tj�}tj|�	|��tj|�y#tj|�wxYw�w)z�
    >>> tmp_path = getfixture('tmp_path')
    >>> with pushd(tmp_path):
    ...     assert os.getcwd() == os.fspath(tmp_path)
    >>> assert os.getcwd() != os.fspath(tmp_path)
    N)�os�getcwd�chdir)�dir�origs  �C/usr/lib/python3/dist-packages/setuptools/_vendor/jaraco/context.py�pushdr
s>�����9�9�;�D��H�H�S�M���	�
�����������s�*A!�A�A!�A�A!c
#�K�|�?tjj|�jdd�jdd�}|�&t	j
tjd��}ntjdt�|djdit����	d	}d
}dj||f�}||jddt|�it����||�5|��ddd�|d
jdit����y#1swY�*xYw#|d
jdit����wxYw�w)z�
    Get a tarball, extract it, change to that directory, yield, then
    clean up.
    `runner` is the function to invoke commands.
    `pushd` is a context manager for changing the directory.
    Nz.tar.gz�z.tgzT)�shellzrunner parameter is deprecatedzmkdir {target_dir}zwget {url} -O -z7tar x{compression} --strip-components=1 -C {target_dir}z | �compressionzrm -Rf {target_dir}�)r�path�basename�replace�	functools�partial�
subprocess�
check_call�warnings�warn�DeprecationWarning�format�vars�join�infer_compression)�url�
target_dir�runnerr
�getter�extract�cmds       r	�tarball_contextr$s,�������W�W�%�%�c�*�2�2�9�b�A�I�I�&�RT�U�
�
�~��"�"�:�#8�#8��E���
�
�6�8J�K�
�&��&�&�0���0�1�7�"��K���j�j�&�'�*�+���z�s�z�z�G�&7��&<�G���G�H�
�:�
�	���	�	�+�$�+�+�5�d�f�5�6�	�	��	�+�$�+�+�5�d�f�5�6�s7�B$E�'A
D+�1D�6D+�>!E�D(�$D+�+"E
�
Ec�L�|dd}tddd��}|j|d�S)a
    Given a URL or filename, infer the compression code for tar.

    >>> infer_compression('http://foo/bar.tar.gz')
    'z'
    >>> infer_compression('http://foo/bar.tgz')
    'z'
    >>> infer_compression('file.bz')
    'j'
    >>> infer_compression('file.xz')
    'J'
    ���N�z�j�J)�gz�bz�xz)�dict�get)r�compression_indicator�mappings   r	rr:s0�� ���H���c�c�c�*�G��;�;�,�c�2�2�c#�hK�tj�}	|��||�y#||�wxYw�w)aN
    Create a temporary directory context. Pass a custom remover
    to override the removal behavior.

    >>> import pathlib
    >>> with temp_dir() as the_dir:
    ...     assert os.path.isdir(the_dir)
    ...     _ = pathlib.Path(the_dir).joinpath('somefile').write_text('contents')
    >>> assert not os.path.exists(the_dir)
    N)�tempfile�mkdtemp)�remover�temp_dirs  r	r6r6Ns0�������!�H�����������s�2�%�	2�
/�2Tc#�K�d|vrdnd}|�5}|d||g}|r|jd|g�ttjjd�}|r|nd}tj||��|��ddd�y#1swYyxYw�w)z�
    Check out the repo indicated by url.

    If dest_ctx is supplied, it should be a context manager
    to yield the target directory for the check out.
    �git�hg�clonez--branch�wN)�stdout)�extend�openrr�devnullrr)	r�branch�quiet�dest_ctx�exe�repo_dirr#r?r<s	         r	�repo_contextrEas������C�<�%�T�C�	���x��G�S�(�+����J�J�
�F�+�,��r�w�w����,��!��t�����c�&�1������s�B�A!A<�3	B�<B�Bc#�K�d��y�w)z�
    A null context suitable to stand in for a meaningful context.

    >>> with null() as value:
    ...     assert value is None
    Nrrr1r	�nullrGts����
�s�c�t�eZdZdZdZeffd�Zd�Zed��Z	ed��Z
ed��Zd�Zd	�Z
ed
�d�Zd�Zy
)�
ExceptionTrapa�
    A context manager that will catch certain exceptions and provide an
    indication they occurred.

    >>> with ExceptionTrap() as trap:
    ...     raise Exception()
    >>> bool(trap)
    True

    >>> with ExceptionTrap() as trap:
    ...     pass
    >>> bool(trap)
    False

    >>> with ExceptionTrap(ValueError) as trap:
    ...     raise ValueError("1 + 1 is not 3")
    >>> bool(trap)
    True
    >>> trap.value
    ValueError('1 + 1 is not 3')
    >>> trap.tb
    <traceback object at ...>

    >>> with ExceptionTrap(ValueError) as trap:
    ...     raise Exception()
    Traceback (most recent call last):
    ...
    Exception

    >>> bool(trap)
    False
    )NNNc��||_y�N)�
exceptions)�selfrLs  r	�__init__zExceptionTrap.__init__�s	��$��r1c��|SrKr�rMs r	�	__enter__zExceptionTrap.__enter__�����r1c� �|jdS�Nr��exc_inforPs r	�typezExceptionTrap.type�����}�}�Q��r1c� �|jdS)N�rUrPs r	�valuezExceptionTrap.value�rXr1c� �|jdS)N�rUrPs r	�tbzExceptionTrap.tb�rXr1c�V�|d}|xrt||j�}|r||_|SrT)�
issubclassrLrV)rMrVrW�matchess    r	�__exit__zExceptionTrap.__exit__�s/����{���<�:�d�D�O�O�<���$�D�M��r1c�,�t|j�SrK)�boolrWrPs r	�__bool__zExceptionTrap.__bool__�s���D�I�I��r1��_testc�J����tj�����fd��}|S)a�
        Wrap func and replace the result with the truth
        value of the trap (True if an exception occurred).

        First, give the decorator an alias to support Python 3.8
        Syntax.

        >>> raises = ExceptionTrap(ValueError).raises

        Now decorate a function that always fails.

        >>> @raises
        ... def fail():
        ...     raise ValueError('failed')
        >>> fail()
        True
        c�x��t�j�5}�|i|��ddd���S#1swY�xYwrK)rIrL)�args�kwargs�traprg�funcrMs   ���r	�wrapperz%ExceptionTrap.raises.<locals>.wrapper�s=����t���/�
&�4��d�%�f�%�
&���;��
&�
&�s�	0�9)r�wraps)rMrmrgrns``` r	�raiseszExceptionTrap.raises�s'���&
����	�	�
�	�
�r1c�D�|j|tj��S)a�
        Wrap func and replace the result with the truth
        value of the trap (True if no exception).

        First, give the decorator an alias to support Python 3.8
        Syntax.

        >>> passes = ExceptionTrap(ValueError).passes

        Now decorate a function that always fails.

        >>> @passes
        ... def fail():
        ...     raise ValueError('failed')

        >>> fail()
        False
        rf)rp�operator�not_)rMrms  r	�passeszExceptionTrap.passes�s��&�{�{�4�x�}�}�{�5�5r1N)�__name__�
__module__�__qualname__�__doc__rV�	ExceptionrNrQ�propertyrWr[r^rbrerdrprtrr1r	rIrIss���B �H�#,�,�%��� �� �� �� �� �� ���%)��66r1rIc��eZdZdZy)�suppressz�
    A version of contextlib.suppress with decorator support.

    >>> @suppress(KeyError)
    ... def key_error():
    ...     {}['']
    >>> key_error()
    N)rurvrwrxrr1r	r|r|�s��r1r|c�(�eZdZdZ		dd�Zd�Zd�Zy)�on_interrupta
    Replace a KeyboardInterrupt with SystemExit(1)

    >>> def do_interrupt():
    ...     raise KeyboardInterrupt()
    >>> on_interrupt('error')(do_interrupt)()
    Traceback (most recent call last):
    ...
    SystemExit: 1
    >>> on_interrupt('error', code=255)(do_interrupt)()
    Traceback (most recent call last):
    ...
    SystemExit: 255
    >>> on_interrupt('suppress')(do_interrupt)()
    >>> with __import__('pytest').raises(KeyboardInterrupt):
    ...     on_interrupt('ignore')(do_interrupt)()
    c� �||_||_yrK)�action�code)rMr�r�s   r	rNzon_interrupt.__init__s�������	r1c��|SrKrrPs r	rQzon_interrupt.__enter__rRr1c��|tus|jdk(ry|jdk(rt|j�|�|jdk(S)N�ignore�errorr|)�KeyboardInterruptr��
SystemExitr�)rM�exctype�excinst�exctbs    r	rbzon_interrupt.__exit__sE���+�+�t�{�{�h�/F��
�[�[�G�
#��T�Y�Y�'�W�4��{�{�j�(�(r1N)r�rZ)rurvrwrxrNrQrbrr1r	r~r~�s ���(����)r1r~)rr�
contextlibrr3�shutilrrr�contextmanagerr
r$r�rmtreer6rErGrIr|�ContextDecoratorr~rr1r	�<module>r�s���	�����
������
��
� ���$(��U�7��7�:3�(����]�]����$���!������$���
��
�n6�n6�b�z�"�"�J�$?�$?��%)�:�.�.�%)r1

Zerion Mini Shell 1.0