o
    >cz?                     @   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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 )N   /r   )
isinstancebytespath r,   ]/Volumes/Data/workspace/med-macos-weekly/build/ExtProjs/pyncpp/python/source/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| }| }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	   )r1   r2   r.   mapr4   endswith	TypeErrorAttributeErrorBytesWarninggenericpath_check_arg_types)apr   r+   br,   r,   r-   r	   G   s&   



r	   c                 C   sb   	 t | } t| }| |d }| d | | |d  }}|r-||t| kr-||}||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   sP   	 t | } t| }| |d }| d | }|r&||t| kr&||}|S r?   rA   )r=   r   rE   rF   r,   r,   r-   r      s   

r   c              
   C   s8   	 zt | }W n tttfy   Y dS w 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 dS  ttfy   Y dS w )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 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)r1   rK   rL   rM   rN   rO   rP   r2   r(   r)   r	   r#   st_devst_ino)r+   s1parents2Zdev1Zdev2Zino1Zino2r,   r,   r-   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   ~~r@   r   ZHOMEASCIIvxworksr'   r   )r1   r2   r(   r)   r4   r.   findrC   environpwdZgetpwuidgetuidZpw_dirKeyErrorstrZgetpwnamsysplatformfsencoderD   )	r+   Ztilder   rE   r^   ZuserhomenameZpwentZrootr,   r,   r-   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+|\{[^}]*\}){}Tr@   )r1   r2   r(   r)   	_varprogbrecompilerZ   searchgetattr_varprogr]   ZspanZgroupr4   r6   rd   fsdecoder`   rC   )r+   ro   rq   startendr]   rE   mjre   valuerG   r,   r,   r-   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'       rH   rR   r    r   r         rm   )	r1   r2   r(   r)   r4   r   appendpopr	   )	r+   r   ZemptydotZdotdotZinitial_slashesZcompsZ	new_compsZcompr,   r,   r-   r   R  sL   




r   c                 C   sB   	 t | } t| st| trt  }nt  }t|| } t| S r/   )	r1   r2   r   r(   r)   getcwdbgetcwdr	   r   )r+   Zcwdr,   r,   r-   r   y  s   



r   F)strictc                C   s.   	 t | } t| d d | |i \}}t|S rJ   )r1   r2   _joinrealpathr   )filenamer   r+   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rI| rFt| \} }||krEt| ||} n|} qt| |}	zt|	}
W n tyc   |r_ d}Y nw t	
|
j}|so|	} q|	|v r||	 } | d ur|q|rt	|	 nt|	|dfS d ||	< t| t|	||\} }|st| |dfS | ||	< |s | d	fS )
Nr'   rH   rR   r   r   r   r@   FT)r(   r)   r   	partitionr   r	   r1   rK   rL   rN   rO   rP   r   readlink)r+   restr   seenr   r   r   re   _ZnewpathrQ   Zis_linkr   r,   r,   r-   r     s`   

.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 specifiedrH   r'   rR   r   r   r   c                 S      g | ]}|r|qS r,   r,   .0xr,   r,   r-   
<listcomp>      zrelpath.<locals>.<listcomp>c                 S   r   r,   r,   r   r,   r,   r-   r     r   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%     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'   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&   )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&     s>   
r&   r/   )'r   r   r!   r   r   r   r    r"   r1   rb   rN   r:   __all__r.   r   r   r	   r   r   rI   __doc__r
   r   r   r   r   r   r   rs   rn   r   r   r   r#   r   rc   r$   r%   r&   r,   r,   r,   r-   <module>   sN    

		

+55'	
?
)