a DOg9@sbddlZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z m Z m Z mZmZddlmZddlmZmZmZmZmZmZmZddlmZdZejdkrddlZe dd d krdd lm!Z!qd ZdZ!ndZgd Z"e e eefZ#dZ$ddZ%ddZ&Gddde'Z(Gddde(Z)Gddde(Z*e)Z+e*Z,GdddZ-Gddde-Z.e.Z/ddZ0e1edre2e0Z0Gd d!d!Z3Gd"d#d#Z4Gd$d%d%e3Z5Gd&d'd'e3Z6Gd(d)d)e3Z7Gd*d+d+e Z8Gd,d-d-e'Z9ej:;e9Gd.d/d/e9ZGd4d5d5e>e<Z?Gd6d7d7e>e=Z@dS)8N)Sequence)EINVALENOENTENOTDIREBADFELOOP) attrgetter)S_ISDIRS_ISLNKS_ISREGS_ISSOCKS_ISBLKS_ISCHRS_ISFIFO)quote_from_bytesTnt)r)_getfinalpathnameF)PurePath PurePosixPathPureWindowsPathPath PosixPath WindowsPath){icCs t|ddtvpt|ddtvS)NerrnoZwinerror)getattr_IGNORED_ERROS_IGNORED_WINERRORS)Z exceptionr!,/opt/alt/python39/lib64/python3.9/pathlib.py _ignore_error.sr#cCsd|vpd|vpd|vS)N*?[r!)patr!r!r"_is_wildcard_pattern3sr(c@s$eZdZddZddZddZdS)_FlavourcCs|jj|_dSN)sepjoinselfr!r!r"__init__=sz_Flavour.__init__c Csg}|j}|j}d}}t|}|D]}|s.q$|r>|||}||\}}} || vrt| |D] } | rd| dkrd|t| qdn| r| dkr|t| |s|r$|s|D]0}|sq|r|||}||d}|rqqqq$|s|r|||| |||fS)N.r) r+altsepreversedreplace splitrootsplitappendsysinternreverse) r.partsZparsedr+r2drvrootitpartZrelxr!r!r" parse_parts@s@     z_Flavour.parse_partscCsz|r*|sp|rp||||g|ddfSnF|rb||ksJ||||krp||||ddfSn||||fS|||fSN)casefold)r.r<r=r;Zdrv2Zroot2Zparts2r!r!r"join_parsed_partsfsz_Flavour.join_parsed_partsN)__name__ __module__ __qualname__r/rArEr!r!r!r"r)9s&r)c@seZdZdZdZdZeZej dkZ e dZ dZ hddd d DBd d d DBZefd d ZddZddZddZd"ddZe fddZddZddZddZdd Zd!S)#_WindowsFlavour\/TrZ4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZz\\?\>ZAUXZPRNzCONIN$ZNULzCONOUT$ZCONcCsh|] }d|qS)zCOM%sr!.0cr!r!r" z_WindowsFlavour.u123456789¹²³cCsh|] }d|qS)zLPT%sr!rLr!r!r"rOrPc Cs\|dd}|dd}||krP||krP||\}}|dd}|dd}nd}|dd}||kr||kr||kr||d}|dkr|||d}||dkr|dkrt|}|r||d||||ddfS|d||||ddfSd} } |dkr6||jvr6|dd} |dd}|}||krN|} ||}|| | |fS)NrrCrr0:)_split_extended_pathfindlen drive_letterslstrip) r.r?r+firstsecondprefixZthirdindexZindex2r<r=r!r!r"r5s6      "    z_WindowsFlavour.splitrootcCs|Sr*lowerr.sr!r!r"rDsz_WindowsFlavour.casefoldcCsdd|DS)NcSsg|] }|qSr!r])rMpr!r!r" rPz2_WindowsFlavour.casefold_parts..r!r.r;r!r!r"casefold_partssz_WindowsFlavour.casefold_partscCstt|tjjSr*)recompilefnmatch translate IGNORECASE fullmatchr.patternr!r!r"compile_patternsz_WindowsFlavour.compile_patternFcCst|}|stSd}tdur|r2|t|Sg}z|t|}Wn@ty|}tj|\}}||||kr|YSYq60tjj |gt |RSq6dSr*) strosgetcwdr_ext_to_normalFileNotFoundErrorpathr6r7r,r3)r.rsstrictr`Z previous_sZ tail_partstailr!r!r"resolves$  z_WindowsFlavour.resolvecCsXd}||rP|dd}|dd}|drP||dd7}d|dd}||fS)Nr0zUNC\rQrJ) startswith)r.r`Z ext_prefixr[r!r!r"rTs    z$_WindowsFlavour._split_extended_pathcCs||dSrB)rTr_r!r!r"rqsz_WindowsFlavour._ext_to_normalcCsJ|sdS|ddrdS|dddddd}||jvS)NFrz\\rRr1rS )rx partitionrstripupperreserved_names)r.r;namer!r!r" is_reserveds "z_WindowsFlavour.is_reservedcCsd|j}t|dkrJ|ddkrJ|ddd}d|t|dfSdt|dSdS)NrrCrSrKz file:///%s/%szutf-8zfile:)driverVas_posixrXurlquote_from_bytesencode)r.rsrrestr!r!r"make_urisz_WindowsFlavour.make_uricCsdtjvrtjd}nHdtjvrVztjd}WntyDd}Yn0|tjd}ntd|rtjd|kr||f\}}}|dtjdkrtd|||d<|s|r||||d d}n ||}|S) NZ USERPROFILEZHOMEPATHZ HOMEDRIVEr0zCan't determine home directoryZUSERNAMErR%Can't determine home directory for %rrC)roenvironKeyError RuntimeErrorrAr,)r.usernameuserhomer<r=r;r!r!r" gethomedir s*      z_WindowsFlavour.gethomedirN)F)rFrGrHr+r2has_drvntpathpathmodror~ is_supportedsetrWZext_namespace_prefixr}r5rDrdrmrvrTrqrrrr!r!r!r"rIxs.    '    rIc@sleZdZdZdZdZeZej dkZ efddZ ddZ d d Z d d Zdd dZddZddZddZdS) _PosixFlavourrKr0FrcCsV|rH|d|krH||}t|t|dkrsz_PosixFlavour.casefoldcCs|Sr*r!rcr!r!r"rdAsz_PosixFlavour.casefold_partscCstt|jSr*)rerfrgrhrjrkr!r!r"rmDsz_PosixFlavour.compile_patterncsJ|j|jifdd|r0dnt}|t|pHS)Nc s|rd}|D]}|r|dkr*q|dkrD|\}}}q|rX||}n ||}|vr|}|dur~qtd|z|}Wn8ty}z |jtkrr|}WYd}~qd}~00d|<||}||<q|S)Nr0r1..zSymlink loop from %r) rxr6 rpartitionendswithrreadlinkOSErrorrr)rsrr~_newpathtargete_resolveZaccessorseenr+rtr!r"rKs4        z'_PosixFlavour.resolve.._resolver0)r+ _accessor is_absoluterorprn)r.rsrtbaser!rr"rvGs )z_PosixFlavour.resolvecCsdSNFr!rcr!r!r"rwsz_PosixFlavour.is_reservedcCst|}dt|S)Nzfile://)bytesr)r.rsZbpathr!r!r"rzsz_PosixFlavour.make_uricCsx|s>z tjdWSty:ddl}|tjYS0n6ddl}z||jWStyrtd|Yn0dS)NHOMErr) rorrpwdgetpwuidgetuidpw_dirgetpwnamr)r.rrr!r!r"rs   z_PosixFlavour.gethomedirN)F)rFrGrHr+r2r posixpathrror~rr5rDrdrmrvrrrr!r!r!r"r's   0rc@s eZdZdS) _AccessorN)rFrGrHr!r!r!r"rsrc@seZdZejZejZejZejZejZej Z e edr>ej Z nddZ ej Z ej Z e edrdejZn eddZejZejZejZererejZqddZn ed dZejZd d Zd d ZddZdS)_NormalAccessorlchmodcCs tddS)Nz%lchmod() not available on this systemNotImplementedError)r.Zpathobjmoder!r!r"rsz_NormalAccessor.lchmodlinkcCs tddS)Nz&os.link() not available on this systemrr.rr!r!r"link_tosz_NormalAccessor.link_tocCs tddS)Nz&symlink() not available on this systemrabtarget_is_directoryr!r!r"symlinksz_NormalAccessor.symlinkcCs t||Sr*)rorrr!r!r"rscCs t|Sr*)rorr.rsr!r!r"rsz_NormalAccessor.readlinkcCs>zddl}|||jjWSty8tdYn0dS)Nrz*Path.owner() is unsupported on this system)rrstatst_uidZpw_name ImportErrorr)r.rsrr!r!r"owners  z_NormalAccessor.ownercCs>zddl}|||jjWSty8tdYn0dS)Nrz*Path.group() is unsupported on this system)grpZgetgrgidrst_gidZgr_namerr)r.rsrr!r!r"groups  z_NormalAccessor.groupN)rFrGrHrorlstatopenlistdirscandirchmodhasattrrmkdirunlinkrr staticmethodrmdirrenamer4rsupports_symlinksrutimerrrr!r!r!r"rs8     rcCsR|d}|dd}|dkr"t}n$d|vr4tdnt|rBt}nt}||||S)NrrC**z:Invalid pattern: '**' can only be an entire path component)_RecursiveWildcardSelector ValueErrorr(_WildcardSelector_PreciseSelector) pattern_partsflavourr' child_partsclsr!r!r"_make_selectors  r lru_cachec@seZdZddZddZdS) _SelectorcCs0||_|rt|||_d|_nt|_d|_dSNTF)rr successordironly_TerminatingSelector)r.rrr!r!r"r/s  z_Selector.__init__cCs<t|}|j}|j}|jj}||s,tgS|||||Sr*)typeis_direxistsrriter _select_from)r. parent_pathZpath_clsrrrr!r!r" select_fromsz_Selector.select_fromN)rFrGrHr/rr!r!r!r"rs rc@seZdZddZdS)rccs |VdSr*r!)r.rrrrr!r!r"rsz!_TerminatingSelector._select_fromN)rFrGrHrr!r!r!r"rsrc@seZdZddZddZdS)rcCs||_t|||dSr*)r~rr/)r.r~rrr!r!r"r/sz_PreciseSelector.__init__ccsZz@||j}|jr|n||r>|j||||D] }|Vq2WntyTYdS0dSr*)_make_child_relpathr~rrrPermissionError)r.rrrrrsrar!r!r"rs   z_PreciseSelector._select_fromNrFrGrHr/rr!r!r!r"rsrc@seZdZddZddZdS)rcCs|||_t|||dSr*)rmmatchrr/r.r'rrr!r!r"r/(s z_WildcardSelector.__init__c csz||}t|}Wdn1s(0Y|D]}|jrz|sNWq6Wn:ty}z"t|sjWYd}~q6WYd}~n d}~00|j} || r6|| } |j | |||D] } | Vqq6Wnt yYdS0dSr*) listrrrr#r~rrrrr) r.rrrr scandir_itentriesentryrr~rsrar!r!r"r,s& &"   z_WildcardSelector._select_fromNrr!r!r!r"r&src@s$eZdZddZddZddZdS)rcCst|||dSr*)rr/rr!r!r"r/Gsz#_RecursiveWildcardSelector.__init__c cs|Vz||}t|}Wdn1s.0Y|D]v}d}z |}Wn.ty~}zt|sjWYd}~n d}~00|r<|s<||j} || ||D] } | Vqq)formatrrFr-r!r!r"__repr__sz_PathParents.__repr__N)rFrGrH __slots__r/rrrr!r!r!r"rqs rc@seZdZdZddZddZeddZed[d d Zed\d d Z ed dZ ddZ ddZ ddZ ddZddZddZddZddZedd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zeed/d0d1Zeed2d3d1Zed4d5Zed6d7Z ed8d9Z!ed:d;Z"edd?Z$d@dAZ%dBdCZ&dDdEZ'dFdGZ(edHdIZ)dJdKZ*dLdMZ+dNdOZ,edPdQZ-edRdSZ.dTdUZ/dVdWZ0dXdYZ1dZS)]r)rrr_str_hash_pparts_cached_cpartscGs$|turtjdkrtnt}||S)Nr)rror~rr _from_parts)rargsr!r!r"__new__szPurePath.__new__cCs|jt|jfSr*) __class__tuplerr-r!r!r" __reduce__szPurePath.__reduce__cCsdg}|D]N}t|tr"||j7}qt|}t|trF|t|qtdt|q|j |S)NzNargument should be a str object or an os.PathLike object returning str, not %r) isinstancerrrofspathrnr7 TypeErrorr_flavourrA)rrr;rr!r!r" _parse_argss    zPurePath._parse_argsTcCs<t|}||\}}}||_||_||_|r8||Sr*)objectrr rrr_init)rrinitr.r<r=r;r!r!r"rs zPurePath._from_partscCs,t|}||_||_||_|r(||Sr*)rrrrrr)rr<r=r;rr.r!r!r"rs zPurePath._from_parsed_partscCs4|s|r$|||j|ddS|j|SdSrB)r r,)rr<r=r;r!r!r"_format_parsed_partsszPurePath._format_parsed_partscCsdSr*r!r-r!r!r"rszPurePath._initcCs@||\}}}|j|j|j|j|||\}}}||||Sr*)r r rErrrr)r.rr<r=r;r!r!r" _make_childs  zPurePath._make_childcCs@z|jWSty:||j|j|jp,d|_|jYS0dS)Nr1)rAttributeErrorrrrrr-r!r!r"__str__s  zPurePath.__str__cCst|Sr*)rnr-r!r!r" __fspath__szPurePath.__fspath__cCs|j}t||jdS)NrK)r rnr4r+r.fr!r!r"rszPurePath.as_posixcCs t|Sr*)rofsencoder-r!r!r" __bytes__szPurePath.__bytes__cCsd|jj|S)Nz{}({!r}))rrrFrr-r!r!r"rszPurePath.__repr__cCs|std|j|S)Nz.relative path can't be expressed as a file URI)rrr rr-r!r!r"as_uriszPurePath.as_uricCs6z|jWSty0|j|j|_|jYS0dSr*)rrr rdrr-r!r!r"_cpartss  zPurePath._cpartscCs&t|tstS|j|jko$|j|juSr*)r rNotImplementedrr r.otherr!r!r"__eq__s zPurePath.__eq__cCs6z|jWSty0tt|j|_|jYS0dSr*)rrhashrrr-r!r!r"__hash__s  zPurePath.__hash__cCs&t|tr|j|jurtS|j|jkSr*r rr rrrr!r!r"__lt__szPurePath.__lt__cCs&t|tr|j|jurtS|j|jkSr*r"rr!r!r"__le__!szPurePath.__le__cCs&t|tr|j|jurtS|j|jkSr*r"rr!r!r"__gt__&szPurePath.__gt__cCs&t|tr|j|jurtS|j|jkSr*r"rr!r!r"__ge__+szPurePath.__ge__cCs|Sr*r!)rrr!r!r"__class_getitem__0szPurePath.__class_getitem__rz.The drive prefix (letter or UNC path), if any.)docrzThe root of the path, if any.cCs|j|j}|Sr*)rr)r.anchorr!r!r"r)9s zPurePath.anchorcCs.|j}t||js|jrdndkr&dS|dS)NrCrr0rR)rrVrrrcr!r!r"r~?sz PurePath.namecCsD|j}|d}d|kr,t|dkr.rC)r~rrXr6r.r~r!r!r"suffixesUs   zPurePath.suffixescCsD|j}|d}d|kr,t|dkrr?r@rrrr!r!r!r"rsz              !    rc@seZdZeZdZdS)rr!N)rFrGrH_posix_flavourr rr!r!r!r"rsrc@seZdZeZdZdS)rr!N)rFrGrH_windows_flavourr rr!r!r!r"rsrc@seZdZdZddZdcddZddZd d Zd d ZddddZ deddZ e ddZ e ddZ ddZddZddZddZdd Zdfd"d#Zd$d%Zd&d'Zd(d)Zdgd,d-Zd.d/Zdhd0d1Zd2d3Zdid4d5Zd6d7Zdjd9d:Zdkd;d<Zd=d>Zd?d@Z dldAdBZ!dCdDZ"dEdFZ#dGdHZ$dIdJZ%dmdKdLZ&dMdNZ'dOdPZ(dQdRZ)dSdTZ*dUdVZ+dWdXZ,dYdZZ-d[d\Z.d]d^Z/d_d`Z0dadbZ1dS)nr)rcOsL|turtjdkrtnt}|j|dd}|jjs@td|j f| |S)NrFrz$cannot instantiate %r on your system) rror~rrrr rrrFr)rrkwargsr.r!r!r"r7sz Path.__new__NcCs|dur|j|_nt|_dSr*)r_normal_accessor)r.templater!r!r"rAs z Path._initcCs|j|g}||j|j|Sr*)rrrr)r.r?r;r!r!r"rJs zPath._make_child_relpathcCs|Sr*r!r-r!r!r" __enter__PszPath.__enter__cCsdSr*r!)r.tvtbr!r!r"__exit__Ss z Path.__exit__cCs|j|||Sr*rr)r.r~flagsrr!r!r"_opener^sz Path._openercCs|j|||Sr*rQ)r.rRrr!r!r" _raw_openbszPath._raw_opencCs |tSr*)rorprr!r!r"cwdkszPath.cwdcCs||jdSr*)r rrVr!r!r"homersz Path.homecCsB|}z |}Wnty2|j|}Yn0tj||Sr*)rrrrorssamestat)r.Z other_pathstZother_str!r!r"samefileys   z Path.samefileccs,|j|D]}|dvrq ||Vq dS)N>rr1)rrrr/r!r!r"iterdirsz Path.iterdirccsntd|||s td||j|f\}}}|s<|rDtdtt||j}| |D] }|Vq^dS)Nzpathlib.Path.globzUnacceptable pattern: {!r}%Non-relative patterns are unsupported) r8auditrrr rArrrrr.rlr<r=rZselectorrar!r!r"globsz Path.globccs`td|||j|f\}}}|s*|r2tdtdt||j}||D] }|VqPdS)Nzpathlib.Path.rglobr])r)r8r^r rArrrrr_r!r!r"rglobsz Path.rglobcCs6|r |S|jtg|jdd}|j|d|SNFrGrJ)rrrorprr)r.objr!r!r"absolutes  z Path.absoluteFcCsZ|jj||d}|dur,|t|}|jj|}|j|fdd}|j|d|S)N)rtFrGrc) r rvrrnrernormpathrr)r.rtr`Znormedrdr!r!r"rvs  z Path.resolvecCs |j|Sr*)rrr-r!r!r"rsz Path.statcCs |j|Sr*)rrr-r!r!r"rsz Path.ownercCs |j|Sr*)rrr-r!r!r"rsz Path.grouprrRc Cstj|||||||jdS)N)Zopener)iorrS)r.r bufferingencodingerrorsnewliner!r!r"rsz Path.opencCs8|jdd}|WdS1s*0YdS)Nrbrrreadrr!r!r" read_bytesszPath.read_bytescCs<|jd||d}|WdS1s.0YdS)Nrgrrjrkro)r.rjrkrr!r!r" read_textszPath.read_textcCsBt|}|jdd}||WdS1s40YdS)Nwbrn) memoryviewrwrite)r.dataZviewrr!r!r" write_bytesszPath.write_bytescCsXt|tstd|jj|jd||d}||WdS1sJ0YdS)Nzdata must be str, not %swrr)r rnr rrFrrv)r.rwrjrkrr!r!r" write_texts  zPath.write_textcCs,|j|}|j|fdd}|j|d|Srb)rrrr)r.rsrdr!r!r"rs  z Path.readlinkTcCsb|r.z|j|dWnty(Yn0dStjtjB}|sH|tjO}|||}t|dSr*) rrrroO_CREATO_WRONLYO_EXCLrUclose)r.rexist_okrRfdr!r!r"touchs    z Path.touchcCsxz|j||Wn`tyT|r.|j|kr0|jjddd|j|d|dYn tyr|rl|snYn0dS)NT)r@rF)rrrrr?rr)r.rr@rr!r!r"r&s   z Path.mkdircCs|j||dSr*)rrr.rr!r!r"r7sz Path.chmodcCs|j||dSr*)rrrr!r!r"r=sz Path.lchmodcCs.z|j|Wnty(|s$Yn0dSr*)rrrr)r.Z missing_okr!r!r"rDs  z Path.unlinkcCs|j|dSr*)rrr-r!r!r"rOsz Path.rmdircCs |j|Sr*)rrr-r!r!r"rUsz Path.lstatcCs|j||||Sr*)rrrrr!r!r"r\s z Path.renamecCs|j||||Sr*)rr4rrr!r!r"r4is z Path.replacecCs|j|||dSr*)rr)r.rrr!r!r" symlink_tovszPath.symlink_tocCs|j||dSr*)rrrr!r!r"r}s z Path.link_toc CsTz |WnBty<}zt|s&WYd}~dSd}~0tyNYdS0dSNFT)rrr#rr.rr!r!r"rs  z Path.existsc CsXzt|jWSty@}zt|s*WYd}~dSd}~0tyRYdS0dSr)r rst_moderr#rrr!r!r"rs z Path.is_dirc CsXzt|jWSty@}zt|s*WYd}~dSd}~0tyRYdS0dSr)r rrrr#rrr!r!r"is_files z Path.is_filecCsn|r|sdSz|jj}Wnty8YdS0|j}||krPdS|j}|jj}||kSr)rrr?rst_devrst_ino)r.Z parent_devZdevZinoZ parent_inor!r!r"is_mounts    z Path.is_mountc CsXzt|jWSty@}zt|s*WYd}~dSd}~0tyRYdS0dSr)r rrrr#rrr!r!r"rs zPath.is_symlinkc CsXzt|jWSty@}zt|s*WYd}~dSd}~0tyRYdS0dSr)r rrrr#rrr!r!r"is_block_devices zPath.is_block_devicec CsXzt|jWSty@}zt|s*WYd}~dSd}~0tyRYdS0dSr)rrrrr#rrr!r!r"is_char_devices zPath.is_char_devicec CsXzt|jWSty@}zt|s*WYd}~dSd}~0tyRYdS0dSr)rrrrr#rrr!r!r"is_fifos z Path.is_fifoc CsXzt|jWSty@}zt|s*WYd}~dSd}~0tyRYdS0dSr)r rrrr#rrr!r!r" is_sockets zPath.is_socketcCs`|js\|js\|jr\|jddddkr\|j|jddd}||g|jddS|S)NrrC~)rrrr rr)r.Zhomedirr!r!r" expandusers zPath.expanduser)N)rP)rT)F)rgrRNNN)NN)NN)rPT)rTFF)F)F)2rFrGrHrrrrrKrOrSrUrCrWrXr[r\r`rarervrrrrrqrsrxrzrrrrrrrrrr4rrrrrrrrrrrrr!r!r!r"r*sf                  rc@seZdZdZdS)rr!N)rFrGrHrr!r!r!r"r*src@seZdZdZddZdS)rr!cCs tddS)Nz-Path.is_mount() is unsupported on this systemrr-r!r!r"r8szWindowsPath.is_mountN)rFrGrHrrr!r!r!r"r1sr)Arg functoolsrhrrorrer8_collections_abcrrrrrrroperatorrrr r r r r rrZ urllib.parserrrr~rZgetwindowsversionr__all__rr r#r(rr)rIrrFrErrrIrrrrrrrrrrPathLikeregisterrrrrrr!r!r!r"sr  $   ?0iF  ,