grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]™·ã@sPddlZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z mZmZddlmZddlmZmZmZmZmZmZmZddlmZdZejd krUddlZej ƒdd …d dfkrFdd lm!Z!n d ZdZ!ndZddddddgZ"dd„Z#Gdd„de$ƒZ%Gdd„de%ƒZ&Gdd„de%ƒZ'e&ƒZ(e'ƒZ)Gdd„dƒZ*Gdd„de*ƒZ+e+ƒZ,e d d!„ƒZ-d"d#„Z.e/ed$ƒrDej0ƒe.ƒZ.Gd%d&„d&ƒZ1Gd'd(„d(ƒZ2Gd)d*„d*e1ƒZ3Gd+d,„d,e1ƒZ4Gd-d.„d.e1ƒZ5Gd/d0„d0e ƒZ6Gd1d„de$ƒZ7Gd2d„de7ƒZ8Gd3d„de7ƒZ9Gd4d„de7ƒZ:Gd5d„de:e8ƒZ;Gd6d„de:e9ƒZ<dS)7éN)ÚSequence)Úcontextmanager)ÚEINVALÚENOENTÚENOTDIR)Ú attrgetter)ÚS_ISDIRÚS_ISLNKÚS_ISREGÚS_ISSOCKÚS_ISBLKÚS_ISCHRÚS_ISFIFO)Úquote_from_bytesTÚntéé)Ú_getfinalpathnameFÚPurePathÚ PurePosixPathÚPureWindowsPathÚPathÚ PosixPathÚ WindowsPathcCs"d|kp!d|kp!d|kS)NÚ*ú?ú[©)Úpatrrú,/opt/alt/python35/lib64/python3.5/pathlib.pyÚ_is_wildcard_pattern&sr c@s4eZdZdd„Zdd„Zdd„ZdS)Ú_FlavourcCs|jj|_dS)N)ÚsepÚjoin)ÚselfrrrÚ__init__0sz_Flavour.__init__c CsŠg}|j}|j}d}}t|ƒ}x%|D]}|sDq5|r\|j||ƒ}|j|ƒ\}}} || krËxpt| j|ƒƒD].} | r–| dkr–|jtj| ƒƒq–Wn(| ró| dkró|jtj| ƒƒ|sÿ|r5|sQxI|D]A}|sq |r3|j||ƒ}|j|ƒd}|r Pq WPq5W|sb|rs|j||ƒ|j ƒ|||fS)NÚÚ.r) r"ÚaltsepÚreversedÚreplaceÚ splitrootÚsplitÚappendÚsysÚinternÚreverse) r$ÚpartsZparsedr"r(ÚdrvÚrootÚitÚpartZrelÚxrrrÚ parse_parts3s@          z_Flavour.parse_partscCs¤|r8| r—|r—||||g|dd…fSn_|r†||ksh|j|ƒ|j|ƒkr—||||dd…fSn||||fS|||fS)Né)Úcasefold)r$r2r3r1Zdrv2Zroot2Zparts2rrrÚjoin_parsed_partsYs %*z_Flavour.join_parsed_partsN)Ú__name__Ú __module__Ú __qualname__r%r7r:rrrrr!,s   &r!c@sWeZdZdZdZdZeZej dkZ e dd„e e dƒe dƒd ƒDƒƒe d d„e e d ƒe d ƒd ƒDƒƒBZd Zddddhdd„e d dƒDƒBdd„e d dƒDƒBZedd„Zdd„Zdd„Zdd„Zedd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(S))Ú_WindowsFlavourú\ú/Trccs|]}t|ƒVqdS)N)Úchr)Ú.0r6rrrú wsz_WindowsFlavour.ÚaÚzr8ccs|]}t|ƒVqdS)N)rA)rBr6rrrrCxsÚAÚZz\\?\ZCONZPRNZAUXZNULcCsh|]}d|’qS)zCOM%dr)rBÚirrrú ~s z_WindowsFlavour.é cCsh|]}d|’qS)zLPT%dr)rBrHrrrrIs c Cs×|dd…}|dd…}||krp||krp|j|ƒ\}}|dd…}|dd…}nd}|dd…}||krZ||krZ||krZ|j|dƒ}|dkrZ|j||dƒ}||dkrZ|dkrt|ƒ}|r5||d|…|||dd…fS|d|…|||dd…fSd} } |dkr¥||jkr¥|dd…} |dd…}|}||krÆ|} |j|ƒ}|| | |fS) Nrr8rr&éú:éÿÿÿÿrM)Ú_split_extended_pathÚfindÚlenÚ drive_lettersÚlstrip) r$r5r"ÚfirstÚsecondÚprefixZthirdÚindexZindex2r2r3rrrr+ˆs6$   )%  z_WindowsFlavour.splitrootcCs |jƒS)N)Úlower)r$Úsrrrr9¯sz_WindowsFlavour.casefoldcCsdd„|DƒS)NcSsg|]}|jƒ‘qSr)rW)rBÚprrrú ³s z2_WindowsFlavour.casefold_parts..r)r$r1rrrÚcasefold_parts²sz_WindowsFlavour.casefold_partscCs?t|ƒ}|stjƒStdk r;|jt|ƒƒSdS)N)ÚstrÚosÚgetcwdrÚ_ext_to_normal)r$ÚpathrXrrrÚresolveµs    z_WindowsFlavour.resolvecCsvd}|j|ƒrl|dd…}|dd…}|jdƒrl||dd…7}d|dd…}||fS)Nr&ézUNC\rKr?)Ú startswith)r$rXZ ext_prefixrUrrrrN¾sz$_WindowsFlavour._split_extended_pathcCs|j|ƒdS)Nr8)rN)r$rXrrrr_Èsz_WindowsFlavour._ext_to_normalcCsE|s dS|djdƒr!dS|djdƒdjƒ|jkS)NFrz\\r8r'rM)rcÚ partitionÚupperÚreserved_names)r$r1rrrÚ is_reservedÌs z_WindowsFlavour.is_reservedcCsˆ|j}t|ƒdkrg|ddkrg|jƒdd…jdƒ}d|t|jdƒƒfSdt|jƒjdƒƒSdS)Nrr8rLr@z file:///%s/%szutf-8zfile:)ÚdriverPÚas_posixrRÚurlquote_from_bytesÚencode)r$r`rhÚrestrrrÚmake_uriØs  "z_WindowsFlavour.make_uric CsAdtjkrtjd}nzdtjkr>tjd}n[dtjkr�ytjd}Wntk rxd}YnX|tjd}n tdƒ‚|r=tjd|kr=|j|fƒ\}}}|d tjdkrôtd |ƒ‚||d <|s |r.|||j|dd…ƒ}n|j|ƒ}|S) NÚHOMEZ USERPROFILEZHOMEPATHZ HOMEDRIVEr&zCan't determine home directoryZUSERNAMEr8z%Can't determine home directory for %rrMrM)r]ÚenvironÚKeyErrorÚ RuntimeErrorr7r#)r$ÚusernameÚuserhomer2r3r1rrrÚ gethomediräs,      $z_WindowsFlavour.gethomedirN)r;r<r=r"r(Úhas_drvÚntpathÚpathmodr]ÚnameÚ is_supportedÚsetÚrangeÚordrQZext_namespace_prefixrfr+r9r[rarNr_rgrmrtrrrrr>ks& /3) '     r>c@sŽeZdZdZdZdZeZej dkZ edd„Z dd„Z d d „Z d d „Zd d„Zdd„Zdd„ZdS)Ú _PosixFlavourr@r&FrcCss|rb|d|krb|j|ƒ}t|ƒt|ƒdkrRd|d|fSd||fSn dd|fSdS)Nrrr&)rRrP)r$r5r"Z stripped_partrrrr+ s z_PosixFlavour.splitrootcCs|S)Nr)r$rXrrrr9sz_PosixFlavour.casefoldcCs|S)Nr)r$r1rrrr[sz_PosixFlavour.casefold_partscsj|j‰|j‰i‰‡‡‡‡fdd†‰|jƒrEdn tjƒ}ˆ|t|ƒƒpiˆS)Ncs)|jˆƒrd}x |jˆƒD]ü}| s%|dkrAq%|dkrh|jˆƒ\}}}q%|ˆ|}|ˆkr«ˆ|}|dk r›q%td|ƒ‚yˆj|ƒ}Wn=tk rý}z|jtkrå‚|}WYdd}~Xq%Xdˆ|<ˆ||ƒ}|ˆ|._resolver&)r"Ú _accessorÚ is_absoluter]r^r\)r$r`Úbaser)r†r‡rˆr"rra s   %z_PosixFlavour.resolvecCsdS)NFr)r$r1rrrrgLsz_PosixFlavour.is_reservedcCst|ƒ}dt|ƒS)Nzfile://)Úbytesrj)r$r`ZbpathrrrrmOs z_PosixFlavour.make_uric Cs˜|sOytjdSWq”tk rKddl}|jtjƒƒjSYq”XnEddl}y|j|ƒjSWn"tk r“td|ƒ‚YnXdS)Nrnrz%Can't determine home directory for %r) r]rorpÚpwdÚgetpwuidÚgetuidÚpw_dirÚgetpwnamrq)r$rrr�rrrrtUs    z_PosixFlavour.gethomedirN)r;r<r=r"r(ruÚ posixpathrwr]rxryr+r9r[rargrmrtrrrrr}s    ,  r}c@seZdZdS)Ú _AccessorN)r;r<r=rrrrr“is r“c@sEeZdZdd„Zdd„ZeejƒZeejƒZeejƒZeej ƒZ eej ƒZ e edƒr�eej ƒZ n dd„Z eej ƒZ eejƒZeejƒZeejƒZeejƒZerereejƒZq&dd „Zned d „ƒZeejƒZd d „Zd S)Ú_NormalAccessorcs+tjˆƒ‡fdd†ƒ}t|ƒS)Ncsˆt|ƒ|ŒS)N)r\)ÚpathobjÚargs)ÚstrfuncrrÚwrappedqsz._NormalAccessor._wrap_strfunc..wrapped)Ú functoolsÚwrapsÚ staticmethod)r—r˜r)r—rÚ _wrap_strfuncps!z_NormalAccessor._wrap_strfunccs+tjˆƒ‡fdd†ƒ}t|ƒS)Ncsˆt|ƒt|ƒ|ŒS)N)r\)ZpathobjAZpathobjBr–)r—rrr˜wsz5_NormalAccessor._wrap_binary_strfunc..wrapped)r™ršr›)r—r˜r)r—rÚ_wrap_binary_strfuncvs!z$_NormalAccessor._wrap_binary_strfuncÚlchmodcCstdƒ‚dS)Nz%lchmod() not available on this system)ÚNotImplementedError)r$r•Úmoderrrrž‰sz_NormalAccessor.lchmodcCstdƒ‚dS)Nz&symlink() not available on this system)rŸ)rDÚbÚtarget_is_directoryrrrÚsymlinkšsz_NormalAccessor.symlinkcCstjt|ƒt|ƒƒS)N)r]r£r\)rDr¡r¢rrrr£žscCs tj|ƒS)N)r]r)r$r`rrrr¥sz_NormalAccessor.readlinkN)r;r<r=rœr�r]ÚstatÚlstatÚopenÚlistdirÚchmodÚhasattrržÚmkdirÚunlinkÚrmdirÚrenamer*rÚsupports_symlinksr£r›Úutimerrrrrr”ns,    r”c#sdyˆjˆVWnMtk r_i‰‡‡fdd†}d|_z |VWdˆjƒXYnXdS)Nc s=y ˆ|SWn*tk r8ˆ|Œ}ˆ|<|SYnXdS)N)rp)r–Úvalue)ÚcacheÚfuncrrÚwrapper·s   z_cached..wrapperT)Ú __cached__ÚAttributeErrorÚclear)r²r³r)r±r²rÚ_cached°s    r·cCsr|d}|dd…}|dkr/t}n6d|krJtdƒ‚nt|ƒr_t}nt}|||ƒS)Nrr8z**z:Invalid pattern: '**' can only be an entire path component)Ú_RecursiveWildcardSelectorÚ ValueErrorr Ú_WildcardSelectorÚ_PreciseSelector)Ú pattern_partsrÚ child_partsÚclsrrrÚ_make_selectorÃs      r¿Ú lru_cachec@s(eZdZdd„Zdd„ZdS)Ú _SelectorcCs1||_|r!t|ƒ|_n tƒ|_dS)N)r½r¿Ú successorÚ_TerminatingSelector)r$r½rrrr%Øs z_Selector.__init__cCs@t|ƒ}|j}|j}|jj}|j||||ƒS)N)ÚtypeÚis_dirÚexistsr‰r§Ú _select_from)r$Ú parent_pathZpath_clsrÅrÆr§rrrÚ select_fromßs     z_Selector.select_fromN)r;r<r=r%rÉrrrrrÁÔs  rÁc@seZdZdd„ZdS)rÃccs |VdS)Nr)r$rÈrÅrÆr§rrrrÇësz!_TerminatingSelector._select_fromN)r;r<r=rÇrrrrrÃés rÃc@s(eZdZdd„Zdd„ZdS)r»cCs||_tj||ƒdS)N)rxrÁr%)r$rxr½rrrr%ñs z_PreciseSelector.__init__c cszy]||ƒsdS|j|jƒ}||ƒr\x(|jj||||ƒD] }|VqMWWntk rudSYnXdS)N)Ú_make_child_relpathrxrÂrÇÚPermissionError)r$rÈrÅrÆr§r`rYrrrrÇõs  "  z_PreciseSelector._select_fromN)r;r<r=r%rÇrrrrr»ïs  r»c@s(eZdZdd„Zdd„ZdS)rºcCs/tjtj|ƒƒ|_tj||ƒdS)N)ÚreÚcompileÚfnmatchÚ translaterrÁr%)r$rr½rrrr%sz_WildcardSelector.__init__c cs¬y�||ƒsdS|jj}xl||ƒD]^}||ƒ}|jj|ƒr,|j|ƒ}x(|jj||||ƒD] } | Vq{Wq,WWntk r§dSYnXdS)N)Ú_flavourr9rÚmatchrÊrÂrÇrË) r$rÈrÅrÆr§ÚcfrxZ casefoldedr`rYrrrrÇs   " z_WildcardSelector._select_fromN)r;r<r=r%rÇrrrrrºs  rºc@s4eZdZdd„Zdd„Zdd„ZdS)r¸cCstj||ƒdS)N)rÁr%)r$rr½rrrr%sz#_RecursiveWildcardSelector.__init__c csŠ|Vyhxa||ƒD]S}|j|ƒ}||ƒr|jƒ rx"|j|||ƒD] }|VqYWqWWntk r…dSYnXdS)N)rÊÚ is_symlinkÚ_iterate_directoriesrË)r$rÈrÅr§rxr`rYrrrrÔs z/_RecursiveWildcardSelector._iterate_directoriesc csÌy¯||ƒsdSt|ƒ�Œ}tƒ}zn|jj}x[|j|||ƒD]D}x;|||||ƒD]$}||krl|V|j|ƒqlWqPWWd|jƒXWdQRXWntk rÇdSYnXdS)N)r·rzrÂrÇrÔÚaddr¶rË) r$rÈrÅrÆr§ZyieldedZsuccessor_selectZstarting_pointrYrrrrÇ's     z'_RecursiveWildcardSelector._select_fromN)r;r<r=r%rÔrÇrrrrr¸s   r¸c@sFeZdZdZdd„Zdd„Zd d „Zd d „Zd S)Ú _PathParentsÚ_pathclsÚ_drvÚ_rootÚ_partscCs7t|ƒ|_|j|_|j|_|j|_dS)N)rÄr×rØrÙrÚ)r$r`rrrr%Cs  z_PathParents.__init__cCs4|js|jr#t|jƒdSt|jƒSdS)Nr8)rØrÙrPrÚ)r$rrrÚ__len__Jsz_PathParents.__len__cCsX|dks|t|ƒkr*t|ƒ‚|jj|j|j|jd| d…ƒS)Nrr8)rPÚ IndexErrorr×Ú_from_parsed_partsrØrÙrÚ)r$ÚidxrrrÚ __getitem__Ps z_PathParents.__getitem__cCsdj|jjƒS)Nz <{}.parents>)Úformatr×r;)r$rrrÚ__repr__Vsz_PathParents.__repr__N)r×rØrÙrÚ)r;r<r=Ú __slots__r%rÛrßrárrrrrÖ>s    rÖc@sVeZdZdWZdd „Zd d „Zed d „ƒZeddd„ƒZeddd„ƒZ edd„ƒZ dd„Z dd„Z dd„Z dd„Zdd„Zdd „Zd!d"„Zed#d$„ƒZd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zeedƒd1d2ƒZeedƒd1d3ƒZed4d5„ƒZed6d7„ƒZed8d9„ƒZed:d;„ƒZ ed<d=„ƒZ!d>d?„Z"d@dA„Z#dBdC„Z$edDdE„ƒZ%dFdG„Z&dHdI„Z'dJdK„Z(edLdM„ƒZ)edNdO„ƒZ*dPdQ„Z+dRdS„Z,dTdU„Z-dVS)XrrØrÙrÚÚ_strÚ_hashÚ_ppartsÚ_cached_cpartscGs4|tkr'tjdkr!tnt}|j|ƒS)Nr)rr]rxrrÚ _from_parts)r¾r–rrrÚ__new__fs zPurePath.__new__cCs|jt|jƒfS)N)Ú __class__ÚtuplerÚ)r$rrrÚ __reduce__pszPurePath.__reduce__cCs�g}xh|D]`}t|tƒr2||j7}q t|tƒrW|jt|ƒƒq tdt|ƒƒ‚q W|jj|ƒS)Nz/argument should be a path or str object, not %r) Ú isinstancerrÚr\r-Ú TypeErrorrÄrÐr7)r¾r–r1rDrrrÚ _parse_argsus zPurePath._parse_argsTcCsVtj|ƒ}|j|ƒ\}}}||_||_||_|rR|jƒ|S)N)ÚobjectrèrîrØrÙrÚÚ_init)r¾r–Úinitr$r2r3r1rrrrç†s    zPurePath._from_partscCs>tj|ƒ}||_||_||_|r:|jƒ|S)N)rïrèrØrÙrÚrð)r¾r2r3r1rñr$rrrrÝ“s    zPurePath._from_parsed_partscCsB|s |r.|||jj|dd…ƒS|jj|ƒSdS)Nr8)rÐr#)r¾r2r3r1rrrÚ_format_parsed_parts�s "zPurePath._format_parsed_partscCsdS)Nr)r$rrrrð¤szPurePath._initcCs^|j|ƒ\}}}|jj|j|j|j|||ƒ\}}}|j|||ƒS)N)rîrÐr:rØrÙrÚrÝ)r$r–r2r3r1rrrÚ _make_child¨s *zPurePath._make_childc CsRy |jSWn@tk rM|j|j|j|jƒp<d|_|jSYnXdS)Nr')rãrµròrØrÙrÚ)r$rrrÚ__str__®s   zPurePath.__str__cCs"|j}t|ƒj|jdƒS)Nr@)rÐr\r*r")r$Úfrrrri¸s zPurePath.as_posixcCstjt|ƒƒS)N)r]Úfsencoder\)r$rrrÚ __bytes__¾szPurePath.__bytes__cCsdj|jj|jƒƒS)Nz{}({!r}))ràrér;ri)r$rrrráÃszPurePath.__repr__cCs(|jƒstdƒ‚|jj|ƒS)Nz.relative path can't be expressed as a file URI)rŠr¹rÐrm)r$rrrÚas_uriÆs  zPurePath.as_uric CsCy |jSWn1tk r>|jj|jƒ|_|jSYnXdS)N)rærµrÐr[rÚ)r$rrrÚ_cpartsÌs   zPurePath._cpartscCs5t|tƒstS|j|jko4|j|jkS)N)rìrÚNotImplementedrùrÐ)r$ÚotherrrrÚ__eq__ÕszPurePath.__eq__c CsCy |jSWn1tk r>tt|jƒƒ|_|jSYnXdS)N)rärµÚhashrêrù)r$rrrÚ__hash__Ús   zPurePath.__hash__cCs6t|tƒ s"|j|jk r&tS|j|jkS)N)rìrrÐrúrù)r$rûrrrÚ__lt__ás"zPurePath.__lt__cCs6t|tƒ s"|j|jk r&tS|j|jkS)N)rìrrÐrúrù)r$rûrrrÚ__le__æs"zPurePath.__le__cCs6t|tƒ s"|j|jk r&tS|j|jkS)N)rìrrÐrúrù)r$rûrrrÚ__gt__ës"zPurePath.__gt__cCs6t|tƒ s"|j|jk r&tS|j|jkS)N)rìrrÐrúrù)r$rûrrrÚ__ge__ðs"zPurePath.__ge__Údocz.The drive prefix (letter or UNC path), if any.zThe root of the path, if any.cCs|j|j}|S)N)rØrÙ)r$ÚanchorrrrrûszPurePath.anchorcCs?|j}t|ƒ|js$|jr*dndkr7dS|dS)Nr8rr&rM)rÚrPrØrÙ)r$r1rrrrxs *z PurePath.namecCsT|j}|jdƒ}d|ko9t|ƒdknrL||d…SdSdS)Nr'rr8r&)rxÚrfindrP)r$rxrHrrrÚsuffix s  &zPurePath.suffixcCsO|j}|jdƒrgS|jdƒ}dd„|jdƒdd…DƒS)Nr'cSsg|]}d|‘qS)r'r)rBrrrrrZs z%PurePath.suffixes..r8)rxÚendswithrRr,)r$rxrrrÚsuffixess  zPurePath.suffixescCsT|j}|jdƒ}d|ko9t|ƒdknrL|d|…S|SdS)Nr'rr8)rxrrP)r$rxrHrrrÚstems  &z PurePath.stemcCs¾|jstd|fƒ‚|jj|fƒ\}}}| s�|d|jj|jjgks�|s�|s�t|ƒdkr‘td|ƒ‚|j|j|j |j dd…|gƒS)Nz%r has an empty namer8zInvalid name %rrMrM) rxr¹rÐr7r"r(rPrÝrØrÙrÚ)r$rxr2r3r1rrrÚ with_name&s )zPurePath.with_namecCsø|j}|j|ks0|jr@|j|kr@td|ƒ‚|rV|jdƒ sb|dkrrtd|ƒ‚|j}|s”td|fƒ‚|j}|s°||}n|dt|ƒ …|}|j|j |j |j dd…|gƒS)NzInvalid suffix %rr'z%r has an empty namer8rM) rÐr"r(r¹rcrxrrPrÝrØrÙrÚ)r$rrõrxZ old_suffixrrrÚ with_suffix1s '"   zPurePath.with_suffixc GsQ|stdƒ‚|j}|j}|j}|rP||g|dd…}n|}|j|ƒ\}}}|r‘||g|dd…} n|} t| ƒ} |jj} | dkrÇ|pæ|n| |d| …ƒ| | ƒkr"|j|||ƒ} t dj t |ƒt | ƒƒƒ‚|j d| dkr=|nd|| d…ƒS)Nzneed at least one argumentr8rz{!r} does not start with {!r}r&) rírÚrØrÙrîrPrÐr[ròr¹ràr\rÝ) r$rûr1r2r3Z abs_partsZto_drvZto_rootZto_partsZ to_abs_partsÚnrÒÚ formattedrrrÚ relative_toDs(       : zPurePath.relative_toc Cs=y |jSWn+tk r8t|jƒ|_|jSYnXdS)N)rårµrêrÚ)r$rrrr1ds   zPurePath.partscGs |j|ƒS)N)ró)r$r–rrrÚjoinpathpszPurePath.joinpathcCs|j|fƒS)N)ró)r$ÚkeyrrrÚ __truediv__xszPurePath.__truediv__cCs|j|g|jƒS)N)rçrÚ)r$rrrrÚ __rtruediv__{szPurePath.__rtruediv__cCsZ|j}|j}|j}t|ƒdkr=|s9|r=|S|j|||dd…ƒS)Nr8rM)rØrÙrÚrPrÝ)r$r2r3r1rrrÚparent~s    zPurePath.parentcCs t|ƒS)N)rÖ)r$rrrÚparentsˆszPurePath.parentscCs'|js dS|jj p&t|jƒS)NF)rÙrÐruÚboolrØ)r$rrrrŠ�s zPurePath.is_absolutecCs|jj|jƒS)N)rÐrgrÚ)r$rrrrg”szPurePath.is_reservedc Cs,|jj}||ƒ}|jj|fƒ\}}}|sHtdƒ‚|rg|||jƒkrgdS|r†|||jƒkr†dS|j}|s›|rÊt|ƒt|ƒkr·dS|dd…}nt|ƒt|ƒkrædSx?tt |ƒt |ƒƒD]"\}}t j ||ƒsdSqWdS)Nz empty patternFr8T) rÐr9r7r¹rØrÙrùrPÚzipr)rÎÚ fnmatchcase) r$Z path_patternrÒr2r3Z pat_partsr1r5rrrrrÑ™s(     (zPurePath.matchN)rØrÙrÚrãräråræ).r;r<r=rârèrëÚ classmethodrîrçrÝròrðrórôrir÷rárøÚpropertyrùrürþrÿrrrrrhr3rrxrrr r r rr1rrrrrrŠrgrÑrrrrrZsZ                            c@seZdZeZfZdS)rN)r;r<r=Ú_posix_flavourrÐrârrrrr³s c@seZdZeZfZdS)rN)r;r<r=Ú_windows_flavourrÐrârrrrr¸s c@s\eZdZd`Zdd„Zddd„Zdd „Zd d „Zd d „Zdd„Z ddd„Z ddd„Z e dd„ƒZ e dd„ƒZdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,dadddd.d/„Zd0d1„Zddd2d3„Zd4d5„Zddd6d7„Zdd8d9d:„Zdd;d;d<d=„Zd>d?„Zd@dA„Z dBdC„Z!dDdE„Z"dFdG„Z#dHdI„Z$dJdK„Z%d;dLdM„Z&dNdO„Z'dPdQ„Z(dRdS„Z)dTdU„Z*dVdW„Z+dXdY„Z,dZd[„Z-d\d]„Z.d^d_„Z/dS)brr‰Ú_closedcOsl|tkr'tjdkr!tnt}|j|ddƒ}|jjs^td|j fƒ‚|j ƒ|S)NrrñFz$cannot instantiate %r on your system) rr]rxrrrçrÐryrŸr;rð)r¾r–Úkwargsr$rrrrèÆs   z Path.__new__NcCs1d|_|dk r$|j|_n t|_dS)NF)rr‰Ú_normal_accessor)r$ÚtemplaterrrrðÐs  z Path._initcCs)|j|g}|j|j|j|ƒS)N)rÚrÝrØrÙ)r$r5r1rrrrÊÚszPath._make_child_relpathcCs|jr|jƒ|S)N)rÚ _raise_closed)r$rrrÚ __enter__às  zPath.__enter__cCs d|_dS)NT)r)r$ÚtÚvÚtbrrrÚ__exit__åsz Path.__exit__cCstdƒ‚dS)NzI/O operation on closed path)r¹)r$rrrr èszPath._raise_closedi¶cCs|jj|||ƒS)N)r‰r¦)r$rxÚflagsr rrrÚ_openerësz Path._openeriÿcCs)|jr|jƒ|jj|||ƒS)N)rr r‰r¦)r$r&r rrrÚ _raw_openïs  zPath._raw_opencCs|tjƒƒS)N)r]r^)r¾rrrÚcwdúszPath.cwdcCs||ƒjjdƒƒS)N)rÐrt)r¾rrrÚhomesz Path.homec CsS|jƒ}y|jƒ}Wn!tk r?tj|ƒ}YnXtjj||ƒS)N)r¤rµr]r`Úsamestat)r$Z other_pathÚstZother_strrrÚsamefiles   z Path.samefileccsd|jr|jƒxJ|jj|ƒD]6}|dkr;q&|j|ƒV|jr&|jƒq&WdS)Nr'ú..>r.r')rr r‰r§rÊ)r$rxrrrÚiterdirs    z Path.iterdirccs˜|stdj|ƒƒ‚|jj|ƒ}|jj|fƒ\}}}|sW|rctdƒ‚tt|ƒƒ}x|j|ƒD] }|Vq…WdS)NzUnacceptable pattern: {!r}z%Non-relative patterns are unsupported) r¹ràrÐr9r7rŸr¿rêrÉ)r$Úpatternr2r3r¼ÚselectorrYrrrÚglob!s  z Path.globccs�|jj|ƒ}|jj|fƒ\}}}|s<|rHtdƒ‚tdt|ƒƒ}x|j|ƒD] }|VqnWdS)Nz%Non-relative patterns are unsupportedú**)r3)rÐr9r7rŸr¿rêrÉ)r$r0r2r3r¼r1rYrrrÚrglob/s  z Path.rglobcCs\|jr|jƒ|jƒr#|S|jtjƒg|jddƒ}|jd|ƒ|S)NrñFr)rr rŠrçr]r^rÚrð)r$ÚobjrrrÚabsolute;s   %z Path.absolutecCsŽ|jr|jƒ|jj|ƒ}|dkrM|jƒt|jƒƒ}|jjj|ƒ}|j |fddƒ}|j d|ƒ|S)NrñFr) rr rÐrar¤r\r6rwÚnormpathrçrð)r$rXZnormedr5rrrraMs    z Path.resolvecCs|jj|ƒS)N)r‰r¤)r$rrrr¤asz Path.statcCs%ddl}|j|jƒjƒjS)Nr)r�rŽr¤Úst_uidÚpw_name)r$r�rrrÚownerhs z Path.ownercCs%ddl}|j|jƒjƒjS)Nr)ÚgrpÚgetgrgidr¤Úst_gidÚgr_name)r$r;rrrÚgroupos z Path.groupÚrr8c Cs>|jr|jƒtjt|ƒ|||||d|jƒS)NZopener)rr Úior¦r\r')r$r Ú bufferingÚencodingÚerrorsÚnewlinerrrr¦vs  !z Path.openc Cs*|jddƒ�}|jƒSWdQRXdS)Nr Úrb)r¦Úread)r$rõrrrÚ read_bytes�szPath.read_bytesc Cs6|jddd|d|ƒ�}|jƒSWdQRXdS)Nr r@rCrD)r¦rG)r$rCrDrõrrrÚ read_textˆs!zPath.read_textc Cs9t|ƒ}|jddƒ�}|j|ƒSWdQRXdS)Nr Úwb)Ú memoryviewr¦Úwrite)r$ÚdataÚviewrõrrrÚ write_bytes�s zPath.write_bytesc Cs^t|tƒs%td|jjƒ‚|jddd|d|ƒ�}|j|ƒSWdQRXdS)Nzdata must be str, not %sr ÚwrCrD)rìr\rírér;r¦rL)r$rMrCrDrõrrrÚ write_text˜s !zPath.write_textTc Cs�|jr|jƒ|rIy|jj|dƒWntk rDYnXdStjtjB}|sl|tjO}|j ||ƒ}tj |ƒdS)N) rr r‰r¯r€r]ÚO_CREATÚO_WRONLYÚO_EXCLr(Úclose)r$r Úexist_okr&ÚfdrrrÚtouch¢s    z Path.touchFc Cs¶|jr|jƒy|jj||ƒWn…tk r‰| sP|j|krS‚|jjddddƒ|j|ddd|ƒYn)tk r±| sª|jƒ r­‚YnXdS)NrTrVF)rr r‰rªÚFileNotFoundErrorrr€rÅ)r$r rrVrrrrª¹s    z Path.mkdircCs*|jr|jƒ|jj||ƒdS)N)rr r‰r¨)r$r rrrr¨Ìs  z Path.chmodcCs*|jr|jƒ|jj||ƒdS)N)rr r‰rž)r$r rrrržÔs  z Path.lchmodcCs'|jr|jƒ|jj|ƒdS)N)rr r‰r«)r$rrrr«Ýs  z Path.unlinkcCs'|jr|jƒ|jj|ƒdS)N)rr r‰r¬)r$rrrr¬æs  z Path.rmdircCs#|jr|jƒ|jj|ƒS)N)rr r‰r¥)r$rrrr¥îs  z Path.lstatcCs*|jr|jƒ|jj||ƒdS)N)rr r‰r­)r$r„rrrr­÷s  z Path.renamecCs*|jr|jƒ|jj||ƒdS)N)rr r‰r*)r$r„rrrr*ÿs  z Path.replacecCs-|jr|jƒ|jj|||ƒdS)N)rr r‰r£)r$r„r¢rrrÚ symlink_tos  zPath.symlink_tocCsVy|jƒWnAtk rQ}z!|jttfkr;‚dSWYdd}~XnXdS)NFT)r¤r€r�rr)r$r…rrrrÆsz Path.existscCs_yt|jƒjƒSWnAtk rZ}z!|jttfkrD‚dSWYdd}~XnXdS)NF)rr¤Úst_moder€r�rr)r$r…rrrrÅs z Path.is_dircCs_yt|jƒjƒSWnAtk rZ}z!|jttfkrD‚dSWYdd}~XnXdS)NF)r r¤r[r€r�rr)r$r…rrrÚis_file,s z Path.is_filecCs_yt|jƒjƒSWnAtk rZ}z!|jttfkrD‚dSWYdd}~XnXdS)NF)r r¥r[r€r�rr)r$r…rrrrÓ:s zPath.is_symlinkcCs_yt|jƒjƒSWnAtk rZ}z!|jttfkrD‚dSWYdd}~XnXdS)NF)r r¤r[r€r�rr)r$r…rrrÚis_block_deviceFs zPath.is_block_devicecCs_yt|jƒjƒSWnAtk rZ}z!|jttfkrD‚dSWYdd}~XnXdS)NF)r r¤r[r€r�rr)r$r…rrrÚis_char_deviceSs zPath.is_char_devicecCs_yt|jƒjƒSWnAtk rZ}z!|jttfkrD‚dSWYdd}~XnXdS)NF)rr¤r[r€r�rr)r$r…rrrÚis_fifo`s z Path.is_fifocCs_yt|jƒjƒSWnAtk rZ}z!|jttfkrD‚dSWYdd}~XnXdS)NF)r r¤r[r€r�rr)r$r…rrrÚ is_socketms zPath.is_socketcCs�|jp|j r}|jr}|jddd…dkr}|jj|jddd…ƒ}|j|g|jdd…ƒS|S)Nrr8ú~)rØrÙrÚrÐrtrç)r$ZhomedirrrrÚ expanduserzs &#!zPath.expanduser)r‰rrM)0r;r<r=rârèrðrÊr!r%r r'r(rr)r*r-r/r2r4r6rar¤r:r?r¦rHrIrOrQrXrªr¨ržr«r¬r¥r­r*rZrÆrÅr\rÓr]r^r_r`rbrrrrrÀs\                        c@seZdZfZdS)rN)r;r<r=rârrrrr†s c@s.eZdZfZdd„Zdd„ZdS)rcCstdƒ‚dS)Nz*Path.owner() is unsupported on this system)rŸ)r$rrrr:ŒszWindowsPath.ownercCstdƒ‚dS)Nz*Path.group() is unsupported on this system)rŸ)r$rrrr?�szWindowsPath.groupN)r;r<r=râr:r?rrrrr‰s  )=rÎr™rArvr]r’rÌr.Ú collectionsrÚ contextlibrr�rrrÚoperatorrr¤rr r r r r rZ urllib.parserrjr®rxrZgetwindowsversionrÚ__all__r rïr!r>r}rrr“r”rr·r¿r©rÀrÁrÃr»rºr¸rÖrrrrrrrrrrÚsd        4 "   ?˜b  ;  'ÿZÿÇ