
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,a‚Í  ã                   @   sj  d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	 d dl
mZmZmZmZmZ d dlmZ d dlmZmZmZmZmZmZmZ d dlmZ dZejdkræd dlZe  ¡ dd	… d
krÜd dlm!Z! qêdZdZ!ndZddddddgZ"eeeefZ#dZ$dd„ Z%dd„ Z&G dd„ de'ƒZ(G dd„ de(ƒZ)G dd„ de(ƒZ*e)ƒ Z+e*ƒ Z,G dd„ dƒZ-G d d!„ d!e-ƒZ.e.ƒ Z/d"d#„ Z0e1ed$ƒ�rše 2¡ e0ƒZ0G d%d&„ d&ƒZ3G d'd(„ d(ƒZ4G d)d*„ d*e3ƒZ5G d+d,„ d,e3ƒZ6G d-d.„ d.e3ƒZ7G d/d0„ d0e	ƒZ8G d1d„ de'ƒZ9ej: ;e9¡ G d2d„ de9ƒZ<G d3d„ de9ƒZ=G d4d„ de9ƒZ>G d5d„ de>e<ƒZ?G d6d„ de>e=ƒZ@dS )7é    N)ÚSequence)ÚEINVALÚENOENTÚENOTDIRÚEBADFÚELOOP)Ú
attrgetter)ÚS_ISDIRÚS_ISLNKÚS_ISREGÚS_ISSOCKÚS_ISBLKÚS_ISCHRÚS_ISFIFO)Úquote_from_bytesTÚnté   )é   r   )Ú_getfinalpathnameFÚPurePathÚPurePosixPathÚPureWindowsPathÚPathÚ	PosixPathÚWindowsPath)é   é{   i�  c                 C   s    t | dd ƒtkpt | dd ƒtkS )NÚerrnoZwinerror)ÚgetattrÚ_IGNORED_ERROSÚ_IGNORED_WINERRORS)Z	exception© r!   ú,/opt/alt/python38/lib64/python3.8/pathlib.pyÚ_ignore_error.   s    ÿr#   c                 C   s   d| kpd| kpd| kS )NÚ*ú?ú[r!   )Úpatr!   r!   r"   Ú_is_wildcard_pattern3   s    r(   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú_Flavourc                 C   s   | j j| _d S ©N)ÚsepÚjoin©Úselfr!   r!   r"   Ú__init__=   s    z_Flavour.__init__c                 C   s  g }| j }| j}d }}t|ƒ}|D ]Æ}|s.q$|r>| ||¡}|  |¡\}}}	||	krˆt|	 |¡ƒD ] }
|
rd|
dkrd| t |
¡¡ qdn|	r¤|	dkr¤| t |	¡¡ |s¬|r$|sæ|D ]0}|s¾q´|rÎ| ||¡}|  |¡d }|r´ qæq´ qìq$|sö|�r| || ¡ | 	¡  |||fS )NÚ Ú.r   )
r+   ÚaltsepÚreversedÚreplaceÚ	splitrootÚsplitÚappendÚsysÚinternÚreverse)r.   ÚpartsZparsedr+   r2   ÚdrvÚrootÚitÚpartZrelÚxr!   r!   r"   Úparse_parts@   s@    
z_Flavour.parse_partsc                 C   sz   |r*|sp|rp|||| g|dd …  fS nF|rb||ksJ|   |¡|   |¡krp||||dd …  fS n|||| fS |||fS ©Né   )Úcasefold)r.   r<   r=   r;   Zdrv2Zroot2Zparts2r!   r!   r"   Újoin_parsed_partsf   s    z_Flavour.join_parsed_partsN)Ú__name__Ú
__module__Ú__qualname__r/   rA   rE   r!   r!   r!   r"   r)   9   s   &r)   c                   @   sÀ   e Zd ZdZdZdZeZej	dkZ
edƒZdZddd	d
hdd„ eddƒD ƒB dd„ eddƒD ƒB Zefdd„Zdd„ Zdd„ Zdd„ Zd&dd„Zefdd„Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%S )'Ú_WindowsFlavourú\ú/Tr   Z4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZz\\?\ZCONZPRNZAUXZNULc                 C   s   h | ]}d | ’qS )zCOM%dr!   ©Ú.0Úir!   r!   r"   Ú	<setcomp>ˆ   s     z_WindowsFlavour.<setcomp>rC   é
   c                 C   s   h | ]}d | ’qS )zLPT%dr!   rL   r!   r!   r"   rO   ‰   s     c                 C   s\  |dd… }|dd… }||krP||krP|   |¡\}}|dd… }|dd… }nd}|dd… }||krü||krü||krü| |d¡}|dkrü| ||d ¡}||d krü|dkr¸t|ƒ}|rÞ||d|…  |||d d … fS |d |… |||d d … fS d }	}
|dk�r6|| jk�r6|d d… }	|dd … }|}||k�rN|}
| |¡}||	 |
|fS )Nr   rC   r   r0   é   éÿÿÿÿú:)Ú_split_extended_pathÚfindÚlenÚdrive_lettersÚlstrip)r.   r?   r+   ÚfirstÚsecondÚprefixZthirdÚindexZindex2r<   r=   r!   r!   r"   r5   ’   s6    "

