a
    Rh?                     @   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 d S )N   /r   )
isinstancebytespath r3   1/opt/python-3.9.24/usr/lib/python3.9/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| }| }z^|s,|d d |  tt j|D ]8}||rL|}q8|rZ||rd||7 }q8||| 7 }q8W n. tttfy   t	j
d| g|R    Y n0 |S )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   s`   t | } t| }| |d }| d | | |d   }}|rX||t| krX||}||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   sN   t | } t| }| |d }| d | }|rJ||t| krJ||}|S rF   rH   )rD   r#   rL   rM   r3   r3   r4   r      s    

r   c              
   C   s6   zt | }W n tttfy(   Y dS 0 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 n ttfy&   Y dS 0 dS )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 0 t|jr8dS t| trNt	| d}n
t	| d}t
|}zt |}W n ttfy   Y dS 0 |j}|j}||krdS |j}|j}||krdS dS )NF   ..r   T)r8   rR   rS   rT   rU   rV   rW   r/   r0   r	   r)   st_devst_ino)r2   s1parents2dev1dev2ino1ino2r3   r3   r4   r      s.    

r   c           	      C   s8  t | } t| trd}nd}| |s,| S t| }| |d}|dk rPt| }|dkrdt jvrdd l	}z|
t  j}W q ty   |  Y S 0 n
t jd }nTdd l	}| d| }t|trt|d}z||}W n ty   |  Y S 0 |j}t| trt |}d}nd}||}|| |d   p6|S )	N   ~~rG   r   HOMEASCIIr.   r   )r8   r9   r/   r0   r;   r5   findrJ   environpwdgetpwuidgetuidpw_dirKeyErrorstrgetpwnamfsencoderK   )	r2   tilder#   rL   ri   userhomenamepwentrootr3   r3   r4   r      sB    








r   c                 C   sX  t | } t| trVd| vr | S ts:dd l}|d|jatj}d}d}t	t dd }n:d| vrb| S t
s|dd l}|d|ja
t
j}d	}d
}t j}d}|| |}|sqT|d\}}|d}	|	|r|	|r|	dd }	z.|d u rt t jt |	 }
n||	 }
W n ty$   |}Y q0 | |d  }| d | |
 } t| }| |7 } q| S )N   $r   s   \$(\w+|\{[^}]*\})   {   }environb$z\$(\w+|\{[^}]*\}){}rG   )r8   r9   r/   r0   	_varprogbrecompilerf   searchgetattr_varprogrh   spangroupr;   r=   rp   fsdecoderm   rJ   )r2   r   r   startendrh   rL   mjrs   valuerN   r3   r3   r4   r     sN    






r   c           	      C   s   t | } t| tr&d}d}d}d}nd}d}d}d}| |krB|S | |}|rp| |d	 rp| |d
 spd	}| |}g }|D ]J}|||fv rq||ks|s|r|r|d |kr|| q|r|  q|}||} |r|| |  } | p|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   N  sJ    






r   c                 C   s@   t | } t| s8t| tr&t  }nt  }t|| } t| S r6   )	r8   r9   r   r/   r0   getcwdbgetcwdr	   r   )r2   cwdr3   r3   r4   r   u  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 r8t}n|rBd}nt}d }	t|rb|dd  }|} |r~||\}
}}|
rb|
|krqb|
|kr| rt	| \} }
|
|krt
| ||} qb|} qbt
| |
}zt|}W n |y   d	}Y n0 t|j}|s|} qb||v r@|| } | d ur qb|r2t| nt
||d	fS d ||< t| t|||\} }|stt
| |d	fS | ||< qb| 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maxlinksrs   _newpathrX   is_linkr   r3   r3   r4   r     sd    





r   darwinc           	      C   s   | st dt| } t| tr.d}d}d}nd}d}d}|d u rH|}n
t|}zrdd	 t||D }d
d	 t| |D }tt||g}|gt||  ||d   }|s|W S t	| W S  t
tttfy   td| |  Y n0 d S )Nzno path specifiedrO   r.   rY   r   r   r   c                 S   s   g | ]}|r|qS r3   r3   .0xr3   r3   r4   
<listcomp>  r   zrelpath.<locals>.<listcomp>c                 S   s   g | ]}|r|qS 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+     s0    



r+   c           	   	      s2  | st dtttj| } t| d tr4dd ndd zćfdd| D }ztfd	d
| D \}W n t y   t dd Y n0  fdd|D }t|}t	|}|}t
|D ]$\}}||| kr|d | } qq|rn
d d }|| W S  ttfy,   tjdg| R    Y n0 d S )Nz%commonpath() arg is an empty sequencer   r.   rO   r   r   c                    s   g | ]}|  qS r3   )r   )r   r2   r#   r3   r4   r     r   zcommonpath.<locals>.<listcomp>c                 3   s   | ]}|d d  kV  qd S rF   r3   )r   rD   r   r3   r4   	<genexpr>  r   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     r   z)commonpath.<locals>.<listcomp>.<listcomp>r3   )r   r:   r   r3   r4   r     r   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,     s6    r,   )N)'r!   r"   r'   r#   r$   r%   r&   r(   r8   sysrU   rA   __all__r5   r   r   r	   r   r   rP   __doc__r
   r   r   r   r   r   r   r   r~   r   r   r   r)   r   platformr*   r+   r,   r3   r3   r3   r4   <module>   sJ   
	
	

*25'	F

)