o bc@s4ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z m Z mZmZmZddlmZddlmZmZmZmZmZmZmZddlmZgdZdZd Z d Z!e eeefZ"ee e!fZ#d d Z$d dZ%Gddde&Z'Gddde'Z(Gddde'Z)e(Z*e)Z+GdddZ,Gddde,Z-e-Z.ddZ/e0edre1e/Z/GdddZ2GdddZ3Gd d!d!e2Z4Gd"d#d#e2Z5Gd$d%d%e2Z6Gd&d'd'e Z7Gd(d)d)e&Z8ej9:e8Gd*d+d+e8Z;Gd,d-d-e8ZGd2d3d3e=e<Z?dS)4N)Sequence)EINVALENOENTENOTDIREBADFELOOP) attrgetter)S_ISDIRS_ISLNKS_ISREGS_ISSOCKS_ISBLKS_ISCHRS_ISFIFO)quote_from_bytes)PurePath PurePosixPathPureWindowsPathPath PosixPath WindowsPath{icCs t|ddtvpt|ddtvS)Nerrnowinerror)getattr_IGNORED_ERROS_IGNORED_WINERRORS)Z exceptionrh/home/lily/lilypond-2.24.1/release/binaries/dependencies/install/Python-3.10.8/lib/python3.10/pathlib.py _ignore_error&sr cCsd|vp d|vp d|vS)N*?[r)patrrr_is_wildcard_pattern+sr%c@s&eZdZ ddZddZddZdS)_FlavourcCs|jj|_dSN)sepjoinselfrrr__init__5z_Flavour.__init__c Csg}|j}|j}d}}t|}|D]c}|sq|r|||}||\}}} || vrDt| |D]} | rB| dkrB|t| q2n| rR| dkrR|t| |sV|ru|ss|D]}|s_qZ|rg|||}||d}|rrnqZnq|sz|r|||| |||fS)N.r) r(altsepreversedreplace splitrootsplitappendsysinternreverse) r+partsZparsedr(r0drvrootitpartZrelxrrr parse_parts8sH     z_Flavour.parse_partscCs| |r|s|r||||g|ddfSn#|r2||ks&||||kr1||||ddfSn||||fS|||fSN)casefold)r+r:r;r9Zdrv2Zroot2Zparts2rrrjoin_parsed_parts^s z_Flavour.join_parsed_partsN)__name__ __module__ __qualname__r,r?rCrrrrr&1s  &r&c@seZdZdZdZdZeZej dkZ e dZ dZ hddd d DBd d d DBZefd d ZddZddZddZe fddZddZddZdS)_WindowsFlavour\/TntZ4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZz\\?\>ZPRNZAUXZCONzCONOUT$zCONIN$ZNULcCh|]}d|qS)zCOM%sr.0crrr z_WindowsFlavour.u123456789¹²³cCrK)zLPT%srrLrrrrOrPc CsV|dd}|dd}||kr(||kr(||\}}|dd}|dd}nd}|dd}||kr~||kr~||kr~||d}|dkr~|||d}||dkr~|dkr\t|}|ro||d||||ddfS|d||||ddfSd} } |dkr||jvr|dd} |dd}|}||kr|} ||}|| | |fS)NrrAr.:)_split_extended_pathfindlen drive_letterslstrip) r+r=r(firstsecondprefixZthirdindexZindex2r:r;rrrr3s6      "   z_WindowsFlavour.splitrootcCs|Sr'lowerr+srrrrBz_WindowsFlavour.casefoldcCsdd|DS)NcSsg|]}|qSrr^)rMprrr rPz2_WindowsFlavour.casefold_parts..rr+r9rrrcasefold_partsr-z_WindowsFlavour.casefold_partscCstt|tjjSr')recompilefnmatch translate IGNORECASE fullmatchr+patternrrrcompile_patternsz_WindowsFlavour.compile_patterncCsXd}||r(|dd}|dd}|dr(||dd7}d|dd}||fS)Nr.zUNC\rRrH) startswith)r+raZ ext_prefixr\rrrrUs    z$_WindowsFlavour._split_extended_pathcCsJ|sdS|ddr dS|dddddd}||jvS)NFrz\\rSr/rT )rq partitionrstripupperreserved_names)r+r9namerrr is_reserveds "z_WindowsFlavour.is_reservedcCs`|j}t|dkr%|ddkr%|ddd}d|t|dfSdt|dS)NrQrArTrIz file:///%s/%szutf-8zfile:)driverWas_posixrYurlquote_from_bytesencode)r+pathryrestrrrmake_urisz_WindowsFlavour.make_uriN)rDrErFr(r0has_drvntpathpathmodosrw is_supportedsetrXZext_namespace_prefixrvr3rBrfrorUrxrrrrrrGps*    '  rGc@sZeZdZdZdZdZeZej dkZ efddZ ddZ d d Z d d Zd dZddZdS) _PosixFlavourrIr.FrJcCsP|r#|d|kr#||}t|t|dkrd|d|fSd||fSdd|fS)NrrQr.)rYrW)r+r=r(Z stripped_partrrrr3s    z_PosixFlavour.splitrootcC|Sr'rr`rrrrBz_PosixFlavour.casefoldcCrr'rrerrrrfrz_PosixFlavour.casefold_partscCstt|jSr')rgrhrirjrlrmrrrroz_PosixFlavour.compile_patterncCsdSNFrrerrrrxrz_PosixFlavour.is_reservedcCst|}dt|S)Nzfile://)bytesr{)r+r}Zbpathrrrr s z_PosixFlavour.make_uriN)rDrErFr(r0r posixpathrrrwrr3rBrfrorxrrrrrrs   rc@s eZdZdS) _AccessorN)rDrErFrrrrrsrc@seZdZejZejZejZejZej Z ej Z ej Z e edr"ej Z nddZ ejZejZejZe edr8ejZndddZdd d Ze ed rKejZnd dZddZddZejZeejjZeejjZdS)_NormalAccessorlinkcCtd)Nz&os.link() not available on this systemNotImplementedError)r+srcdstrrrr-rbz_NormalAccessor.linksymlinkFcCr)Nz)os.symlink() not available on this systemr)r+rrtarget_is_directoryrrrr9rbz_NormalAccessor.symlinkTcCs`|rz t|dWdStyYnwtjtjB}|s"|tjO}t|||}t|dSr')rutimeOSErrorO_CREATO_WRONLYO_EXCLopenclose)r+r}modeexist_okflagsfdrrrtouch<s   z_NormalAccessor.touchreadlinkcCr)Nz*os.readlink() not available on this systemrr+r}rrrrQrbz_NormalAccessor.readlinkcC6zddl}|||jjWStytdw)Nrz*Path.owner() is unsupported on this system)pwdgetpwuidstatst_uidZpw_name ImportErrorr)r+r}rrrrownerT  z_NormalAccessor.ownercCr)Nrz*Path.group() is unsupported on this system)grpZgetgrgidrst_gidZgr_namerr)r+r}rrrrgroup[rz_NormalAccessor.groupNFrT)rDrErFrriorlistdirscandirchmodmkdirunlinkhasattrrrmdirrenamer2rrrrrgetcwd staticmethodr} expanduserrealpathrrrrrs4      rcCsP|d}|dd}|dkrt}nd|vrtdt|r t}nt}||||S)NrrA**z:Invalid pattern: '**' can only be an entire path component)_RecursiveWildcardSelector ValueErrorr%_WildcardSelector_PreciseSelector) pattern_partsflavourr$ child_partsclsrrr_make_selectorps  r lru_cachec@seZdZ ddZddZdS) _SelectorcCs2||_|rt|||_d|_dSt|_d|_dSNTF)rr successordironly_TerminatingSelector)r+rrrrrr,s    z_Selector.__init__cCs> t|}|j}|j}|jj}||stgS|||||Sr')typeis_direxists _accessorriter _select_from)r+ parent_pathZpath_clsrrrrrr select_fromsz_Selector.select_fromN)rDrErFr,rrrrrrs rc@seZdZddZdS)rccs |VdSr'r)r+rrrrrrrrs z!_TerminatingSelector._select_fromN)rDrErFrrrrrrs rc@eZdZddZddZdS)rcCs||_t|||dSr')rwrr,)r+rwrrrrrr,sz_PreciseSelector.__init__ccs`z$||j}|jr |n||r |j||||D]}|VqWdSWdSty/YdSwr')_make_child_relpathrwrrrPermissionError)r+rrrrr}rcrrrrs  z_PreciseSelector._select_fromNrDrErFr,rrrrrr rc@r)rcCs|||_t|||dSr')romatchrr,r+r$rrrrrr,s z_WildcardSelector.__init__c csz_|| }t|}Wdn1swY|D]A}|jrAz|s(WqWnty@}z t|s6WYd}~qd}~ww|j} || r]|| } |j | |||D]} | VqWqWdSt yjYdSwr') listrrrr rwrrrrr) r+rrrr scandir_itentriesentryerwr}rcrrrrs6      z_WildcardSelector._select_fromNrrrrrrrrc@s$eZdZddZddZddZdS)rcCst|||dSr')rr,rrrrr,rz#_RecursiveWildcardSelector.__init__c cs|VzY|| }t|}Wdn1swY|D];}d}z|}Wnty@}z t|s6WYd}~nd}~ww|rZ|sZ||j} || ||D]} | VqTqWdStygYdSwr) rrrr is_symlinkrrw_iterate_directoriesr) r+rrrrrrZ entry_is_dirrr}rcrrrrs2       z/_RecursiveWildcardSelector._iterate_directoriesc csz5t}z,|jj}||||D]}|||||D]}||vr(|V||qqW|WdS|wty@YdSwr')rrrraddclearr) r+rrrrZyieldedZsuccessor_selectZstarting_pointrcrrrrs"  z'_RecursiveWildcardSelector._select_fromN)rDrErFr,rrrrrrrs rc@s2eZdZ dZddZddZddZdd Zd S) _PathParents)_pathcls_drv_root_partscCs&t||_|j|_|j|_|j|_dSr')rrrrrrrrrr,s  z_PathParents.__init__cCs$|js|jr t|jdSt|jSr@)rrrWrr*rrr__len__s  z_PathParents.__len__cst|trtfddt|tDS|tks$|t kr(t||dkr2|t7}jj j j d| dS)Nc3s|]}|VqdSr'r)rMir*rr sz+_PathParents.__getitem__..rrA) isinstanceslicetuplerangeindicesrW IndexErrorr_from_parsed_partsrrr)r+idxrr*r __getitem__ s $ z_PathParents.__getitem__cCsd|jjS)Nz <{}.parents>)formatrrDr*rrr__repr__r-z_PathParents.__repr__N)rDrErF __slots__r,rrrrrrrrs rc@seZdZ dZddZddZeddZedd Zed d Z ed d Z ddZ ddZ ddZ ddZddZddZddZeddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zeed,d-d.Zeed/d0d.Zed1d2Zed3d4Zed5d6Z ed7d8Z!ed9d:Z"d;d<Z#d=d>Z$d?d@Z%dAdBZ&dCdDZ'edEdFZ(dGdHZ)dIdJZ*dKdLZ+edMdNZ,edOdPZ-dQdRZ.dSdTZ/dUdVZ0dWS)Xr)rrr_str_hash_pparts_cached_cpartscGs& |turtjdkr tnt}||S)NrJ)rrrwrr _from_parts)rargsrrr__new__*s zPurePath.__new__cCs|jt|jfSr') __class__rrr*rrr __reduce__4szPurePath.__reduce__cCsbg}|D]&}t|tr||j7}qt|}t|tr#|t|qtdt||j |S)NzNargument should be a str object or an os.PathLike object returning str, not %r) rrrrfspathstrr5 TypeErrorr_flavourr?)rrr9arrr _parse_args9s     zPurePath._parse_argscCs0t|}||\}}}||_||_||_|Sr')objectrr rrr)rrr+r:r;r9rrrrMs zPurePath._from_partscCs t|}||_||_||_|Sr')r rrrr)rr:r;r9r+rrrrXs zPurePath._from_parsed_partscCs0|s|r|||j|ddS|j|Sr@)rr))rr:r;r9rrr_format_parsed_parts`s zPurePath._format_parsed_partscCs@||\}}}|j|j|j|j|||\}}}||||Sr')r rrCrrrr)r+rr:r;r9rrr _make_childgs  zPurePath._make_childcCs> z|jWSty||j|j|jpd|_|jYSw)Nr/)rAttributeErrorr rrrr*rrr__str__ms   zPurePath.__str__cCst|Sr')rr*rrr __fspath__wrbzPurePath.__fspath__cCs |j}t||jdS)NrI)rrr2r(r+frrrrzzszPurePath.as_posixcCs t|Sr')rfsencoder*rrr __bytes__s zPurePath.__bytes__cCsd|jj|S)Nz{}({!r}))rrrDrzr*rrrrszPurePath.__repr__cCs |s td|j|S)Nz.relative path can't be expressed as a file URI) is_absoluterrrr*rrras_uris zPurePath.as_uricCs2z|jWSty|j|j|_|jYSwr')rrrrfrr*rrr_cpartss   zPurePath._cpartscCs&t|tstS|j|jko|j|juSr')rrNotImplementedrrr+otherrrr__eq__s zPurePath.__eq__cCs2z|jWStytt|j|_|jYSwr')rrhashrrr*rrr__hash__s   zPurePath.__hash__cCs&t|tr |j|jur tS|j|jkSr'rrrrrrrrr__lt__ zPurePath.__lt__cCs&t|tr |j|jur tS|j|jkSr'rrrrr__le__r zPurePath.__le__cCs&t|tr |j|jur tS|j|jkSr'rrrrr__gt__r zPurePath.__gt__cCs&t|tr |j|jur tS|j|jkSr'rrrrr__ge__r zPurePath.__ge__cC|Sr'r)rrrrr__class_getitem__rzPurePath.__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+anchorrrrr's zPurePath.anchorcCs0 |j}t||js |jrdndkrdS|dS)NrArr.rS)rrWrrrerrrrws z PurePath.namecCsD |j}|d}d|krt|dkr ndS||dSdS)Nr/rrAr.rwrfindrWr+rwrrrrsuffixs  zPurePath.suffixcCs< |j}|dr gS|d}dd|dddDS)Nr/cSsg|]}d|qS)r/r)rMr+rrrrdrPz%PurePath.suffixes..rA)rwendswithrYr4r+rwrrrsuffixess   zPurePath.suffixescCsD |j}|d}d|krt|dkr n|S|d|S|S)Nr/rrAr(r*rrrstems  z PurePath.stemcCs |js td|f|j|f\}}}|r-|d|jj|jjfvs-|s-|s-t|dkr3td|||j|j |j dd|gS)N%r has an empty namerSrAzInvalid name %r) rwrrr?r(r0rWrrrr)r+rwr:r;r9rrr with_names   zPurePath.with_namecCs |||jSr')r1r+)r+r/rrr with_stemszPurePath.with_stemcCs |j}|j|vs|jr|j|vrtd|f|r|dr#|dkr)td||j}|s5td|f|j}|s?||}n |dt| |}||j |j |j dd|gS)NzInvalid suffix %rr/r0rS) rr(r0rrqrwr+rWrrrr)r+r+rrwZ old_suffixrrr with_suffixs    zPurePath.with_suffixc Gs |std|j}|j}|j}|r||g|dd}n|}||\}}}|r4||g|dd} n|} t| } |jj} | dkrG|sF|rfn | |d| | | krf||||} t d t |t | | d| dkro|nd|| dS)Nzneed at least one argumentrArzU{!r} is not in the subpath of {!r} OR one path is relative and the other is absolute.r.) rrrrr rWrrfr rrrr) r+rr9r:r;Z abs_partsZto_drvZto_rootZto_partsZ to_abs_partsncfZ formattedrrr relative_tos2 zPurePath.relative_tocGs( z|j|WdStyYdSwr)r6rrrrris_relative_to8s  zPurePath.is_relative_tocCs0 z|jWStyt|j|_|jYSwr')rrrrr*rrrr9As   zPurePath.partscGs ||Sr')r )r+rrrrjoinpathMs zPurePath.joinpathcCs&z||fWStytYSwr')r rrr+keyrrr __truediv__Us  zPurePath.__truediv__cCs,z ||g|jWStytYSwr')rrrrr9rrr __rtruediv__[s  zPurePath.__rtruediv__cCsB |j}|j}|j}t|dkr|s|r|S||||ddS)NrArS)rrrrWr)r+r:r;r9rrrparentaszPurePath.parentcCs t|Sr')rr*rrrparentskszPurePath.parentscCs |jsdS|jj pt|jSr)rrrboolrr*rrrrpszPurePath.is_absolutecCs |j|jSr')rrxrr*rrrrxwszPurePath.is_reservedc Cs |jj}||}|j|f\}}}|std|r$|||jkr$dS|r/|||jkr/dS|j}|s6|rGt|t|kr@dS|dd}n t|t|krQdStt |t |D] \}}t ||sgdSqZdS)Nz empty patternFrAT) rrBr?rrrrrWzipr1riZ fnmatchcase) r+Z path_patternr5r:r;Z pat_partsr9r=r$rrrr|s, zPurePath.matchN)1rDrErFrrr classmethodr rrr r rrrzrrrpropertyrrrrr!r"r#r%rryr;r'rwr+r.r/r1r2r3r6r7r9r8r;r<r=r>rrxrrrrrrs|              !     rc@eZdZ eZdZdS)rrN)rDrErF_posix_flavourrrrrrrrrc@rC)rrN)rDrErF_windows_flavourrrrrrrrrErc@seZdZ eZdZddZddZddZdd Z e d d Z e d d Z ddZ ddZddZddZddZd`ddZddddZdd Zd!d"Z % %dad&d'Zd(d)Zdbd*d+Zd,d-Zdcd.d/Zd0d1Zddd3d4Zded6d7Zddd8d9Zd:d;Zd`dd?Z!d@dAZ"dBdCZ#dDdEZ$d`dFdGZ%dHdIZ&dJdKZ'dLdMZ(dNdOZ)dPdQZ*dRdSZ+dTdUZ,dVdWZ-dXdYZ.dZd[Z/d\d]Z0d^d_Z1d%S)frrcOs@|tur tjdkr tnt}||}|jjstd|j f|S)NrJz$cannot instantiate %r on your system) rrrwrrrrrrrD)rrkwargsr+rrrrs z Path.__new__cCs|j|g}||j|j|Sr')rrrr)r+r=r9rrrrs zPath._make_child_relpathcCr$r'rr*rrr __enter__rzPath.__enter__cCsdSr'r)r+tvtbrrr__exit__s z Path.__exit__cCs ||jSr')rrrrrrcwdszPath.cwdcCs |dS)N~)rrMrrrhomes z Path.homecCsD |}z|}Wnty|j|}Ynwtj||Sr')rrrrr}samestat)r+Z other_pathstZother_strrrsamefiles  z Path.samefileccs0 |j|D] }|dvrq||VqdS)N>r/z..)rrrr-rrriterdirsz Path.iterdirccsr td|||std||j|f\}}}|s |r$tdtt||j}| |D]}|Vq1dS)Nzpathlib.Path.globzUnacceptable pattern: {!r}%Non-relative patterns are unsupported) r6auditrrrr?rrrrr+rnr:r;rZselectorrcrrrglobsz Path.globccsd td|||j|f\}}}|s|rtdtdt||j}||D]}|Vq*dS)Nzpathlib.Path.rglobrU)r)r6rVrr?rrrrrWrrrrglob sz Path.rglobcCs& |r|S||jg|jSr')rrrrrr*rrrabsolutesz Path.absoluteFc Cs dd}z |jj||d}Wnty }z||d}~ww||f}|sHz|W|StyG}z ||WYd}~|Sd}~ww|S)NcSs0t|dd}|jtks|tkrtd|jdS)NrrzSymlink loop from %r)rrr_WINERROR_CANT_RESOLVE_FILENAME RuntimeErrorfilename)rrrrr check_eloop/s z!Path.resolve..check_eloop)strict)rrrrr)r+r_r^rarrcrrrresolve(s(  z Path.resolveTfollow_symlinkscCs |jj||dSNra)rr)r+rbrrrrDsz Path.statcC |j|Sr')rrr*rrrrK z Path.ownercCrdr')rrr*rrrrQrez Path.grouprrSNcCs* d|vr t|}|j||||||S)Nb)r text_encodingrr)r+r bufferingencodingerrorsnewlinerrrrWs  z Path.opencCs: |jdd }|WdS1swYdS)Nrbr)rreadrrrr read_bytesbs$zPath.read_bytescCsH t|}|jd||d }|WdS1swYdS)Nrf)rrjrk)rrhrro)r+rjrkrrrr read_textis  $zPath.read_textcCsD t|}|jdd }||WdS1swYdS)Nwbrn) memoryviewrwrite)r+dataZviewrrrr write_bytesqs $zPath.write_bytescCsf t|tstd|jjt|}|jd|||d }||WdS1s,wYdS)Nzdata must be str, not %sw)rrjrkrl) rrrrrDrrhrrt)r+rurjrkrlrrrr write_textzs  $zPath.write_textcCs |j|}||fSr')rrrrrrrrs  z Path.readlinkrcCs |j|||dSr')rr)r+rrrrrrsz Path.touchcCs| z |j||WdSty-|r|j|kr|jjddd|j|d|dYdSty=|r9|s:YdSw)NT)r>rF)rrFileNotFoundErrorr=rr)r+rr>rrrrrs   z Path.mkdircCs |jj|||ddSrc)rr)r+rrbrrrrsz Path.chmodcCs |j|dddSNFra)r)r+rrrrlchmodsz Path.lchmodcCs0 z |j|WdSty|sYdSwr')rrrz)r+Z missing_okrrrrs z Path.unlinkcCs |j|dSr')rrr*rrrrsz Path.rmdircCs |jddSr{)rr*rrrlstats z Path.lstatcC |j||||Sr')rrrr+targetrrrr z Path.renamecCr~r')rr2rrrrrr2rz Path.replacecCs |j|||dSr')rr)r+rrrrr symlink_toszPath.symlink_tocCs |j||dSr')rrrrrr hardlink_toszPath.hardlink_tocCs$ tjdtdd|j||dS)Nzypathlib.Path.link_to() is deprecated and is scheduled for removal in Python 3.12. Use pathlib.Path.hardlink_to() instead.rQ) stacklevel)warningswarnDeprecationWarningrrrrrrlink_tos  z Path.link_toc CsT z|WdSty }z t|sWYd}~dSd}~wty)YdSwNFT)rrr rr+rrrrrs  z Path.existsc CV zt|jWSty!}z t|sWYd}~dSd}~wty*YdSwr)r rst_moderr rrrrrr z Path.is_dirc Crr)r rrrr rrrrris_file$s z Path.is_filecCsp |r |s dSz|jj}Wn tyYdSw|j}||kr)dS|j}|jj}||kSr)rrr=rst_devrst_ino)r+Z parent_devZdevZinoZ parent_inorrris_mount5s    z Path.is_mountc Crr)r r}rrr rrrrrrIs zPath.is_symlinkc Crr)r rrrr rrrrris_block_deviceXrzPath.is_block_devicec Crr)rrrrr rrrrris_char_devicehrzPath.is_char_devicec Crr)rrrrr rrrrris_fifoxrz Path.is_fifoc Crr)r rrrr rrrrr is_socketrzPath.is_socketcCsr |js7|js7|jr7|jddddkr7|j|jd}|dddkr*td||g|jddS|S)NrrArOz#Could not determine home directory.)rrrrrr\r)r+Zhomedirrrrrs zPath.expanduserr)rfrSNNN)NN)NNNr)ryFF)2rDrErF_normal_accessorrrrrrHrLrArNrPrSrTrXrYrZr`rrrrrprqrvrxrrrrr|rrr}rr2rrrrrrrrrrrrrrrrrrsf               rc@seZdZ dZdS)rrN)rDrErFrrrrrrsrc@seZdZ dZddZdS)rrcCr)Nz-Path.is_mount() is unsupported on this systemrr*rrrrrbzWindowsPath.is_mountN)rDrErFrrrrrrrs r)@ri functoolsrrrrrgr6r_collections_abcrrrrrrroperatorrrr r r r r rrZ urllib.parserr{__all__Z_WINERROR_NOT_READYZ_WINERROR_INVALID_NAMEr[rrr r%r r&rGrrFrDrrrrrrrrrrrrrPathLikeregisterrrrrrrrrrsl  $   ?w*O ,! }  x