o
    DXh4@                     @   s  	 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T g d	Zd
d Zdd Zdd Zdd Zdd Zdd Zejje_dd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zdadad$d% Zd&d' Zd(d) Z d*d+d,d-Z!d.d/ Z"e	j#d0kZ$d5d1d2Z%d3d4 Z&dS )6.../:z/bin:/usr/binNz	/dev/null    )*)'normcaseisabsjoin
splitdrive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ALLOW_MISSINGc                 C   s   t | trdS dS )N   /r   )
isinstancebytespath r3   3/opt/python-3.10.19/usr/lib/python3.10/posixpath.py_get_sep)   s   
r5   c                 C   s   	 t | S Nosfspath)sr3   r3   r4   r   4   s   
r   c                 C   s   	 t | } t| }| |S r6   )r8   r9   r5   
startswith)r:   r#   r3   r3   r4   r   <   s   

r   c              
   G   s   	 t | } t| }| }z0|s|d d |  tt j|D ]}||r'|}q|r.||r3||7 }q||| 7 }qW |S  tttfyQ   t	j
d| g|R    w )Nr   r	   )r8   r9   r5   mapr;   endswith	TypeErrorAttributeErrorBytesWarninggenericpath_check_arg_types)apr#   r2   br3   r3   r4   r	   G   s&   



r	   c                 C   sb   	 t | } t| }| |d }| d | | |d  }}|r-||t| kr-||}||fS N   r8   r9   r5   rfindlenrstrip)rD   r#   iheadtailr3   r3   r4   r   d   s   

r   c                 C   s6   t | } t| trd}d}nd}d}t| |d |S )Nr.      .r   r   )r8   r9   r/   r0   rA   	_splitext)rD   r#   r'   r3   r3   r4   r   u   s   

r   c                 C   s   	 t | } | d d | fS Nr   r7   )rD   r3   r3   r4   r
      s   
r
   c                 C   s.   	 t | } t| }| |d }| |d  S rF   )r8   r9   r5   rI   )rD   r#   rL   r3   r3   r4   r      s
   
r   c                 C   sP   	 t | } t| }| |d }| d | }|r&||t| kr&||}|S rF   rH   )rD   r#   rL   rM   r3   r3   r4   r      s   

r   c              
   C   s8   	 zt | }W n tttfy   Y dS w t|jS )NF)r8   lstatOSError
ValueErrorr?   statS_ISLNKst_mode)r2   str3   r3   r4   r      s   r   c              	   C   s,   	 zt |  W dS  ttfy   Y dS w )NFT)r8   rR   rS   rT   r1   r3   r3   r4   r      s   r   c              	   C   s   	 zt | }W n ttfy   Y dS w t|jrdS t | } t| t	r-t
| d}nt
| d}t|}zt |}W n ttfyI   Y dS w |j}|j}||krVdS |j}|j}||krbdS dS )NF   ..r   T)r8   rR   rS   rT   rU   rV   rW   r9   r/   r0   r	   r)   st_devst_ino)r2   s1parents2dev1dev2ino1ino2r3   r3   r4   r      s6   


r   c           	      C   sJ  	 t | } t| trd}nd}| |s| S t| }| |d}|dk r)t| }|dkrRdt jvrLdd l	}z
|
t  j}W n; tyK   |  Y S w t jd }n*dd l	}| d| }t|trft|d}z||}W n tyx   |  Y S w |j}|d u rtjdkr| S t| trt |}d}nd	}||}|| |d   p|S )
N   ~~rG   r   HOMEASCIIvxworksr.   r   )r8   r9   r/   r0   r;   r5   findrJ   environpwdgetpwuidgetuidpw_dirKeyErrorstrgetpwnamsysplatformfsencoderK   )	r2   tilder#   rL   rj   userhomenamepwentrootr3   r3   r4   r      sL   








r   c                 C   sV  	 t | } t| tr,d| vr| S tsdd l}|d|jatj}d}d}t	t dd }nd| vr2| S t
s?dd l}|d|ja
t
j}d	}d
}t j}d}	 || |}|sV	 | S |d\}}|d}	|	|rr|	|rr|	dd }	z|d u rt t jt |	 }
n||	 }
W n ty   |}Y nw | |d  }| d | |
 } t| }| |7 } qL)N   $r   s   \$(\w+|\{[^}]*\})   {   }environb$z\$(\w+|\{[^}]*\}){}TrG   )r8   r9   r/   r0   	_varprogbrecompilerf   searchgetattr_varprogri   spangroupr;   r=   rs   fsdecodern   rJ   )r2   r   r   startendri   rL   mjrv   valuerN   r3   r3   r4   r     sX   



