+
    ig  c                   s    R t ^ RIt^ RIt. ROtR tR tR tR tR tR t	R	 t
R
 tR tR tR tR tR tR tR tR tR t]P,                   ! R R4      4       tR# )z
Path operations common to more than one OS
Do not use directly.  The OS specific modules import the appropriate
functions from this module themselves.
NALLOW_MISSINGc                d     \         P                  ! V 4       R#   \        \        3 d     R# i ; i)zDTest whether a path exists.  Returns False for broken symbolic linksFT)osstatOSError
ValueErrorpath   &$/usr/lib64/python3.14/genericpath.pyexistsr
      s0    
  Z      //c                r   )zCTest whether a path exists.  Returns True for broken symbolic linksFT)r   lstatr   r   r   r   r	   lexistsr      s0    
  Z  r   c                     \         P                  ! V 4      p\        P                  ! TP
                  4      #   \        \        3 d     R# i ; i)z%Test whether a path is a regular fileF)r   r   r   r   ZS_ISREGst_moder   st   & r	   isfiler   $   sB    WWT] <<

## Z     8 AAc                r   )z<Return true if the pathname refers to an existing directory.F)r   r   r   r   ZS_ISDIRr   )sr   r   r	   isdirr   0   sB    WWQZ <<

## Z  r   c                s     \         P                  ! V 4      p\
        P                  ! TP                  4      #   \        \        \        3 d     R# i ; i)z&Test whether a path is a symbolic linkF)r   r   r   r   ZAttributeErrorr   ZS_ISLNKr   r   r   r	   islinkr   <   sD    XXd^ <<

## Z0 s   8 AAc                2    \         P                  ! V 4       R# )zUTest whether a path is a junction
Junctions are not supported on the current platformFr   fspathr   r   r	   
isjunctionr   F        IIdO    c                r   )zuDetermines whether the specified path is on a Windows Dev Drive.
Dev Drives are not supported on the current platformFr   r   r   r	   
isdevdriver   M   r   r   c                B    \         P                  ! V 4      P                  # )z1Return the size of a file, reported by os.stat().)r   r   Zst_sizeZfilenamer   r	   getsizer!   T   s    778$$$r   c                r   )zCReturn the last modification time of a file, reported by os.stat().)r   r   Zst_mtimer    r   r	   getmtimer"   Y       778%%%r   c                r   )z=Return the last access time of a file, reported by os.stat().)r   r   Zst_atimer    r   r	   getatimer$   ^   r#   r   c                r   )zAReturn the metadata change time of a file, reported by os.stat().)r   r   Zst_ctimer    r   r	   getctimer%   c   r#   r   c                s"   V '       g   R# \        V ^ ,          \        \        34      '       g$   \        \        \        P
                  V 4      4      p \        V 4      p\        V 4      p\        V4       F  w  r4WBV,          8w  g   K  VRV u # 	  V# )zGGiven a list of pathnames, returns the longest common leading componentZ N)	
isinstanceZlistZtupleZmapr   r   ZminmaxZ	enumerate)Zms1s2ZiZcs   &    r	   commonprefixr*   i   sp    R
 adT5M**#bii#$	QB	QB"1:bq6M  Ir   c                sv    V P                   VP                   8H  ;'       d    V P                  VP                  8H  # )z5Test whether two stat buffers reference the same file)Zst_inoZst_dev)r(   r)   s   &&r	   samestatr+   {   s1    II" # #II"$r   c                p    \         P                  ! V 4      p\         P                  ! V4      p\        W#4      # )zTest whether two pathnames reference the same actual file or directory

This is determined by the device number and i-node number and
raises an exception if an os.stat() call on either pathname fails.
)r   r   r+   )Zf1Zf2r(   r)      &&  r	   samefiler.      s)     
B	BBr   c                r,   )z:Test whether two open file objects reference the same file)r   Zfstatr+   )Zfp1Zfp2r(   r)   r-   r	   sameopenfiler/      s'    	#B	#BBr   c                s   V P                  V4      pV'       d   V P                  V4      p\        WE4      pV P                  V4      pWd8  d4   V^,           pWv8  d%   WV^,            V8w  d
   V RV WR 3# V^,          pK*  W R,          3# )zSplit the extension from a pathname.

Extension is everything from the last dot to the end, ignoring
leading dots.  Returns "(root, ext)"; ext may be empty.N:Ni    N)Zrfindr'   )ZpZsepZaltsepZextsepZsepIndexZaltsepIndexZdotIndexZfilenameIndexs   &&&&    r	   	_splitextr0      s     wws|Hggfox-wwvH 1&}Q/69(|Qy\11QMe8Or   c                 s
   R ;r#V F[  p\        V\        4      '       d   RpK  \        V\        4      '       d   RpK7  \        V  RVP                  P
                  : 24      Rh	  V'       d   V'       d   \        R4      RhR# R# )FTz;() argument must be str, bytes, or os.PathLike object, not Nz.Can't mix strings and bytes in path components)r&   ZstrZbytesZ	TypeError	__class____name__)ZfuncnameZargsZhasstrZhasbytesr   s   &*   r	   _check_arg_typesr3      s    FaF5!!Hxj )778{{7K7K6NP QVZ[  (HItS vr   c                   s0   a  ] tR t^t o RtR tR tRtV tR# )r    z$Special value for use in realpath().c                s    R # )zos.path.ALLOW_MISSING Zselfr   r	   __repr__ZALLOW_MISSING.__repr__   s    &r   c                s.    V P                   P                  # )N)r1   r2   r5   r   r	   
__reduce__ZALLOW_MISSING.__reduce__   s    ~~&&&r   r4   N)	r2   Z
__module__Z__qualname__Z__firstlineno____doc__r6   r7   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r	   r    r       s     .'' 'r   )r*   r
   r$   r%   r"   r!   r   r   r   r   r   r   r.   r/   r+   r    )r8   r   r   Z__all__r
   r   r   r   r   r   r   r!   r"   r$   r%   r*   r+   r.   r/   r0   r3   ZobjectZ__new__r    r4   r   r	   <module>r9      s   
 
 O$$$%
&
&
&$$.T ' ' 'r   