z_WindowsFlavour.splitrootc                 C   s   |  ¡ S r*   ©Úlower©r.   Úsr!   r!   r"   rD   ¹   s    z_WindowsFlavour.casefoldc                 C   s   dd„ |D ƒS )Nc                 S   s   g | ]}|  ¡ ‘qS r!   r]   )rM   Úpr!   r!   r"   Ú
<listcomp>½   s     z2_WindowsFlavour.casefold_parts.<locals>.<listcomp>r!   ©r.   r;   r!   r!   r"   Úcasefold_parts¼   s    z_WindowsFlavour.casefold_partsc                 C   s   t  t |¡t j¡jS r*   )ÚreÚcompileÚfnmatchÚ	translateÚ
IGNORECASEÚ	fullmatch©r.   Úpatternr!   r!   r"   Úcompile_pattern¿   s    z_WindowsFlavour.compile_patternFc                 C   s¨   t |ƒ}|st ¡ S d }td k	r¤|r2|  t|ƒ¡S g }z|  t|ƒ¡}W nB tk
rŠ   |}tj |¡\}}| |¡ ||kr†| Y S Y q6X tjj	|ft
|ƒžŽ S q6d S r*   )ÚstrÚosÚgetcwdr   Ú_ext_to_normalÚFileNotFoundErrorÚpathr6   r7   r,   r3   )r.   rs   Ústrictr`   Z
previous_sZ
tail_partsÚtailr!   r!   r"   ÚresolveÂ   s$    
z_WindowsFlavour.resolvec                 C   sX   d}|  |¡rP|d d… }|dd … }|  d¡rP||d d… 7 }d|dd …  }||fS )Nr0   é   zUNC\rQ   rJ   )Ú
startswith)r.   r`   Z
ext_prefixr[   r!   r!   r"   rT   Ú   s    

z$_WindowsFlavour._split_extended_pathc                 C   s   |   |¡d S rB   )rT   r_   r!   r!   r"   rq   ä   s    z_WindowsFlavour._ext_to_normalc                 C   s6   |sdS |d   d¡rdS |d  d¡d  ¡ | jkS )NFr   z\\rR   r1   )rx   Ú	partitionÚupperÚreserved_namesrc   r!   r!   r"   Úis_reservedè   s
    z_WindowsFlavour.is_reservedc                 C   sd   |j }t|ƒdkrJ|d dkrJ| ¡ dd …  d¡}d|t| d¡ƒf S dt| ¡  d¡ƒ S d S )Nr   rC   rS   rK   zfile:///%s/%szutf-8zfile:)ÚdriverV   Úas_posixrX   Úurlquote_from_bytesÚencode)r.   rs   r}   Úrestr!   r!   r"   Úmake_uriô   s     ÿz_WindowsFlavour.make_uric                 C   sÜ   dt jkrt jd }nJdt jkrXzt jd }W n tk
rF   d}Y nX |t jd  }ntdƒ‚|rØt jd |krØ|  |f¡\}}}|d t jd kr¢td| ƒ‚||d< |s²|rÎ|| |  |d	d … ¡ }n
|  |¡}|S )
NZUSERPROFILEZHOMEPATHZ	HOMEDRIVEr0   zCan't determine home directoryZUSERNAMErR   ú%Can't determine home directory for %rrC   )ro   ÚenvironÚKeyErrorÚRuntimeErrorrA   r,   )r.   ÚusernameÚuserhomer<   r=   r;   r!   r!   r"   Ú
gethomedir   s*    


ÿ
z_WindowsFlavour.gethomedirN)F)rF   rG   rH   r+   r2   Úhas_drvÚntpathÚpathmodro   ÚnameÚis_supportedÚsetrW   Zext_namespace_prefixÚranger{   r5   rD   rd   rm   rv   rT   rq   r|   r‚   r‰   r!   r!   r!   r"   rI   x   s.   

ÿþÿ'

rI   c                   @   sl   e Zd ZdZdZdZeZej	dkZ
efdd„Zdd„ Zd	d
„ Zdd„ Zddd„Zdd„ Zdd„ Zdd„ ZdS )Ú_PosixFlavourrK   r0   Fr   c                 C   sV   |rH|d |krH|  |¡}t|ƒt|ƒ dkr<d|d |fS d||fS n
dd|fS d S )Nr   r   r0   )rX   rV   )r.   r?   r+   Zstripped_partr!   r!   r"   r5   %  s    
z_PosixFlavour.splitrootc                 C   s   |S r*   r!   r_   r!   r!   r"   rD   4  s    z_PosixFlavour.casefoldc                 C   s   |S r*   r!   rc   r!   r!   r"   rd   7  s    z_PosixFlavour.casefold_partsc                 C   s   t  t |¡¡jS r*   )re   rf   rg   rh   rj   rk   r!   r!   r"   rm   :  s    z_PosixFlavour.compile_patternc                    sJ   | j ‰|j‰i ‰‡ ‡‡‡‡fdd„‰ | ¡ r0dnt ¡ }ˆ |t|ƒƒpHˆS )Nc                    sð   |  ˆ¡rd} | ˆ¡D ]Ò}|r|dkr*q|dkrD|  ˆ¡\} }}q|  ˆ¡rX| | }n| ˆ | }|ˆkrŠˆ| } | d k	r~qtd| ƒ‚zˆ |¡}W n6 tk
rÎ } z|jtkrºˆrº‚ |} W 5 d }~X Y qX d ˆ|< ˆ | |ƒ} | ˆ|< q| S )Nr0   r1   ú..zSymlink loop from %r)	rx   r6   Ú
rpartitionÚendswithr†   ÚreadlinkÚOSErrorr   r   )rs   r�   r�   Ú_ÚnewpathÚtargetÚe©Ú_resolveZaccessorÚseenr+   rt   r!   r"   rœ   A  s4    




z'_PosixFlavour.resolve.<locals>._resolver0   )r+   Ú	_accessorÚis_absolutero   rp   rn   )r.   rs   rt   Úbaser!   r›   r"   rv   =  s    )z_PosixFlavour.resolvec                 C   s   dS ©NFr!   rc   r!   r!   r"   r|   m  s    z_PosixFlavour.is_reservedc                 C   s   t |ƒ}dt|ƒ S )Nzfile://)Úbytesr   )r.   rs   Zbpathr!   r!   r"   r‚   p  s    z_PosixFlavour.make_uric                 C   s|   |s@zt jd W S  tk
r<   dd l}| t  ¡ ¡j Y S X n8dd l}z| |¡jW S  tk
rv   td| ƒ‚Y nX d S )NÚHOMEr   rƒ   )	ro   r„   r…   ÚpwdÚgetpwuidÚgetuidÚpw_dirÚgetpwnamr†   )r.   r‡   r¤   r!   r!   r"   r‰   v  s    ÿz_PosixFlavour.gethomedirN)F)rF   rG   rH   r+   r2   rŠ   Ú	posixpathrŒ   ro   r�   rŽ   r5   rD   rd   rm   rv   r|   r‚   r‰   r!   r!   r!   r"   r‘     s   

