U
    wy]=                  &   @   sZ  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 d	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.g&Zd/d0 Zd1d	 Zd2d
 Zd3d Zd4d Zd5d Zejje_d6d Zd7d Zd8d Zd9d 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!dAdB Z"e	j#dCkZ$dFdDd-Z%dEd. Z&dS )G.../: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,   F/home/stadmin/Documents/SimTableSoftware/Python-3.8.0/Lib/posixpath.py_get_sep)   s    
r.   c                 C   s
   t | S Nosfspath)sr,   r,   r-   r   4   s    c                 C   s   t | } t| }| |S r/   )r1   r2   r.   
startswith)r3   r   r,   r,   r-   r   <   s    
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k
r   t	j
d| f|   Y nX |S )Nr   r	   )r1   r2   r.   mapr4   endswith	TypeErrorAttributeErrorBytesWarninggenericpath_check_arg_types)apr   r+   br,   r,   r-   r	   G   s     


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    

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    

c                 C   s   t | } | d d | fS Nr   r0   )r=   r,   r,   r-   r
      s    
c                 C   s,   t | } t| }| |d }| |d  S r?   )r1   r2   r.   rB   )r=   r   rE   r,   r,   r-   r      s    
c                 C   sN   t | } t| }| |d }| d | }|rJ||t| krJ||}|S r?   rA   )r=   r   rE   rF   r,   r,   r-   r      s    

c              
   C   s8   zt | }W n tttfk
r*   Y dS X t|jS )NF)r1   lstatOSError
ValueErrorr8   statS_ISLNKst_mode)r+   str,   r,   r-   r      s
    c              	   C   s.   zt |  W n ttfk
r(   Y dS X dS )NFT)r1   rK   rL   rM   r*   r,   r,   r-   r      s
    c              	   C   s   zt | }W n ttfk
r(   Y dS X t|jr:dS t| trPt	| d}n
t	| d}t
|}zt |}W n ttfk
r   Y dS X |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.    

c           	      C   s<  t | } t| trd}nd}| |s,| S t| }| |d}|dk rPt| }|dkrdt jkrdd l	}z|
t  j}W q tk
r   |  Y S X n
t jd }nVdd l	}| d| }t|trt|d}z||}W n tk
r   |  Y S X |j}t| trt |}d}nd}||}|| |d   p:|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pwentrootr,   r,   r-   r      sB    








c                 C   sZ  t | } t| trVd| kr | S ts:dd l}|d|jatj}d}d}t	t dd }n:d| krb| S t
s|dd l}|d|ja
t
j}d	}d
}t j}d}|| |}|sqV|d\}}|d}	|	|r|	|r|	dd }	z.|d krt t jt |	 }
n||	 }
W n tk
r&   |}Y qX | |d  }| d | |
 } t| }| |7 } q| S )N   $r   s   \$(\w+|\{[^}]*\})   {   }environb$z\$(\w+|\{[^}]*\}){}r@   )r1   r2   r(   r)   	_varprogbrecompilerZ   searchgetattr_varprogr\   spangroupr4   r6   ra   fsdecoder_   rC   )r+   rm   ro   startendr\   rE   mjrb   valuerG   r,   r,   r-   r     sN    






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krq||ks|s|r|r|d |kr|| q|r|  q|}||} |r|| |  } | p|S )Nr'       rH   rR   r    r   r         rk   )	r1   r2   r(   r)   r4   r   appendpopr	   )	r+   r   emptydotZdotdotZinitial_slashescompsZ	new_compsZcompr,   r,   r-   r   N  sJ    






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   t  s    



c                 C   s*   t | } t| d d | i \}}t|S rJ   )r1   r2   _joinrealpathr   )filenamer+   okr,   r,   r-   r#     s    
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<||kr|| } | d k	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 k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k
r   td| |  Y nX 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>  s      zrelpath.<locals>.<listcomp>c                 S   s   g | ]}|r|qS r,   r,   r   r,   r,   r-   r     s      r%   )rM   r1   r2   r(   r)   r   r   rC   r   r	   r7   r8   r9   DeprecationWarningr:   r;   )	r+   ru   r   r   r   Z
start_list	path_listrE   Zrel_listr,   r,   r-   r%     s0    



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 k
r   t dd Y nX  fdd|D }t|}t	|}|}t
|D ]$\}}||| kr|d | } qq|rn
d d }|| W S  ttfk
r,   tjd|    Y nX 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     s     zcommonpath.<locals>.<listcomp>c                 3   s   | ]}|d d  kV  qd S r?   r,   )r   r=   r   r,   r-   	<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 r,   r,   )r   cr   r,   r-   r      s       z)commonpath.<locals>.<listcomp>.<listcomp>r,   )r   r3   r   r,   r-   r      s     r&   )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    )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   rq   rl   r   r   r   r#   r   platformr$   r%   r&   r,   r,   r,   r-   <module>   s                            
	
	

*25&	3

)