HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //snap/certbot/4965/lib/python3.12/site-packages/setuptools/__pycache__/_path.cpython-312.pyc
�

9�h����UddlmZddlZddlZddlZddlmZmZmZddl	m
Z
erddlmZee
eje
fZded<edee
eje
f�	�Zd
�Zdd�Zdd�Zdd
�Zej,d��Zy)�)�annotationsN)�
TYPE_CHECKING�TypeVar�Union)�unique_everseen)�	TypeAliasr�StrPath�StrPathT)�boundc�p�tjj|�}tj|d��y)z1Ensure that the parent directory of `path` existsT)�exist_okN)�os�path�dirname�makedirs)rrs  ��/build/snapcraft-certbot-c9561b03ef7f16aa90eb6754ca5f17a1/parts/certbot/install/lib/python3.12/site-packages/setuptools/_path.py�ensure_directoryrs"���g�g�o�o�d�#�G��K�K��$�'�c�0�t|�t|�k(S)a�Differs from os.path.samefile because it does not require paths to exist.
    Purely string based (no comparison between i-nodes).
    >>> same_path("a/b", "./a/b")
    True
    >>> same_path("a/b", "a/./b")
    True
    >>> same_path("a/b", "././a/b")
    True
    >>> same_path("a/b", "./a/b/c/..")
    True
    >>> same_path("a/b", "../a/b/c")
    False
    >>> same_path("a", "a/b")
    False
    )�normpath)�p1�p2s  r�	same_pathrs�� �B�<�8�B�<�'�'rc�j�tjdk(rtjj	|�S|S)a
    Contrary to POSIX 2008, on Cygwin, getcwd (3) contains
    symlink components. Using
    os.path.abspath() works around this limitation. A fix in os.getcwd()
    would probably better, in Cygwin even more so, except
    that this seems to be by design...
    �cygwin)�sys�platformrr�abspath��filenames r�
_cygwin_patchr!*s'��),����(@�2�7�7�?�?�8�$�N�h�Nrc	���tjjtjjtjj	t|����S)z2Normalize a file/dir name for comparison purposes.)rr�normcase�realpathrr!rs rrr5s:��
�7�7���B�G�G�,�,�R�W�W�-=�-=�m�H�>U�-V�W�X�Xrc#�hK�t�}tjjd|�}tjjdd�}	tjjt
|��}td||g�}tjj|�}|r|tjd<d��||ur!tjjdd�y|tjd<y#||ur!tjjdd�w|tjd<wxYw�w)a�
    Add the indicated paths to the head of the PYTHONPATH environment
    variable so that subprocesses will also see the packages at
    these paths.

    Do this in a context that restores the value on exit.

    >>> getfixture('monkeypatch').setenv('PYTHONPATH', 'anything')
    >>> with paths_on_pythonpath(['foo', 'bar']):
    ...     assert 'foo' in os.environ['PYTHONPATH']
    ...     assert 'anything' in os.environ['PYTHONPATH']
    >>> os.environ['PYTHONPATH']
    'anything'

    >>> getfixture('monkeypatch').delenv('PYTHONPATH')
    >>> with paths_on_pythonpath(['foo', 'bar']):
    ...     assert 'foo' in os.environ['PYTHONPATH']
    >>> os.environ.get('PYTHONPATH')
    �
PYTHONPATH�N)	�objectr�environ�get�pathsep�joinr�filter�pop)�paths�nothing�orig_pythonpath�current_pythonpath�prefix�to_join�new_paths       r�paths_on_pythonpathr6:s�����*�h�G��j�j�n�n�\�7�;�O�������b�9��7��������!7�8�����(:�;�<���:�:�?�?�7�+���'/�B�J�J�|�$�
��g�%��J�J�N�N�<��.�'6�B�J�J�|�$���g�%��J�J�N�N�<��.�'6�B�J�J�|�$�s�AD2�A.C5�<9D2�5:D/�/D2)rr	rr	�return�bool)r r	)r r	r7�str)�
__future__r�
contextlibrr�typingrrr�more_itertoolsr�typing_extensionsrr9�PathLiker	�__annotations__r
rrr!r�contextmanagerr6�rr�<module>rCs���"��	�
�0�0�*��+��3����C� 0�0�1���1��:�U�3����C�0@�+@�%A�B��(�(�&O�Y�
���"7��"7r