0r‘   c                   @   s   e Zd ZdS )Ú	_AccessorN)rF   rG   rH   r!   r!   r!   r"   rª   Š  s   rª   c                   @   sº   e Zd ZejZejZejZejZejZej	Z	e
edƒr>ejZndd„ ZejZejZe
edƒrdejZnedd„ ƒZejZejZejZerœer’ejZq¨dd„ Zned	d„ ƒZejZd
d„ ZdS )Ú_NormalAccessorÚlchmodc                 C   s   t dƒ‚d S )Nz%lchmod() not available on this system©ÚNotImplementedError)r.   ZpathobjÚmoder!   r!   r"   r¬      s    z_NormalAccessor.lchmodÚlinkc                 C   s   t dƒ‚d S )Nz&os.link() not available on this systemr­   ©r.   r™   r!   r!   r"   Úlink_toª  s    z_NormalAccessor.link_toc                 C   s   t dƒ‚d S )Nz&symlink() not available on this systemr­   ©ÚaÚbÚtarget_is_directoryr!   r!   r"   Úsymlink¸  s    z_NormalAccessor.symlinkc                 C   s   t  | |¡S r*   )ro   r·   r³   r!   r!   r"   r·   ¼  s    c                 C   s
   t  |¡S r*   )ro   r•   ©r.   rs   r!   r!   r"   r•   Ã  s    z_NormalAccessor.readlinkN)rF   rG   rH   ro   ÚstatÚlstatÚopenÚlistdirÚscandirÚchmodÚhasattrr¬   ÚmkdirÚunlinkr°   r²   ÚstaticmethodÚrmdirÚrenamer4   r   Úsupports_symlinksr·   Úutimer•   r!   r!   r!   r"   r«   �  s4   




r«   c                 C   sR   | d }| dd … }|dkr"t }n$d|kr4tdƒ‚nt|ƒrBt}nt}||||ƒS )Nr   rC   ú**z:Invalid pattern: '**' can only be an entire path component)Ú_RecursiveWildcardSelectorÚ
ValueErrorr(   Ú_WildcardSelectorÚ_PreciseSelector)Úpattern_partsÚflavourr'   Úchild_partsÚclsr!   r!   r"   Ú_make_selectorÎ  s    
rÐ   Ú	lru_cachec                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú	_Selectorc                 C   s0   || _ |rt||ƒ| _d| _ntƒ | _d| _d S )NTF)rÎ   rÐ   Ú	successorÚdironlyÚ_TerminatingSelector)r.   rÎ   rÍ   r!   r!   r"   r/   ã  s    z_Selector.__init__c                 C   s<   t |ƒ}|j}|j}|jj}||ƒs,tg ƒS |  ||||¡S r*   )ÚtypeÚis_dirÚexistsrž   r½   ÚiterÚ_select_from)r.   Úparent_pathZpath_clsr×   rØ   r½   r!   r!   r"   Úselect_fromì  s    z_Selector.select_fromN)rF   rG   rH   r/   rÜ   r!   r!   r!   r"   rÒ   ß  s   	rÒ   c                   @   s   e Zd Zdd„ ZdS )rÕ   c                 c   s
   |V  d S r*   r!   )r.   rÛ   r×   rØ   r½   r!   r!   r"   rÚ   ú  s    z!_TerminatingSelector._select_fromN)rF   rG   rH   rÚ   r!   r!   r!   r"   rÕ   ø  s   rÕ   c                   @   s   e Zd Zdd„ Zdd„ ZdS )rË   c                 C   s   || _ t | ||¡ d S r*   )r�   rÒ   r/   )r.   r�   rÎ   rÍ   r!   r!   r"   r/      s    z_PreciseSelector.__init__c                 c   s\   z@|  | j¡}| jr|n||ƒr>| j ||||¡D ]
}|V  q2W n tk
rV   Y d S X d S r*   )Ú_make_child_relpathr�   rÔ   rÓ   rÚ   ÚPermissionError)r.   rÛ   r×   rØ   r½   rs   ra   r!   r!   r"   rÚ     s    z_PreciseSelector._select_fromN©rF   rG   rH   r/   rÚ   r!   r!   r!   r"   rË   þ  s   rË   c                   @   s   e Zd Zdd„ Zdd„ ZdS )rÊ   c                 C   s   |  |¡| _t | ||¡ d S r*   )rm   ÚmatchrÒ   r/   ©r.   r'   rÎ   rÍ   r!   r!   r"   r/     s    z_WildcardSelector.__init__c                 c   sÊ   z®||ƒ�}t |ƒ}W 5 Q R X |D ]ˆ}| jrrz| ¡ s:W q"W n4 tk
rp } zt|ƒsX‚ W Y ¢q"W 5 d }~X Y nX |j}	|  |	¡r"| |	¡}
| j 	|
|||¡D ]
}|V  qžq"W n t
k
rÄ   Y d S X d S r*   )ÚlistrÔ   r×   r–   r#   r�   rà   rÝ   rÓ   rÚ   rÞ   )r.   rÛ   r×   rØ   r½   Ú
scandir_itÚentriesÚentryrš   r�   rs   ra   r!   r!   r"   rÚ     s&    


