
    
_d                      l    d dl Z d dlZd dlmZ eee j
                  f   Zd ZdededefdZ	dedefd	Z
y)
    N)Unionc                 p    t         j                  j                  |       }t        j                  |d       y)z1Ensure that the parent directory of `path` existsT)exist_okN)ospathdirnamemakedirs)r   r   s     2/usr/lib/python3/dist-packages/setuptools/_path.pyensure_directoryr      s"    ggood#GKK$'    p1p2returnc                 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)r   r   s     r
   	same_pathr      s      B<8B<''r   filenamec                    t         j                  dk(  rt        j                  j	                  |       n| }t        j                  j                  t        j                  j                  t        j                  j                  |                  S )z2Normalize a file/dir name for comparison purposes.cygwin)sysplatformr   r   abspathnormcaserealpathr   )r   files     r
   r   r   !   sV     ),(@277??8$hD77BGG,,RWW-=-=d-CDEEr   )r   r   typingr   strPathLike_Pathr   boolr   r    r   r
   <module>r"      sV    	 
 c2;;((% (U (t (&Fu F Fr   