
    z%iD                     d   	 d Z dZd ZdZdZdZdZdZddlZddl	Z	ddl
Z
ddlZddl g d	Zd
 Zd Zd Zd Zd Zd Zej&                  j(                  e_        d Zd Zd Zd Zd Zd Zd Zd Zdadad Z	 ddl m!Z! d Z"d Z$dddZ%d  Z&e	jN                  d!k(  Z(d$d"Z)d# Z*y# e#$ r d Z"Y -w xY w)%.../:z/bin:/usr/binNz	/dev/null    )*)(normcaseisabsjoin
splitdrive	splitrootsplitsplitextbasenamedirnamecommonprefixgetsizegetmtimegetatimegetctimeislinkexistslexistsisdirisfileismount
expanduser
expandvarsnormpathabspathsamefilesameopenfilesamestatcurdirpardirseppathsepdefpathaltsepextsepdevnullrealpathsupports_unicode_filenamesrelpath
commonpath
isjunctionc                 &    t        | t              ryy)N   /r   )
isinstancebytespaths    =/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/posixpath.py_get_sepr7   )   s    $    c                 .    	 t        j                  |       S Nosfspath)ss    r6   r   r   4   s    @99Q<r8   c                 f    	 t        j                  |       } t        |       }| j                  |      S r:   )r<   r=   r7   
startswith)r>   r%   s     r6   r	   r	   <   s*    )
		!A
1+C<<r8   c                 l   	 t        j                  |       } t        |       }| }	 |s|d d |z    t        t         j                  |      D ]7  }|j	                  |      r|}|r|j                  |      r||z  }0|||z   z  }9 	 |S # t        t        t        f$ r t        j                  d| g|   w xY w)Nr   r
   )r<   r=   r7   mapr@   endswith	TypeErrorAttributeErrorBytesWarninggenericpath_check_arg_types)apr%   r5   bs        r6   r
   r
   G   s     			!A
1+CD!HsNRYY" 	 A||C T]]3/	a	  K ~|4 $$VQ33s   AB -B3c                     	 t        j                  |       } t        |       }| j                  |      dz   }| d | | |d  }}|r"||t	        |      z  k7  r|j                  |      }||fS N   r<   r=   r7   rfindlenrstrip)rJ   r%   iheadtails        r6   r   r   d   so    D
		!A
1+C	qA2A!"$DCI%{{3:r8   c                     t        j                  |       } t        | t              rd}d}nd}d}t	        j
                  | |d |      S )Nr1      .r   r   )r<   r=   r2   r3   rG   	_splitext)rJ   r%   r)   s      r6   r   r   u   sD    
		!A!U  Cv66r8   c                 <    	 t        j                  |       } | d d | fS Nr   r;   )rJ   s    r6   r   r      s#    
		!ARa5!8Or8   c                     	 t        j                  |       } t        | t              rd}d}nd}d}| d d |k7  r||| fS | dd |k7  s| dd |k(  r||| dd  fS || d d | dd  fS )Nr1   r8   r    rN         )r<   r=   r2   r3   )rJ   r%   emptys      r6   r   r      s     			!A!U!u|eQ	
1Q3!Aa&C-c1QR5   aeQqrU""r8   c                 v    	 t        j                  |       } t        |       }| j                  |      dz   }| |d  S rM   )r<   r=   r7   rP   )rJ   r%   rS   s      r6   r   r      s8    3
		!A
1+C	qAQR5Lr8   c                     	 t        j                  |       } t        |       }| j                  |      dz   }| d | }|r"||t	        |      z  k7  r|j                  |      }|S rM   rO   )rJ   r%   rS   rT   s       r6   r   r      s]    7
		!A
1+C	qARa5DCI%{{3Kr8   c                 0    	 t        j                  |        y)NFr;   r4   s    r6   r/   r/      s    3IIdOr8   c                 \    	 	 t        j                  |        y# t        t        f$ r Y yw xY w)NFT)r<   lstatOSError
ValueErrorr4   s    r6   r   r      s3    M
  Z  s    ++c                    	 	 t        j                  |       }t        j                  |j                        ryt        j                  |       } t        | t              rt        | d      }nt        | d      }t        |      }	 t        j                  |      }|j                  }|j                  }||k7  ry|j                  }|j                  }||k(  ryy# t
        t        f$ r Y yw xY w# t
        t        f$ r Y yw xY w)NF   ..r   T)r<   rd   statS_ISLNKst_modere   rf   r=   r2   r3   r
   r+   st_devst_ino)r5   s1parents2dev1dev2ino1ino2s           r6   r   r      s    .XXd^ <<