z_WildcardSelector._select_fromNrß   r!   r!   r!   r"   rÊ     s   rÊ   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )rÈ   c                 C   s   t  | ||¡ d S r*   )rÒ   r/   rá   r!   r!   r"   r/   /  s    z#_RecursiveWildcardSelector.__init__c                 c   s¼   |V  zš||ƒ�}t |ƒ}W 5 Q R X |D ]t}d}z| ¡ }W n, tk
rh } zt|ƒsX‚ W 5 d }~X Y nX |r(| ¡ s(| |j¡}	|  |	||¡D ]
}
|
V  q�q(W n tk
r¶   Y d S X d S r¡   )	râ   r×   r–   r#   Ú
is_symlinkrÝ   r�   Ú_iterate_directoriesrÞ   )r.   rÛ   r×   r½   rã   rä   rå   Zentry_is_dirrš   rs   ra   r!   r!   r"   rç   2  s"    
z/_RecursiveWildcardSelector._iterate_directoriesc           	      c   s~   zbt ƒ }zL| jj}|  |||¡D ]0}|||||ƒD ]}||kr2|V  | |¡ q2q W 5 | ¡  X W n tk
rx   Y d S X d S r*   )r�   ÚclearrÓ   rÚ   rç   ÚaddrÞ   )	r.   rÛ   r×   rØ   r½   ZyieldedZsuccessor_selectZstarting_pointra   r!   r!   r"   rÚ   E  s    z'_RecursiveWildcardSelector._select_fromN)rF   rG   rH   r/   rç   rÚ   r!   r!   r!   r"   rÈ   -  s   rÈ   c                   @   s0   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
S )Ú_PathParents)Ú_pathclsÚ_drvÚ_rootÚ_partsc                 C   s&   t |ƒ| _|j| _|j| _|j| _d S r*   )rÖ   rë   rì   rí   rî   r¸   r!   r!   r"   r/   ^  s    
z_PathParents.__init__c                 C   s(   | j s| jrt| jƒd S t| jƒS d S rB   )rì   rí   rV   rî   r-   r!   r!   r"   Ú__len__e  s    z_PathParents.__len__c                 C   s@   |dk s|t | ƒkrt|ƒ‚| j | j| j| jd | d … ¡S )Nr   rC   )rV   Ú
IndexErrorrë   Ú_from_parsed_partsrì   rí   rî   )r.   Úidxr!   r!   r"   Ú__getitem__k  s
    ÿz_PathParents.__getitem__c                 C   s   d  | jj¡S )Nz<{}.parents>)Úformatrë   rF   r-   r!   r!   r"   Ú__repr__q  s    z_PathParents.__repr__N)rF   rG   rH   Ú	__slots__r/   rï   ró   rõ   r!   r!   r!   r"   rê   Y  s
   rê   c                   @   s˜  e Zd ZdZdd„ Zdd„ Zedd„ ƒZedUd	d
„ƒZedVdd„ƒZ	edd„ ƒZ
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zedd „ ƒZd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zeed-ƒd.d/�Zeed0ƒd1d/�Zed2d3„ ƒZed4d5„ ƒZed6d7„ ƒZ ed8d9„ ƒZ!ed:d;„ ƒZ"d<d=„ Z#d>d?„ Z$d@dA„ Z%edBdC„ ƒZ&dDdE„ Z'dFdG„ Z(dHdI„ Z)edJdK„ ƒZ*edLdM„ ƒZ+dNdO„ Z,dPdQ„ Z-dRdS„ Z.dTS )Wr   )rì   rí   rî   Ú_strÚ_hashÚ_ppartsÚ_cached_cpartsc                 G   s$   | t krtjdkrtnt} |  |¡S )Nr   )r   ro   r�   r   r   Ú_from_parts)rÏ   Úargsr!   r!   r"   Ú__new__ƒ  s    zPurePath.__new__c                 C   s   | j t| jƒfS r*   )Ú	__class__Útuplerî   r-   r!   r!   r"   Ú
__reduce__�  s    zPurePath.__reduce__c                 C   sd   g }|D ]N}t |tƒr"||j7 }qt |¡}t |tƒrF| t|ƒ¡ qtdt|ƒ ƒ‚q| j	 
|¡S )NzNargument should be a str object or an os.PathLike object returning str, not %r)Ú
isinstancer   rî   ro   Úfspathrn   r7   Ú	TypeErrorrÖ   Ú_flavourrA   )rÏ   rü   r;   r´   r!   r!   r"   Ú_parse_args’  s    


þÿzPurePath._parse_argsTc                 C   s<   t  | ¡}| |¡\}}}||_||_||_|r8| ¡  |S r*   )Úobjectrý   r  rì   rí   rî   Ú_init)rÏ   rü   Úinitr.   r<   r=   r;   r!   r!   r"   rû   ¦  s    
zPurePath._from_partsc                 C   s,   t  | ¡}||_||_||_|r(| ¡  |S r*   )r  rý   rì   rí   rî   r  )rÏ   r<   r=   r;   r  r.   r!   r!   r"   rñ   ³  s    
zPurePath._from_parsed_partsc                 C   s4   |s|r$|| | j  |dd … ¡ S | j  |¡S d S rB   )r  r,   )rÏ   r<   r=   r;   r!   r!   r"   Ú_format_parsed_parts½  s    zPurePath._format_parsed_partsc                 C   s   d S r*   r!   r-   r!   r!   r"   r  Ä  s    zPurePath._initc                 C   s@   |   |¡\}}}| j | j| j| j|||¡\}}}|  |||¡S r*   )r  r  rE   rì   rí   rî   rñ   )r.   rü   r<   r=   r;   r!   r!   r"   Ú_make_childÈ  s         ÿ
zPurePath._make_childc                 C   sB   z| j W S  tk
r<   |  | j| j| j¡p.d| _ | j  Y S X d S )Nr1   )r÷   ÚAttributeErrorr	  rì   rí   rî   r-   r!   r!   r"   Ú__str__Î  s    ÿÿzPurePath.__str__c                 C   s   t | ƒS r*   )rn   r-   r!   r!   r"   Ú
__fspath__Ø  s    zPurePath.__fspath__c                 C   s   | j }t| ƒ |jd¡S )NrK   )r  rn   r4   r+   ©r.   Úfr!   r!   r"   r~   Û  s    zPurePath.as_posixc                 C   s
   t  | ¡S r*   )ro   Úfsencoder-   r!   r!   r"   Ú	__bytes__á  s    zPurePath.__bytes__c                 C   s   d  | jj|  ¡ ¡S )Nz{}({!r}))rô   rþ   rF   r~   r-   r!   r!   r"   rõ   æ  s    zPurePath.__repr__c                 C   s   |   ¡ stdƒ‚| j | ¡S )Nz.relative path can't be expressed as a file URI)rŸ   rÉ   r  r‚   r-   r!   r!   r"   Úas_urié  s    zPurePath.as_uric                 C   s8   z| j W S  tk
