
    yd                      j    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
dS )
    N)Unionc                 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     0lib/python3.11/site-packages/setuptools/_path.pyensure_directoryr      s0    good##GK$''''''    p1p2returnc                 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<<8B<<''r   filenamec                    t           j        dk    rt          j                            |           n| }t          j                            t          j                            t          j                            |                              S )z2Normalize a file/dir name for comparison purposes.cygwin)sysplatformr   r   abspathnormcaserealpathr   )r   files     r
   r   r   !   s^     ),(@(@27??8$$$hD7BG,,RW-=-=d-C-CDDEEEr   )r   r   typingr   strPathLike_Pathr   boolr   r    r   r
   <module>r"      s    				 



      c2;( ( ((% (U (t ( ( ( (&Fu F F F F F F Fr   