ó
    Eñi   ã                  ó  • % S SK Jr  S SKrS SKrS SKrS SKJrJrJr  S SK	J
r
  \(       a  S SKJr  \\\R                  \   4   rS\S'   \" S\\\R                  \   4   S	9rS
 rSS jrSS jrSS jr\R,                  S 5       rg)é    )ÚannotationsN)ÚTYPE_CHECKINGÚTypeVarÚUnion)Úunique_everseen)Ú	TypeAliasr   ÚStrPathÚStrPathT)Úboundc                ól   • [         R                  R                  U 5      n[         R                  " USS9  g)z1Ensure that the parent directory of `path` existsT)Úexist_okN)ÚosÚpathÚdirnameÚmakedirs)r   r   s     ÚM/home/mande/repo/quber/.venv/lib/python3.13/site-packages/setuptools/_path.pyÚensure_directoryr      s"   € ä�g‰g�o‰o˜dÓ#€GÜ‡K‚K� $Ó'ó    c                ó0   • [        U 5      [        U5      :H  $ )aY  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_pathr      s   € ô  �B‹<œ8 B›<Ñ'Ð'r   c                ól   • [         R                  S:X  a  [        R                  R	                  U 5      $ U $ )zð
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©Úfilenames    r   Ú_cygwin_patchr!   *   s'   € ô ),¯©¸Ó(@Œ2�7‰7�?‰?˜8Ó$ÐNÀhÐNr   c           	     óÆ   • [         R                  R                  [         R                  R                  [         R                  R	                  [        U 5      5      5      5      $ )z2Normalize a file/dir name for comparison purposes.)r   r   ÚnormcaseÚrealpathr   r!   r   s    r   r   r   5   s:   € ä�7‰7×ÑœBŸG™G×,Ñ,¬R¯W©W×-=Ñ-=¼mÈHÓ>UÓ-VÓWÓXÐXr   c              #  óp  #   • [        5       n[        R                  R                  SU5      n[        R                  R                  SS5      n [        R                  R                  [        U 5      5      n[        SXC/5      n[        R                  R                  U5      nU(       a  U[        R                  S'   Sv •  X!L a!  [        R                  R                  SS5        gU[        R                  S'   g! X!L a!  [        R                  R                  SS5        f U[        R                  S'   f = f7f)at  
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�|Ñ$ÛàÒ%Ü�J‰J�N‰N˜<¨Õ.à'6ŒB�J‰J�|Ò$øð Ò%Ü�J‰J�N‰N˜<¨Õ.à'6ŒB�J‰J�|Ò$üs   ‚AD6ÁA2C9 Ã 9D6Ã9:D3Ä3D6)r   r	   r   r	   ÚreturnÚbool)r    r	   )r    r	   r7   Ústr)Ú
__future__r   Ú
contextlibr   r   Útypingr   r   r   Úmore_itertoolsr   Útyping_extensionsr   r9   ÚPathLiker	   Ú__annotations__r
   r   r   r!   r   Úcontextmanagerr6   © r   r   Ú<module>rC      sŒ   ðÞ "ã Û 	Û 
ß 0Ñ 0å *æÝ+à˜3 §¡¨CÑ 0Ð0Ñ1€ˆÓ 1Ù�: U¨3°·±¸CÑ0@Ð+@Ñ%AÑB€ò(ô(ô&OôYð
 ×Ññ"7ó ñ"7r   