bg} UddlmZddlZddlZddlZddlmZmZmZddl m Z erddl m Z ee eje fZded<edee eje f Zd ZddZddZejdZdS)) annotationsN) TYPE_CHECKINGTypeVarUnion)unique_everseen) TypeAliasrStrPathStrPathT)boundcptj|}tj|ddS)z1Ensure that the parent directory of `path` existsT)exist_okN)ospathdirnamemakedirs)rrs G/opt/cloudlinux/venv/lib64/python3.11/site-packages/setuptools/_path.pyensure_directoryrs0good##GK$''''''p1p2returnboolcBt|t|kS)aDiffers 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)rrs r same_pathrs B<<8B<< ''rfilenamestrctjdkrtj|n|}tjtjtj|S)z2Normalize a file/dir name for comparison purposes.cygwin)sysplatformrrabspathnormcaserealpathr)rfiles rrr*s^), (@(@27??8 $ $ $hD 7  BG,,RW-=-=d-C-CDD E EErc#hKt}tjd|}tjdd} tjt |}td||g}tj|}|r|tjd<dV||ur"tjdddS|tjd<dS#||ur!tjddn|tjd<wxYw)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') PYTHONPATHN) objectrenvirongetpathsepjoinrfilterpop)pathsnothingorig_pythonpathcurrent_pythonpathprefixto_joinnew_paths rpaths_on_pythonpathr71s*hhGjnn\7;;O b99 7!7!788(:;<<:??7++  0'/BJ| $  g % % JNN< . . . . .'6BJ| $ $ $ g % % JNN< . . . .'6BJ| $ 6 6 6 6s A2C;;6D1)rr rr rr)rr rr) __future__r contextlibrr typingrrrmore_itertoolsrtyping_extensionsrrPathLiker __annotations__r rrrcontextmanagerr7rrrAs-""""""" 0000000000******,++++++3 C 0011111 7:U3 C0@+@%A B B B((( ((((&FFFF "7"7"7"7"7r