r2   | j | j¡| _ | j  Y S X d S r*   )rú   r  r  rd   rî   r-   r!   r!   r"   Ú_cpartsï  s
    zPurePath._cpartsc                 C   s&   t |tƒstS | j|jko$| j|jkS r*   )r  r   ÚNotImplementedr  r  ©r.   Úotherr!   r!   r"   Ú__eq__ø  s    
zPurePath.__eq__c                 C   s8   z| j W S  tk
r2   tt| jƒƒ| _ | j  Y S X d S r*   )rø   r  Úhashrÿ   r  r-   r!   r!   r"   Ú__hash__ý  s
    zPurePath.__hash__c                 C   s&   t |tƒr| j|jk	rtS | j|jk S r*   ©r  r   r  r  r  r  r!   r!   r"   Ú__lt__  s    zPurePath.__lt__c                 C   s&   t |tƒr| j|jk	rtS | j|jkS r*   r  r  r!   r!   r"   Ú__le__	  s    zPurePath.__le__c                 C   s&   t |tƒr| j|jk	rtS | j|jkS r*   r  r  r!   r!   r"   Ú__gt__  s    zPurePath.__gt__c                 C   s&   t |tƒr| j|jk	rtS | j|jkS r*   r  r  r!   r!   r"   Ú__ge__  s    zPurePath.__ge__rì   z.The drive prefix (letter or UNC path), if any.)Údocrí   zThe root of the path, if any.c                 C   s   | j | j }|S r*   )rì   rí   )r.   Úanchorr!   r!   r"   r     s    zPurePath.anchorc                 C   s.   | j }t|ƒ| js| jrdndkr&dS |d S )NrC   r   r0   rR   )rî   rV   rì   rí   rc   r!   r!   r"   r�   $  s    zPurePath.namec                 C   sD   | j }| d¡}d|  k r,t|ƒd k r<n n||d … S dS d S )Nr1   r   rC   r0   ©r�   ÚrfindrV   ©r.   r�   rN   r!   r!   r"   Úsuffix,  s
    
 zPurePath.suffixc                 C   s:   | j }| d¡rg S | d¡}dd„ | d¡dd … D ƒS )Nr1   c                 S   s   g | ]}d | ‘qS )r1   r!   )rM   r$  r!   r!   r"   rb   E  s     z%PurePath.suffixes.<locals>.<listcomp>rC   )r�   r”   rX   r6   ©r.   r�   r!   r!   r"   Úsuffixes:  s
    

zPurePath.suffixesc                 C   sD   | j }| d¡}d|  k r,t|ƒd k r<n n|d |… S |S d S )Nr1   r   rC   r!  r#  r!   r!   r"   ÚstemG  s
    
 zPurePath.stemc                 C   s†   | j std| f ƒ‚| j |f¡\}}}|rX|d | jj| jjfksX|sX|sXt|ƒdkrdtd| ƒ‚|  | j| j	| j
d d… |g ¡S )Nú%r has an empty namerR   rC   zInvalid name %r)r�   rÉ   r  rA   r+   r2   rV   rñ   rì   rí   rî   )r.   r�   r<   r=   r;   r!   r!   r"   Ú	with_nameQ  s    ÿÿ
ÿÿzPurePath.with_namec                 C   s´   | j }|j|ks |jr.|j|kr.td|f ƒ‚|r<| d¡rD|dkrPtd| ƒ‚| j}|shtd| f ƒ‚| j}|s||| }n|d t|ƒ … | }|  | j	| j
| jd d… |g ¡S )NzInvalid suffix %rr1   r(  rR   )r  r+   r2   rÉ   rx   r�   r$  rV   rñ   rì   rí   rî   )r.   r$  r  r�   Z
old_suffixr!   r!   r"   Úwith_suffix\  s    
ÿzPurePath.with_suffixc                 G   sì   |st dƒ‚| j}| j}| j}|r8||g|dd …  }n|}|  |¡\}}}|rf||g|dd …  }	n|}	t|	ƒ}
| jj}|
dkrŒ|s¤|rÊn||d |
… ƒ||	ƒkrÊ|  |||¡}t	d 
t| ƒt|ƒ¡ƒ‚|  d|
dkrÜ|nd||
d … ¡S )Nzneed at least one argumentrC   r   z{!r} does not start with {!r}r0   )r  rî   rì   rí   r  rV   r  rd   r	  rÉ   rô   rn   rñ   )r.   r  r;   r<   r=   Z	abs_partsZto_drvZto_rootZto_partsZto_abs_partsÚnÚcfZ	formattedr!   r!   r"   Úrelative_toq  s.    	* ÿ
ÿzPurePath.relative_toc                 C   s4   z| j W S  tk
r.   t| jƒ| _ | j  Y S X d S r*   )rù   r  rÿ   rî   r-   r!   r!   r"   r;   ‘  s
    zPurePath.partsc                 G   s
   |   |¡S r*   )r
  )r.   rü   r!   r!   r"   Újoinpath�  s    zPurePath.joinpathc                 C   s,   z|   |f¡W S  tk