#99T?D$dE"dD!fFXXf 99D99Dt|99D99Dt|7 Z    Z  s#   C C) C&%C&)C;:C;c                 b   	 t        j                  |       } t        | t              rd}nd}| j	                  |      s| S t        |       }| j                  |d      }|dk  rt        |       }|dk(  rZdt         j                  vr4	 dd l	}	 |j                  t        j                               j                  }nXt         j                  d   }nD	 dd l	}| d| }t        |t              rt        |d      }	 |j!                  |      }|j                  }|t"        j$                  dk(  r| S t        | t              rt        j&                  |      }d}nd	}|j)                  |      }|| |d  z   xs |S # t        $ r | cY S w xY w# t        $ r | cY S w xY w# t        $ r | cY S w xY w# t        $ r | cY S w xY w)
N   ~~rN   r   HOMEASCIIvxworksr1   r   )r<   r=   r2   r3   r@   r7   findrQ   environpwdImportErrorgetpwuidgetuidpw_dirKeyErrorstrgetpwnamsysplatformfsencoderR   )	r5   tilder%   rS   r}   userhomenamepwentroots	            r6   r   r      s   99T?D$??5!
4.C		#qA1uIAv#<<		4;; zz&)H	 AaydE"tW%D	LL&E
 <<CLLI5$;;x(t$HtABx(D(I  
     	K	  	 K	sH   E- 	-E> F 2F  -E;:E;>FFFF F.-F.c                 .   	 t        j                  |       } t        | t              rRd| vr| S t        s dd l}|j                  d|j                        at        j                  }d}d}t        t         dd       }nPd| vr| S t        s dd l}|j                  d|j                        a
t        j                  }d	}d
}t         j                  }d}	  || |      }|s	 | S |j                  d      \  }}|j                  d      }	|	j                  |      r|	j                  |      r|	dd }		 |:t        j                   t         j                  t        j"                  |	               }
n||	   }
| |d  }| d | |
z   } t%        |       }| |z  } # t&        $ r |}Y w xY w)N   $r   s   \$(\w+|\{[^}]*\})   {   }environb$z\$(\w+|\{[^}]*\}){}rN   )r<   r=   r2   r3   	_varprogbrecompilery   searchgetattr_varprogr|   spangroupr@   rC   r   fsdecoderQ   r   )r5   r   r   startendr|   rS   mjr   valuerU   s               r6   r   r   @  s   99T?D$tK

#8"((CI!!"j$/d?Kzz"6AH**	A
4O" K! vvay1wwqz??5!dmmC&8":D	BJJr{{4/@$AB 8D8e#DD	ADLD'   	A	s   'AF FF)_path_normpathc                     	 t        j                  |       } t        | t              r5t        j                  t        t        j                  |                   xs dS t        |       xs dS )NrW   r   )r<   r=   r2   r3   r   r   r   r4   s    r6   r   r     sN    >yydE";;~bkk$.?@AITId#*s*r8   c                    	 t        j                  |       } t        | t              r	d}d}d}d}nd}d}d}d}| |k(  r|S t	        |       \  }}} | j                  |      }g }|D ]A  }	|	||fv r
|	|k7  s|s|r
|r|d	   |k(  r|j                  |	       /|s2|j                          C |}||j                  |      z   } | xs |S )
Nr1   r8   rW   rh   r   r\   r   r   r   )	r<   r=   r2   r3   r   r   appendpopr
   )
r5   r%   r_   dotdotdot_initial_slashescomps	new_compscomps
             r6   r   r   y  s    >yydE"CECFCECF5=J#,T? ?D

