§
    WŠtj‚  ã                  óö   — U d dl mZ d dlZd dlZd dlZd dlmZmZ d dlm	Z	 erd dlm
Z
 eej        e         z  Zded<    edeej        e         z  ¬	¦  «        Zd
„ Zdd„Zdd„Zdd„Zej        d„ ¦   «         ZdS )é    )ÚannotationsN)ÚTYPE_CHECKINGÚTypeVar)Úunique_everseen)Ú	TypeAliasr   ÚStrPathÚStrPathT)Úboundc                óp   — t           j                             | ¦  «        }t          j        |d¬¦  «         dS )z1Ensure that the parent directory of `path` existsT)Úexist_okN)ÚosÚpathÚdirnameÚmakedirs)r   r   s     úN/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/setuptools/_path.pyÚensure_directoryr      s0   € åŒg�oŠo˜dÑ#Ô#€GÝ„K� $Ð'Ñ'Ô'Ð'Ð'Ð'ó    Úp1Úp2ÚreturnÚboolc                óB   — 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)r   r   s     r   Ú	same_pathr      s   € õ  �B‰<Œ<�8 B™<œ<Ò'Ð'r   Úfilenamec                ód   — t           j        dk    rt          j                             | ¦  «        n| 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©r   s    r   Ú_cygwin_patchr"   *   s)   € õ ),¬¸Ò(@Ð(@�2Œ7�?Š?˜8Ñ$Ô$Ð$ÀhÐNr   Ústrc           	     óÎ   — t           j                             t           j                             t           j                             t          | ¦  «        ¦  «        ¦  «        ¦  «        S )z2Normalize a file/dir name for comparison purposes.)r   r   ÚnormcaseÚrealpathr   r"   r!   s    r   r   r   5   s@   € åŒ7×Ò�BœG×,Ò,­R¬W×-=Ò-=½mÈHÑ>UÔ>UÑ-VÔ-VÑWÔWÑXÔXÐXr   c              #  óh  K  — t          ¦   «         }t          j                             d|¦  «        }t          j                             dd¦  «        }	 t          j                             t          | ¦  «        ¦  «        }t          d||g¦  «        }t          j                             |¦  «        }|r|t          j        d<   dV — ||u r"t          j                             dd¦  «         dS |t          j        d<   dS # ||u r!t          j                             dd¦  «         n|t          j        d<   w xY 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_pythonpathr8   :   s  è è € õ* ‰hŒh€GÝ”j—n’n \°7Ñ;Ô;€OÝœŸš¨°bÑ9Ô9Ðð7Ý”—’¥°Ñ!7Ô!7Ñ8Ô8ˆÝ˜ Ð(:Ð;Ñ<Ô<ˆÝ”:—?’? 7Ñ+Ô+ˆØð 	0Ø'/�BŒJ�|Ñ$Øˆˆˆà˜gÐ%Ð%ÝŒJ�NŠN˜<¨Ñ.Ô.Ð.Ð.Ð.à'6�BŒJ�|Ñ$Ð$Ð$øð ˜gÐ%Ð%ÝŒJ�NŠN˜<¨Ñ.Ô.Ð.Ð.à'6�BŒJ�|Ñ$Ð6Ð6Ð6Ð6s   ÁA2C; Ã;6D1)r   r   r   r   r   r   )r   r   )r   r   r   r#   )Ú
__future__r   Ú
contextlibr   r   Útypingr   r   Úmore_itertoolsr   r   r#   ÚPathLiker   Ú__annotations__r	   r   r   r"   r   Úcontextmanagerr8   © r   r   ú<module>rA      s5  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø 	€	€	€	Ø 
€
€
€
Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à *Ð *Ð *Ð *Ð *Ð *àð !Ø Ð Ð Ð Ð Ð à˜2œ; sÔ+Ñ+€Ð +Ð +Ð +Ñ +Øˆ7�: S¨2¬;°sÔ+;Ñ%;Ð<Ñ<Ô<€ð(ð (ð (ð(ð (ð (ð (ð&Oð Oð Oð OðYð Yð Yð Yð
 Ôð"7ð "7ñ Ôð"7ð "7ð "7r   