r&   t Y S X d S r*   )r
  r  r  ©r.   Úkeyr!   r!   r"   Ú__truediv__¥  s    zPurePath.__truediv__c                 C   s2   z|   |g| j ¡W S  tk
r,   t Y S X d S r*   )rû   rî   r  r  r/  r!   r!   r"   Ú__rtruediv__«  s    zPurePath.__rtruediv__c                 C   s@   | j }| j}| j}t|ƒdkr*|s&|r*| S |  |||d d… ¡S )NrC   rR   )rì   rí   rî   rV   rñ   )r.   r<   r=   r;   r!   r!   r"   Úparent±  s    zPurePath.parentc                 C   s   t | ƒS r*   )rê   r-   r!   r!   r"   Úparents»  s    zPurePath.parentsc                 C   s   | j s
dS | jj pt| jƒS r¡   )rí   r  rŠ   Úboolrì   r-   r!   r!   r"   rŸ   À  s    zPurePath.is_absolutec                 C   s   | j  | j¡S r*   )r  r|   rî   r-   r!   r!   r"   r|   Ç  s    zPurePath.is_reservedc           	      C   sÒ   | j j}||ƒ}| j  |f¡\}}}|s0tdƒ‚|rF||| jƒkrFdS |r\||| jƒkr\dS | j}|sj|rŒt|ƒt|ƒkr~dS |dd … }nt|ƒt|ƒkr dS tt	|ƒt	|ƒƒD ]\}}t
 ||¡s² dS q²dS )Nzempty patternFrC   T)r  rD   rA   rÉ   rì   rí   r  rV   Úzipr3   rg   Zfnmatchcase)	r.   Zpath_patternr,  r<   r=   Z	pat_partsr;   r?   r'   r!   r!   r"   rà   Ì  s(    zPurePath.matchN)T)T)/rF   rG   rH   rö   rý   r   Úclassmethodr  rû   rñ   r	  r  r
  r  r  r~   r  rõ   r  Úpropertyr  r  r  r  r  r  r  r   r}   r=   r   r�   r$  r&  r'  r)  r*  r-  r;   r.  r1  r2  r3  r4  rŸ   r|   rà   r!   r!   r!   r"   r   u  st   	

	


ÿÿ




	 

	
c                   @   s   e Zd ZeZdZdS )r   r!   N)rF   rG   rH   Ú_posix_flavourr  rö   r!   r!   r!   r"   r   ê  s   c                   @   s   e Zd ZeZdZdS )r   r!   N)rF   rG   rH   Ú_windows_flavourr  rö   r!   r!   r!   r"   r   ô  s   c                   @   s–  e Zd ZdZdd„ Zdcdd„Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dddd„Z
dedd„Zedd„ ƒZedd„ ƒZdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zdfd$d%„Zd&d'„ Zd(d)„ Zd*d+„ Zdgd.d/„Zd0d1„ Zdhd2d3„Zd4d5„ Zdid6d7„Zdjd9d:„Zdkd;d<„Zd=d>„ Zd?d@„ Z dldAdB„Z!dCdD„ Z"dEdF„ Z#dGdH„ Z$dIdJ„ Z%dmdKdL„Z&dMdN„ Z'dOdP„ Z(dQdR„ Z)dSdT„ Z*dUdV„ Z+dWdX„ Z,dYdZ„ Z-d[d\„ Z.d]d^„ Z/d_d`„ Z0dadb„ Z1dS )nr   )rž   Ú_closedc                 O   sL   | t krtjdkrtnt} | j|dd�}|jjs@td| j	f ƒ‚| 
¡  |S )Nr   F©r  z$cannot instantiate %r on your system)r   ro   r�   r   r   rû   r  rŽ   r®   rF   r  )rÏ   rü   Úkwargsr.   r!   r!   r"   rý     s    ÿzPath.__new__Nc                 C   s"   d| _ |d k	r|j| _nt| _d S r¡   )r;  rž   Ú_normal_accessor)r.   Útemplater!   r!   r"   r    s    
z
Path._initc                 C   s   | j |g }|  | j| j|¡S r*   )rî   rñ   rì   rí   )r.   r?   r;   r!   r!   r"   rÝ   #  s    zPath._make_child_relpathc                 C   s   | j r|  ¡  | S r*   )r;  Ú_raise_closedr-   r!   r!   r"   Ú	__enter__)  s    zPath.__enter__c                 C   s
   d| _ d S )NT)r;  )r.   ÚtÚvÚtbr!   r!   r"   Ú__exit__.  s    zPath.__exit__c                 C   s   t dƒ‚d S )NzI/O operation on closed path)rÉ   r-   r!   r!   r"   r@  1  s    zPath._raise_closedé¶  c                 C   s   | j  | ||¡S r*   )rž   r»   )r.   r�   Úflagsr¯   r!   r!   r"   Ú_opener4  s    zPath._openeréÿ  c                 C   s   | j r|  ¡  | j | ||¡S r*   )r;  r@  rž   r»   )r.   rG  r¯   r!   r!   r"   Ú	_raw_open8  s    zPath._raw_openc                 C   s   | t  ¡ ƒS r*   )ro   rp   ©rÏ   r!   r!   r"   ÚcwdC  s    zPath.cwdc                 C   s   | | ƒ j  d ¡ƒS r*   )r  r‰   rK  r!   r!   r"   ÚhomeJ  s    z	Path.homec                 C   sB   |   ¡ }z|  ¡ }W n tk
r2   t  |¡}Y nX tj ||¡S r*   )r¹   r  ro   rs   Úsamestat)r.   Z
other_pathÚstZother_str!   r!   r"   ÚsamefileQ  s    zPath.samefilec                 c   sH   | j r|  ¡  | j | ¡D ](}|dkr(q|  |¡V  | j r|  ¡  qd S )N>   r1   r’   )r;  r@  rž   r¼   rÝ   r%  r!   r!   r"   Úiterdir\  s    zPath.iterdirc                 c   s`   |st d |¡ƒ‚| j |f¡\}}}|s.|r6tdƒ‚tt|ƒ| jƒ}| | ¡D ]
}|V  qPd S )NzUnacceptable pattern: {!r}ú%Non-relative patterns are unsupported)rÉ   rô   r  rA   r®   rÐ   rÿ   rÜ   ©r.   rl   r<   r=   rÌ   Zselectorra   r!   r!   r"   Úglobj  s    z	Path.globc                 c   sR   | j  |f¡\}}}|s|r$tdƒ‚tdt|ƒ | j ƒ}| | ¡D ]
}|V  qBd S )NrR  )rÇ   )r  rA   r®   rÐ   rÿ   rÜ   rS  r!   r!   r"   Úrglobw  s    z
Path.rglobc                 C   sD   | j r|  ¡  |  ¡ r| S | jt ¡ g| j dd�}|j| d� |S )NFr<  ©r?  )r;  r@  rŸ   rû   ro   rp   rî   r  )r.   Úobjr!   r!   r"   Úabsoluteƒ  s    zPath.absoluteFc                 C   sh   | j r|  ¡  | jj| |d�}|d kr:|  ¡  t|  ¡ ƒ}| jj |¡}| j	|fdd�}|j
| d� |S )N)rt   Fr<  rV  )r;  r@  r  rv   r¹   rn   rX  rŒ   Únormpathrû   r  )r.   rt   r`   ZnormedrW  r!   r!   r"   rv   •  s    zPath.resolvec                 C   s   | j  | ¡S r*   )rž   r¹   r-   r!   r!   r"   r¹   ©  s    z	Path.statc                 C   s   dd l }| |  ¡ j¡jS ©Nr   )r¤   r¥   r¹   Úst_uidZpw_name)r.   r¤   r!   r!   r"   Úowner°  s    z
Path.ownerc                 C   s   dd l }| |  ¡ j¡jS rZ  )ÚgrpZgetgrgidr¹   Úst_gidZgr_name)r.   r]  r!   r!   r"   Úgroup·  s    z
Path.groupÚrrR   c              	   C   s(   | j r|  ¡  tj| |||||| jd�S )N)Zopener)r;  r@  Úior»   rH  )r.   r¯   Ú	bufferingÚencodingÚerrorsÚnewliner!   r!   r"   r»   ¾  s
    ÿz	Path.openc              
   C   s,   | j dd��}| ¡ W  5 Q R £ S Q R X d S )NÚrb©r¯   ©r»   Úreadr  r!   r!   r"   Ú
read_bytesÉ  s    zPath.read_bytesc              
   C   s0   | j d||d��}| ¡ W  5 Q R £ S Q R X d S )Nr`  ©r¯   rc  rd  rh  )r.   rc  rd  r  r!   r!   r"   Ú	read_textÐ  s    zPath.read_textc              
   C   s6   t |ƒ}| jdd��}| |¡W  5 Q R £ S Q R X d S )NÚwbrg  )Ú
