HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: sport3497 (1034)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib64/python3.10/site-packages/setuptools/__pycache__/_path.cpython-310.pyc
o

�h��@s�UddlmZddlZddlZddlZddlmZmZmZddl	m
Z
er+ddlmZee
eje
fZded<edee
eje
fd	�Zd
d�Zddd�Zddd�Zddd�Zejdd��ZdS)�)�annotationsN)�
TYPE_CHECKING�TypeVar�Union)�unique_everseen)�	TypeAliasr�StrPath�StrPathT)�boundcCstj�|�}tj|dd�dS)z1Ensure that the parent directory of `path` existsT)�exist_okN)�os�path�dirname�makedirs)r
r�r�C/usr/local/CyberCP/lib/python3.10/site-packages/setuptools/_path.py�ensure_directorysr�p1�p2�return�boolcCst|�t|�kS)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)rrrrr�	same_pathsr�filenamecCstjdkrtj�|�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�platformrr
�abspath�rrrr�
_cygwin_patch*sr�strcCs tj�tj�tj�t|����S)z2Normalize a file/dir name for comparison purposes.)rr
�normcase�realpathrrrrrrr5s rc
cs��t�}tj�d|�}tj�dd�}z4tj�t|��}td||g�}tj�|�}|r/|tjd<dVW||ur@tj�dd�dS|tjd<dS||urStj�dd�w|tjd<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_pathrrr�paths_on_pythonpath:s"�
�r3)rrrrrr)rr)rrrr )�
__future__r�
contextlibrr�typingrrr�more_itertoolsr�typing_extensionsrr �PathLiker�__annotations__r	rrrr�contextmanagerr3rrrr�<module>s