3	 	 Ds|#y	" 7  &	  %0{sr8   c                     	 t        j                  |       } t        |       sEt        | t              rt        j
                         }nt        j                         }t        ||       } t        |       S r:   )	r<   r=   r	   r2   r3   getcwdbgetcwdr
   r   )r5   cwds     r6   r   r     sN    "99T?D;dE"**,C))+CCD>r8   F)strictc                l    	 t        j                  |       } t        | d d | |i       \  }}t        |      S rZ   )r<   r=   _joinrealpathr   )filenamer   r5   oks       r6   r+   r+     s9    +yy"HXbq\8VR@HD"4=r8   c                    t        | t              rd}d}d}nd}d}d}t        |      r|dd  }|} |r|j                  |      \  }}}|r||k(  r ||k(  r&| r!t	        |       \  } }||k(  rt        | ||      } n|} Kt        | |      }		 t        j                  |	      }
t        j                  |
j                        }|s|	} |	|v r.||	   } | |rt        j                  |	       nt        |	|      dfS d ||	<   t        | t        j                  |	      ||      \  } }|st        | |      dfS | ||	<   |r| d	fS # t        $ r |r d}Y w xY w)
Nr1   rW   rh   r   r   r   rN   FT)r2   r3   r	   	partitionr   r
   r<   rd   ri   rj   rk   re   r   readlink)r5   restr   seenr%   r#   r$   r   r   newpathstis_linkr   s                r6   r   r     s   $T{ABx
s+atv~6>"4[
d6>ff5DtT"	/'"B ll2::.GDd?=D  GT*E11W r{{7';VTJbd#U**WY \ :;  	G	s   D9 9E
	E
darwinc                 R   	 | st        d      t        j                  |       } t        | t              rd}d}d}nd}d}d}||}nt        j                  |      }	 t        |      j                  |      D cg c]  }|s|	 }}t        |       j                  |      D cg c]  }|s|	 }}t        t        ||g            }|gt        |      |z
  z  ||d  z   }	|	s|S t        |	 S c c}w c c}w # t        t        t        t        f$ r t        j                  d| |        w xY w)	Nzno path specifiedrW   r1   rh   r   r   r   r-   )rf   r<   r=   r2   r3   r   r   rQ   r   r
   rD   rE   rF   DeprecationWarningrG   rH   )
r5   r   r#   r%   r$   x
start_list	path_listrS   rel_lists
             r6   r-   r-     s-   -,--99T?D$}		% !(!5!5c!:@Aaa@
@ ' 3 3C 8>1AQ>	>j)4568s:q01IabMAMX A> ~|5GH $$Ye<s<   C4 8C* C*C4 "C/*C/.3C4 "C4 *
C4 42D&c           	         	 | st        d      t        t        t        j                  |             } t        | d   t              rdd}ndd}	 | D cg c]  }|j                         }}	 t        fd| D              \  }|D cg c]  }|D cg c]  }|s||k7  s| c} }}}t        |      }t        |      }|}	t        |      D ]  \  }
}|||
   k7  s|d |
 }	 n |rnd d }|j                  |	      z   S c c}w # t         $ r t        d      d w xY wc c}w c c}}w # t        t        f$ r t        j                   d	g|    w xY w)
Nz%commonpath() arg is an empty sequencer   r1   rW   r   r   c              3   .   K   | ]  }|d d k(    y wrM    ).0rJ   r%   s     r6   	<genexpr>zcommonpath.<locals>.<genexpr>4  s     5!2A#5s   z%Can't mix absolute and relative pathsr.   )rf   tuplerB   r<   r=   r2   r3   r   setminmax	enumerater
   rD   rE   rG   rH   )pathsr#   r5   split_pathsr	   r>   crn   rp   commonrS   prefixr%   s               @r6   r.   r.   "  su   N@AA#bii'(E%(E"3894tzz#99	P5u55FE EPPq1:aa6k:PPbM 	DAqBqEzBQ	
 3r7(((# :  	PDE4O	P ;P ~& $$\:E:sl   D- D,D- /D	 D- 
	D'D"D"!D"%D'*4D- $D- D- 	DD- "D''D- -'Er:   )+r#   r$   r)   r%   r&   r'   r(   r*   r<   r   ri   rG   __all__r7   r   r	   r
   r   r   rX   __doc__r   r   r   r   r/   r   r   r   r   r   r   posixr   r   r~   r   r+   r   r   r,   r-   r.   r   r8   r6   <module>r      s  
 
			

	
 	 
   ':	"7 ((00 
#>V6)z 	.j(+$D+	 "' <~ "llh6 !R#U  s   8B$ $B/.B/