memoryviewr»   Úwrite)r.   ÚdataZviewr  r!   r!   r"   Úwrite_bytes×  s    zPath.write_bytesc              
   C   sL   t |tƒstd|jj ƒ‚| jd||d��}| |¡W  5 Q R £ S Q R X d S )Nzdata must be str, not %sÚwrk  )r  rn   r  rþ   rF   r»   ro  )r.   rp  rc  rd  r  r!   r!   r"   Ú
write_textà  s    
ÿzPath.write_textTc                 C   sr   | j r|  ¡  |r>z| j | d ¡ W n tk
r8   Y nX d S tjtjB }|sX|tjO }|  	||¡}t 
|¡ d S r*   )r;  r@  rž   rÆ   r–   ro   ÚO_CREATÚO_WRONLYÚO_EXCLrJ  Úclose)r.   r¯   Úexist_okrG  Úfdr!   r!   r"   Útouchê  s    
z
Path.touchc                 C   sŠ   | j r|  ¡  z| j | |¡ W nd tk
rd   |r>| j| kr@‚ | jjddd� | j|d|d� Y n" tk
r„   |r~|  ¡ s€‚ Y nX d S )NT)r4  rx  F)r;  r@  rž   rÀ   rr   r3  r–   r×   )r.   r¯   r4  rx  r!   r!   r"   rÀ     s    z
Path.mkdirc                 C   s    | j r|  ¡  | j | |¡ d S r*   )r;  r@  rž   r¾   ©r.   r¯   r!   r!   r"   r¾     s    z
Path.chmodc                 C   s    | j r|  ¡  | j | |¡ d S r*   )r;  r@  rž   r¬   r{  r!   r!   r"   r¬     s    zPath.lchmodc                 C   s>   | j r|  ¡  z| j | ¡ W n tk
r8   |s4‚ Y nX d S r*   )r;  r@  rž   rÁ   rr   )r.   Z
missing_okr!   r!   r"   rÁ   %  s    zPath.unlinkc                 C   s   | j r|  ¡  | j | ¡ d S r*   )r;  r@  rž   rÃ   r-   r!   r!   r"   rÃ   2  s    z
Path.rmdirc                 C   s   | j r|  ¡  | j | ¡S r*   )r;  r@  rž   rº   r-   r!   r!   r"   rº   :  s    z
Path.lstatc                 C   s&   | j r|  ¡  | j | |¡ |  |¡S r*   )r;  r@  rž   rÄ   rþ   r±   r!   r!   r"   rÄ   C  s    
zPath.renamec                 C   s&   | j r|  ¡  | j | |¡ |  |¡S r*   )r;  r@  rž   r4   rþ   r±   r!   r!   r"   r4   R  s    
zPath.replacec                 C   s"   | j r|  ¡  | j || |¡ d S r*   )r;  r@  rž   r·   )r.   r™   r¶   r!   r!   r"   Ú
symlink_toa  s    zPath.symlink_toc                 C   s    | j r|  ¡  | j | |¡ d S r*   )r;  r@  rž   r²   r±   r!   r!   r"   r²   j  s    
zPath.link_toc              
   C   sX   z|   ¡  W nF tk