r   c           	      C   s   	 t | } t| trd}d}d}d}nd}d}d}d}| |kr"|S | |}|r9| |d	 r9| |d
 s9d	}| |}g }|D ]%}|||fv rKqB||ks[|sS|r[|ra|d |kra|| qB|rg|  qB|}||} |rw|| |  } | pz|S )Nr.       rO   rY   r    r   r         r   )	r8   r9   r/   r0   r;   r   appendpopr	   )	r2   r#   emptydotdotdotinitial_slashescomps	new_compscompr3   r3   r4   r   R  sL   




r   c                 C   sB   	 t | } t| st| trt  }nt  }t|| } t| S r6   )	r8   r9   r   r/   r0   getcwdbgetcwdr	   r   )r2   cwdr3   r3   r4   r   y  s   



r   F)strictc                C   s.   	 t | } t| d d | |i \}}t|S rQ   )r8   r9   _joinrealpathr   )filenamer   r2   okr3   r3   r4   r)     s   
r)   c                 C   s|  t | trd}d}d}n	d}d}d}tj}|tu rt}n|r!d}nt}d }	t|r1|dd  }|} |r||\}
}}|
rA|
|krBq1|
|kr\| rYt	| \} }
|
|krXt
| ||} n|} q1t
| |
}zt|}W n |ys   d	}Y nw t|j}|s|} q1||v r|| } | d urq1|rt| nt
||d	fS d ||< t| t|||\} }|st
| |d	fS | ||< |s3| d
fS )Nr.   rO   rY   r   r   r   r3   rG   FT)r/   r0   r8   r   r-   FileNotFoundErrorrS   r   	partitionr   r	   rR   rU   rV   rW   r   readlink)r2   restr   seenr#   r!   r"   r   ignored_errormaxlinksrv   _newpathrX   is_linkr   r3   r3   r4   r     sj   

,r   darwinc           	      C   s   	 | st dt| } t| trd}d}d}nd}d}d}|d u r%|}nt|}z9dd	 t||D }d
d	 t| |D }tt||g}|gt||  ||d   }|s_|W S t	| W S  t
tttfyv   td| |  w )Nzno path specifiedrO   r.   rY   r   r   r   c                 S      g | ]}|r|qS r3   r3   .0xr3   r3   r4   
<listcomp>      zrelpath.<locals>.<listcomp>c                 S   r   r3   r3   r   r3   r3   r4   r     r   r+   )rT   r8   r9   r/   r0   r   r   rJ   r   r	   r>   r?   r@   DeprecationWarningrA   rB   )	r2   r   r!   r#   r"   
start_list	path_listrL   rel_listr3   r3   r4   r+     s4   



r+   c           	   	      s&  	 | st dtttj| } t| d trdd ndd z`fdd| D }ztfd	d
| D \}W n t yC   t dd w  fdd|D }t|}t	|}|}t
|D ]\}}||| krm|d | } nq[|rrnd d }|| W S  ttfy   tjdg| R    w )Nz%commonpath() arg is an empty sequencer   r.   rO   r   r   c                    s   g | ]}|  qS r3   )r   )r   r2   r#   r3   r4   r     s    zcommonpath.<locals>.<listcomp>c                 3   s     | ]}|d d  kV  qd S rF   r3   )r   rD   r   r3   r4   	<genexpr>  s    zcommonpath.<locals>.<genexpr>z%Can't mix absolute and relative pathsc                    s   g | ]} fd d|D qS )c                    s   g | ]
}|r| kr|qS r3   r3   )r   cr!   r3   r4   r     s    z)commonpath.<locals>.<listcomp>.<listcomp>r3   )r   r:   r   r3   r4   r     s    r,   )rT   tupler<   r8   r9   r/   r0   setminmax	enumerater	   r>   r?   rA   rB   )	pathssplit_pathsr   r\   r^   commonrL   r   prefixr3   )r!   r#   r4   r,     s>   
r,   r6   )'r!   r"   r'   r#   r$   r%   r&   r(   r8   rq   rU   rA   __all__r5   r   r   r	   r   r   rP   __doc__r
   r   r   r   r   r   r   r   r   r   r   r   r)   r   rr   r*   r+   r,   r3   r3   r3   r4   <module>   sN    

		

+55'	
F
)