a
    ӗai=                     @   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+ Z!d,d- Z"e	j#d.kZ$d3d/d0Z%d1d2 Z&dS )4.../:z/bin:/usr/binNz	/dev/null    )*)&normcaseisabsjoin
splitdrivesplitsplitextbasenamedirnamecommonprefixZgetsizeZgetmtimeZgetatimeZgetctimeislinkexistslexistsisdirisfileismount
expanduser
expandvarsnormpathabspathZsamefileZsameopenfilesamestatcurdirpardirseppathsepdefpathaltsepextsepdevnullrealpathsupports_unicode_filenamesrelpath
commonpathc                 C   s   t | trdS dS d S )N   /r   )
isinstancebytespath r,   ,/home/manager/Python-3.9.10/Lib/posixpath.py_get_sep)   s    
r.   c                 C   s
   t | S Nosfspath)sr,   r,   r-   r   4   s    r   c                 C   s   t | } t| }| |S r/   )r1   r2   r.   
startswith)r3   r   r,   r,   r-   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	   )r1   r2   r.   mapr4   endswith	TypeErrorAttributeErrorBytesWarninggenericpath_check_arg_types)apr   r+   br,   r,   r-   r	   G   s     


r	   c                 C   s`   t | } t| }| |d }| d | | |d   }}|rX||t| krX||}||fS N   r1   r2   r.   rfindlenrstrip)r=   r   iheadtailr,   r,   r-   r   d   s    

r   c                 C   s6   t | } t| trd}d}nd}d}t| |d |S )Nr'      .r   r   )r1   r2   r(   r)   r:   	_splitext)r=   r   r!   r,   r,   r-   r   u   s    

r   c                 C   s   t | } | d d | fS Nr   r0   )r=   r,   r,   r-   r
      s    
r
   c                 C   s,   t | } t| }| |d }| |d  S r?   )r1   r2   r.   rB   )r=   r   rE   r,   r,   r-   r      s    
r   c                 C   sN   t | } t| }| |d }| d | }|rJ||t| krJ||}|S r?   rA   )r=   r   rE   rF   r,   r,   r-   r      s    

r   c              
   C   s6   zt | }W n tttfy(   Y dS 0 t|jS )NF)r1   lstatOSError
ValueErrorr8   statS_ISLNKst_mode)r+   str,   r,   r-   r      s
    r   c              	   C   s,   zt |  W n ttfy&   Y dS 0 dS )NFT)r1   rK   rL   rM   r*   r,   r,   r-   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)r1   rK   rL   rM   rN   rO   rP   r(   r)   r	   r#   st_devst_ino)r+   s1parents2Zdev1Zdev2Zino1Zino2r,   r,   r-   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   ~~r@   r   ZHOMEASCIIr'   r   )r1   r2   r(   r)   r4   r.   findrC   environpwdZgetpwuidgetuidZpw_dirKeyErrorstrZgetpwnamfsencoderD   )	r+   Ztilder   rE   r]   ZuserhomenameZpwentZrootr,   r,   r-   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+|\{[^}]*\}){}r@   )r1   r2   r(   r)   	_varprogbrecompilerZ   searchgetattr_varprogr\   ZspanZgroupr4   r6   ra   fsdecoder_   rC   )r+   rl   rn   startendr\   rE   mjrb   valuerG   r,   r,   r-   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'       rH   rR   r    r   r         rj   )	r1   r2   r(   r)   r4   r   appendpopr	   )	r+   r   ZemptydotZdotdotZinitial_slashesZcompsZ	new_compsZcompr,   r,   r-   r   N  sJ    






r   c                 C   s@   t | } t| s8t| tr&t  }nt  }t|| } t| S r/   )	r1   r2   r   r(   r)   getcwdbgetcwdr	   r   )r+   Zcwdr,   r,   r-   r   u  s    



r   c                 C   s*   t | } t| d d | i \}}t|S rJ   )r1   r2   _joinrealpathr   )filenamer+   okr,   r,   r-   r#     s    
r#   c           
      C   s  t | trd}d}d}nd}d}d}t|r<|dd  }|} |r||\}}}|r<||kr`q<||kr| rt| \} }||krt| ||} q<|} q<t| |}t|s|} q<||v r|| } | d urq<t||dfS d ||< t| t	||\} }	|	st| |dfS | ||< q<| d	fS )
Nr'   rH   rR   r   r   r   r@   FT)
r(   r)   r   	partitionr   r	   r   r   r1   readlink)
r+   restseenr   r   r   rb   _Znewpathr   r,   r,   r-   r     sH    


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 specifiedrH   r'   rR   r   r   r   c                 S   s   g | ]}|r|qS r,   r,   .0xr,   r,   r-   
<listcomp>  rw   zrelpath.<locals>.<listcomp>c                 S   s   g | ]}|r|qS r,   r,   r   r,   r,   r-   r     rw   r%   )rM   r1   r2   r(   r)   r   r   rC   r   r	   r7   r8   r9   DeprecationWarningr:   r;   )	r+   rr   r   r   r   Z
start_list	path_listrE   Zrel_listr,   r,   r-   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'   rH   r   r   c                    s   g | ]}|  qS r,   )r   )r   r+   r   r,   r-   r     rw   zcommonpath.<locals>.<listcomp>c                 3   s   | ]}|d d  kV  qd S r?   r,   )r   r=   r   r,   r-   	<genexpr>  rw   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 r,   r,   )r   cr   r,   r-   r     rw   z)commonpath.<locals>.<listcomp>.<listcomp>r,   )r   r3   r   r,   r-   r     rw   r&   )rM   tupler5   r1   r2   r(   r)   setminmax	enumerater	   r7   r8   r:   r;   )	pathsZsplit_pathsr   rU   rW   ZcommonrE   r   prefixr,   )r   r   r-   r&     s6    r&   )N)'r   r   r!   r   r   r   r    r"   r1   sysrN   r:   __all__r.   r   r   r	   r   r   rI   __doc__r
   r   r   r   r   r   r   rp   rk   r   r   r   r#   r   platformr$   r%   r&   r,   r,   r,   r-   <module>   sJ   
	
	

*25'	3

)