r> } zt|ƒs(‚ W Y ¢dS d }~X Y n tk
rR   Y dS X dS ©NFT)r¹   r–   r#   rÉ   ©r.   rš   r!   r!   r"   rØ   z  s    zPath.existsc              
   C   s\   zt |  ¡ jƒW S  tk
rB } zt|ƒs,‚ W Y ¢dS d }~X Y n tk
rV   Y dS X d S r¡   )r	   r¹   Úst_moder–   r#   rÉ   r~  r!   r!   r"   r×   ‰  s    zPath.is_dirc              
   C   s\   zt |  ¡ jƒW S  tk
rB } zt|ƒs,‚ W Y ¢dS d }~X Y n tk
rV   Y dS X d S r¡   )r   r¹   r  r–   r#   rÉ   r~  r!   r!   r"   Úis_file™  s    zPath.is_filec                 C   sv   |   ¡ r|  ¡ sdS t| jƒ}z| ¡ j}W n tk
rB   Y dS X |  ¡ j}||krZdS |  ¡ j}| ¡ j}||kS r}  )rØ   r×   r   r3  r¹   Úst_devr–   Úst_ino)r.   r3  Z
parent_devZdevZinoZ
parent_inor!   r!   r"   Úis_mountª  s    



zPath.is_mountc              
   C   s\   zt |  ¡ jƒW S  tk
rB } zt|ƒs,‚ W Y ¢dS d }~X Y n tk
rV   Y dS X d S r¡   )r
   rº   r  r–   r#   rÉ   r~  r!   r!   r"   ræ   ¿  s    zPath.is_symlinkc              
   C   s\   zt |  ¡ jƒW S  tk
rB } zt|ƒs,‚ W Y ¢dS d }~X Y n tk
rV   Y dS X d S r¡   )r   r¹   r  r–   r#   rÉ   r~  r!   r!   r"   Úis_block_deviceÎ  s    zPath.is_block_devicec              
   C   s\   zt |  ¡ jƒW S  tk
rB } zt|ƒs,‚ W Y ¢dS d }~X Y n tk
rV   Y dS X d S r¡   )r   r¹   r  r–   r#   rÉ   r~  r!   r!   r"   Úis_char_deviceÞ  s    zPath.is_char_devicec              
   C   s\   zt |  ¡ jƒW S  tk
rB } zt|ƒs,‚ W Y ¢dS d }~X Y n tk
rV   Y dS X d S r¡   )r   r¹   r  r–   r#   rÉ   r~  r!   r!   r"   Úis_fifoî  s    zPath.is_fifoc              
   C   s\   zt |  ¡ jƒW S  tk
rB } zt|ƒs,‚ W Y ¢dS d }~X Y n tk
rV   Y dS X d S r¡   )r   r¹   r  r–   r#   rÉ   r~  r!   r!   r"   Ú	is_socketþ  s    zPath.is_socketc                 C   s`   | j s\| js\| jr\| jd d d… dkr\| j | jd dd … ¡}|  |g| jdd …  ¡S | S )Nr   rC   ú~)rì   rí   rî   r  r‰   rû   )r.   Zhomedirr!   r!   r"   Ú
expanduser  s    ÿÿzPath.expanduser)N)rF  )rI  )F)r`  rR   NNN)NN)NN)rF  T)rI  FF)F)F)2rF   rG   rH   rö   rý   r  rÝ   rA  rE  r@  rH  rJ  r7  rL  rM  rP  rQ  rT  rU  rX  rv   r¹   r\  r_  r»   rj  rl  rq  rs  rz  rÀ   r¾   r¬   rÁ   rÃ   rº   rÄ   r4   r|  r²   rØ   r×   r€  rƒ  ræ   r„  r…  r†  r‡  r‰  r!   r!   r!   r"   r     sh   	 þ






    ÿ

	



	
	
	c                   @   s   e Zd ZdZdS )r   r!   N)rF   rG   rH   rö   r!   r!   r!   r"   r     s   c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	r   r!   c                 C   s   t dƒ‚d S )Nz*Path.owner() is unsupported on this systemr­   r-   r!   r!   r"   r\  (  s    zWindowsPath.ownerc                 C   s   t dƒ‚d S )Nz*Path.group() is unsupported on this systemr­   r-   r!   r!   r"   r_  +  s    zWindowsPath.groupc                 C   s   t dƒ‚d S )Nz-Path.is_mount() is unsupported on this systemr­   r-   r!   r!   r"   rƒ  .  s    zWindowsPath.is_mountN)rF   rG   rH   rö   r\  r_  rƒ  r!   r!   r!   r"   r   !  s   )Arg   Ú	functoolsra  r‹   ro   r©   re   r8   Ú_collections_abcr   r   r   r   r   r   r   Úoperatorr   r¹   r	   r
   r   r   r   r   r   Zurllib.parser   r   rÅ   r�   r   Zgetwindowsversionr   Ú__all__r   r    r#   r(   r  r)   rI   r‘   r:  r9  rª   r«   r>  rÐ   r¿   rÑ   rÒ   rÕ   rË   rÊ   rÈ   rê   r   ÚPathLikeÚregisterr   r   r   r   r   r!   r!   r!   r"   Ú<module>   s|   $
    þ
? &i8,  t
    