f2ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z m Z mZmZddlmZddlmZmZmZmZmZmZmZddlmZgdZdZd Zd Z e e eefZ!eee fZ"d Z#d Z$Gd de%Z&Gdde&Z'Gdde&Z(e'Z)e(Z*dZ+e,edrej-e+Z+GddZ.GddZ/Gdde.Z0Gdde.Z1Gdde.Z2Gdd e Z3Gd!d"e%Z4ej56e4Gd#d$e4Z7Gd%d&e4Z8Gd'd(e4Z9Gd)d*e9e7Z:Gd+d,e9e8Z;dS)-N)Sequence)ENOENTENOTDIREBADFELOOP) attrgetter)S_ISDIRS_ISLNKS_ISREGS_ISSOCKS_ISBLKS_ISCHRS_ISFIFO)quote_from_bytes)PurePath PurePosixPathPureWindowsPathPath PosixPath WindowsPath{icbt|ddtvpt|ddtvS)Nerrnowinerror)getattr_IGNORED_ERRNOS_IGNORED_WINERRORS) exceptions ./opt/alt/python311/lib64/python3.11/pathlib.py _ignore_errorr!&s7 Iw - - @ G Iz4 0 04F FHcd|vpd|vpd|vS)N*?[)pats r _is_wildcard_patternr)+s  #: 1 1scz1r"c"eZdZ dZdZdZdS)_Flavourc(|jj|_dSN)sepjoinselfs r __init__z_Flavour.__init__5sHM r"cg}|j}|j}dx}}t|}|D]}|s|r|||}||\}}} || vrUt| |D]1} | r-| dkr'|tj| 2n/| r-| dkr'|tj| |s|rC|s?|D]<}|s|r|||}||d}|rn=n|s|r|||z| |||fS)N.r) r.altsepreversedreplace splitrootsplitappendsysinternreverse) r1partsparsedr.r6drvrootitpartrelxs r parse_partsz_Flavour.parse_parts8shd e__  D  1||FC00!^^D11NCsczz!#))C..1155A5Q#XX cjmm444533#::MM#*S//222 d  "!#""#%$!=#'<<#<#C >EC%K=6!"":#===  -s{{dmmD11T]]35G5GGGD%&*"444H efn, ,UF""r"N)__name__ __module__ __qualname__r2rGrOr'r"r r+r+1sG"""$!$!$!L#####r"r+ceZdZdZdZdZeZej dkZ e dZ dZ hddd Dzd d DzZefd Zd Zd ZdZe fdZdZdZdS)_WindowsFlavour\/Tnt4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZz\\?\>CONIN$CONOUT$AUXCONNULPRNch|]}d|zS)zCOM%sr'.0cs r z_WindowsFlavour.6661666r"u123456789¹²³ch|]}d|zS)zLPT%sr'r`s r rcz_WindowsFlavour.rdr"c|dd}|dd}||kr3||kr-||\}}|dd}|dd}nd}|dd}||kr||kr||kr||d}|dkrl|||dz}||dzkrJ|dkrt|}|r||d|z|||dzdfS|d||||dzdfSdx} } |dkr||jvr|dd} |dd}|}||kr|} ||}|| z| |fS)NrrJr4:)_split_extended_pathfindlen drive_letterslstrip) r1rDr.firstsecondprefixthirdindexindex2rArBs r r9z_WindowsFlavour.splitrootsQqS ac cMMesll 44T::LFD1IE!A#YFFFQqS  cMMesllu|| IIc1%%E{{3 22UQY&&||!$TC%QvX6T&())_LL#GVG}c4q ?BBd S==Ud&888rr(C8DE C<<D;;s##D|T4''r"c*|Sr-lowerr1ss r rKz_WindowsFlavour.casefoldswwyyr"cd|DS)Nc6g|]}|Sr'rw)raps r z2_WindowsFlavour.casefold_parts..s )))a )))r"r'r1r?s r casefold_partsz_WindowsFlavour.casefold_partss))5))))r"cntjtj|tjjSr-)recompilefnmatch translate IGNORECASE fullmatchr1patterns r compile_patternz_WindowsFlavour.compile_patterns$z'+G44bmDDNNr"cd}||rC|dd}|dd}|dr||ddz }d|ddz}||fS)Nr4zUNC\rhrU) startswith)r1rz ext_prefixrrs r rkz$_WindowsFlavour._split_extended_pathsu << # # !rrUF!""A||G$$ !!BQB%1QRR5Lqyr"c|sdS|ddrdS|dddddd}||jvS)NFrz\\rir5rj )r partitionrstripupperreserved_names)r1r?names r is_reservedz_WindowsFlavour.is_reserveds  5 8  v & & 5Ry""3''*44S99!<CCCHHzz||t222r"cj|j}t|dkrc|ddkrW|ddd}d|dt |dSdt |dzS)NrgrJrjrVzfile:///zutf-8zfile:)drivermas_posixrourlquote_from_bytesencode)r1pathrrests r make_uriz_WindowsFlavour.make_uris  u::??uQx3==??122&--c22DD*4;;w+?+?@@@B B01G1G1P1PQQQ Qr"N)rPrQrRr.r6has_drvntpathpathmodosr is_supportedsetrnext_namespace_prefixrr9rKrrrkrrr'r"r rTrTps C FGGGtOLCNOOM$ :99665666 7665666 7*#&%(%(%(%(N***OOO2F 3 3 3 R R R R Rr"rTc\eZdZdZdZdZeZej dkZ efdZ dZ dZ dZd Zd Zd S) _PosixFlavourrVr4FrWc|rQ|d|krE||}t|t|z dkrd|dz|fSd||fSdd|fS)Nrrgr4)rorm)r1rDr. stripped_parts r r9z_PosixFlavour.splitrootsq  DGsNN KK,,M 4yy3}---2237M113 --r4< r"c|Sr-r'rys r rKz_PosixFlavour.casefoldsr"c|Sr-r'rs r rz_PosixFlavour.casefold_partss r"cXtjtj|jSr-)rrrrrrs r rz_PosixFlavour.compile_patterns z'+G4455??r"cdSNFr'rs r rz_PosixFlavour.is_reservedsur"cDt|}dt|zS)Nzfile://)bytesr)r1rbpaths r rz_PosixFlavour.make_uri s#d .u5555r"N)rPrQrRr.r6r posixpathrrrrr9rKrrrrr'r"r rrs C FGGGtOL"%     @@@66666r"rc|d}|dd}|stS|dkrt}n1d|vrtdt|rt}nt }||||S)NrrJ**z:Invalid pattern: '**' can only be an entire path component)_TerminatingSelector_RecursiveWildcardSelector ValueErrorr)_WildcardSelector_PreciseSelector) pattern_partsflavourr( child_partsclss r _make_selectorrs  C#K &#%%% d{{( UVVV c " " 3sK ) ))r" lru_cacheceZdZ dZdZdS) _Selectorc||_|rt|||_d|_dSt |_d|_dSNTF)rr successordironlyr)r1rrs r r2z_Selector.__init__0sF&  !+KAADNDLLL133DN DLLLr"c t|}|j}|j}|j}||st gS|||||Sr-)typeis_direxists_scandiriter _select_from)r1 parent_pathpath_clsrrscandirs r select_fromz_Selector.select_from9sa ; $$#vk"" 88O  ffgFFFr"N)rPrQrRr2rr'r"r rr,s<!!! G G G G Gr"rceZdZdZdS)rc#K|VdSr-r')r1rrrrs r rz!_TerminatingSelector._select_fromGsr"N)rPrQrRrr'r"r rrEs#r"rceZdZdZdZdS)rcL||_t|||dSr-)rrr2)r1rrrs r r2z_PreciseSelector.__init__Ms' 4g66666r"c#K ||j}|jr|n||r$|j||||D]}|VdSdS#t $rYdSwxYwr-)_make_child_relpathrrrrPermissionError)r1rrrrrr}s r rz_PreciseSelector._select_fromQs 2249==D2$,2FD99 44T667SSAGGGG      FF sAA A('A(NrPrQrRr2rr'r"r rrKs2777r"rceZdZdZdZdS)rcr|||_t|||dSr-)rmatchrr2r1r(rrs r r2z_WildcardSelector.__init__]s5,,S11 4g66666r"c#K ||5}t|}dddn #1swxYwY|D]}|jr> |sn'#t$r}t |sYd}~?d}~wwxYw|j} || r9|| } |j | |||D]} | VdS#t$rYdSwxYwr-) listrrOSErrorr!rrrrrr) r1rrrr scandir_itentriesentryerrr}s r rz_WildcardSelector._select_fromas~ %% +z** + + + + + + + + + + + + + + +   < ! ! %||~~%$%"!!!,Q//"! !z::d## &::4@@D!^88vvwWW  !  "    FF sW C+ C/C/CAC A<"A72C7A<t|||dSr-)rr2rs r r2z#_RecursiveWildcardSelector.__init__|s 4g66666r"c#K|V ||5}t|}dddn #1swxYwY|D]}}d} |d}n'#t$r}t|sYd}~nd}~wwxYw|r8||j} || ||D]} | V~dS#t$rYdSwxYwNFfollow_symlinks)rrrr!rr_iterate_directoriesr) r1rrrrrr entry_is_dirrrr}s r rz/_RecursiveWildcardSelector._iterate_directoriessy %% +z** + + + + + + + + + + + + + + + $ #(<<<#F#FLL(++  &::5:FFD!66tVWMM       FF sV B</ B<3B<3 B<AB< A<"A72B<7A<<>B<< C  C c#PK t} |jj}||||D]0}|||||D]}||vr|V|| 1 |dS#|wxYw#t $rYdSwxYwr-)rrrraddclearr) r1rrrryieldedsuccessor_selectstarting_pointr}s r rz'_RecursiveWildcardSelector._select_froms eeG #'>#> &*&?&? VU\&]&]++N--nffgVV++G++"#GGG#KKNNN++       FF s)BAA>(B>BB B%$B%N)rPrQrRr2rrr'r"r rrzsA777&     r"rc,eZdZ dZdZdZdZdZdS) _PathParents)_pathcls_drv_root_partscvt||_|j|_|j|_|j|_dSr-)rrrrr)r1rs r r2z_PathParents.__init__s.T  I Z k r"ct|js|jrt|jdz St|jSrI)rrrmrr0s r __len__z_PathParents.__len__s: 9 $  $t{##a' 't{## #r"c t|trBtfdt|t DS|t ks|t  krt ||dkr|t z }jj j j d| dz S)Nc3(K|] }|V dSr-r')rair1s r z+_PathParents.__getitem__..s'IIQaIIIIIIr"rrJ) isinstanceslicetuplerangeindicesrm IndexErrorr_from_parsed_partsrrr)r1idxs` r __getitem__z_PathParents.__getitem__s c5 ! ! JIIII%SYY1G1G*HIIIII I #d))  sc$iiZ//S// ! 77 3t99 C}// 4:04 IcTAXI0FHH Hr"c@d|jjS)Nz <{}.parents>)formatrrPr0s r __repr__z_PathParents.__repr__s$$T]%;<<A  A c t|Sr-)rr0s r __fspath__zPurePath.__fspath__"s4yyr"cb |j}t||jdS)NrV)rrr8r.r1fs r rzPurePath.as_posix%s,  M4yy  ,,,r"c, tj|Sr-)rfsencoder0s r __bytes__zPurePath.__bytes__+s *{4   r"cfd|jj|S)Nz{}({!r}))r rrPrr0s r r zPurePath.__repr__0s%  !8$--//JJJr"c~ |std|j|S)Nz.relative path can't be expressed as a file URI) is_absoluterrrr0s r as_urizPurePath.as_uri3s?.!! OMNN N}%%d+++r"c |jS#t$r.|j|j|_|jcYSwxYwr-)rr'rrrr0s r _cpartszPurePath._cparts9sT '& & ' ' '"&-">">t{"K"KD & & & & 's 5AAcvt|tstS|j|jko |j|juSr-)rrNotImplementedr6rr1others r __eq__zPurePath.__eq__Bs7%** "! !|u},P%.1PPr"c |jS#t$r0tt|j|_|jcYSwxYwr-)rr'hashrr6r0s r __hash__zPurePath.__hash__GsQ :    eDL1122DJ:    s 7AAcvt|tr|j|jurtS|j|jkSr-rrrr8r6r9s r __lt__zPurePath.__lt__N7%** "dm5>.Q.Q! !|em++r"cvt|tr|j|jurtS|j|jkSr-r@r9s r __le__zPurePath.__le__S7%** "dm5>.Q.Q! !|u},,r"cvt|tr|j|jurtS|j|jkSr-r@r9s r __gt__zPurePath.__gt__XrBr"cvt|tr|j|jurtS|j|jkSr-r@r9s r __ge__zPurePath.__ge__]rEr"rz.The drive prefix (letter or UNC path), if any.)docrzThe root of the path, if any.c& |j|jz}|Sr-)rr)r1anchors r rLzPurePath.anchorhs=TZ' r"cl |j}t||js|jrdndkrdS|dS)NrJrr4ri)rrmrrrs r rz PurePath.namens>/  u:: ?TZ?!!a @ @2Ryr"c |j}|d}d|cxkrt|dz kr nn ||dSdS)Nr5rrJr4rrfindrmr1rrs r suffixzPurePath.suffixvs] y JJsOO q 3t99q= 8O2r"c |j}|drgS|d}d|dddDS)Nr5cg|]}d|zS)r5r')rarRs r r~z%PurePath.suffixes..s???f ???r"rJ)rendswithror:r1rs r suffixeszPurePath.suffixessa y ==   I{{3??4::c??122+>????r"c |j}|d}d|cxkrt|dz kr nn |d|S|S)Nr5rrJrOrQs r stemz PurePath.stemsY>y JJsOO q 3t99q= 8OKr"cn |jst|d|j|f\}}}|r7|d|jj|jjfvs|s|st |dkrtd|z||j|j |j dd|gzS)N has an empty namerirJzInvalid name %r) rrrrGr.r6rmrrrr)r1rrArBr?s r with_namezPurePath.with_names;y ?ttt=>> >=44dW==T5 9RT]%6 8L$MMMNN!%jjAoo.$788 8&&ty$*'+{3B3'74&'@BB Br"c> |||jzSr-)r\rR)r1rYs r with_stemzPurePath.with_stems6~~dT[0111r"c |j}|j|vs|jr|j|vrtd||r|dr|dkrtd|z|j}|st|d|j}|s||z}n|dt| |z}||j |j |j dd|gzS)NzInvalid suffix r5zInvalid suffix %rr[ri) rr.r6rrrrRrmrrrr)r1rRr-r old_suffixs r with_suffixzPurePath.with_suffixs  M 5F??ah?18v+=+=*FF<== =  =&++C00 =FcMM0F;<< <y ?ttt=>> >[  4&=DD)#j//))*V3D&&ty$*'+{3B3'74&'@BB Br"cT |std|j}|j}|j}|r||g|ddz}n|}||\}}}|r||g|ddz} n|} t | } |jj} | dkr|s|run | |d| | | krT||||} td t|t| | d| dkr|nd|| dS)Nzneed at least one argumentrJrzU{!r} is not in the subpath of {!r} OR one path is relative and the other is absolute.r4) rrrrrrmrrr#rr rr) r1r:r?rArB abs_partsto_drvto_rootto_parts to_abs_partsncf formatteds r relative_tozPurePath.relative_tosk  :899 9 iz  d eABBi/III$($4$4U$;$;!  $"G,x|;LL#L    ] )FFDFCF9RaR=(9(9RR =M=M(M(M11&'8LLIJ$fSYYI??AA A&&r16644r'0}66 6r"c@ |j|dS#t$rYdSwxYwr)rkrr9s r is_relative_tozPurePath.is_relative_tosC   D e $ $4   55 s  ct |jS#t$r#t|j|_|jcYSwxYwr-)rr'rrr0s r r?zPurePath.partssN . <     --DL<    s  *77c. ||Sr-)r%)r1rs r joinpathzPurePath.joinpaths %%%r"c^ ||fS#t$r tcYSwxYwr-)r%rr8r1keys r __truediv__zPurePath.__truediv__sD "##SF++ + " " "! ! ! ! "s ,,cn ||g|jzS#t$r tcYSwxYwr-)rrrr8rrs r __rtruediv__zPurePath.__rtruediv__sK "##SEDK$788 8 " " "! ! ! ! "s  44c |j}|j}|j}t|dkr|s|r|S||||ddS)NrJri)rrrrmr)r1rArBr?s r parentzPurePath.parent sV-iz  u::???t?K&&sD%*===r"c" t|Sr-)rr0s r parentszPurePath.parentss8D!!!r"cX |jsdS|jj pt|jSr)rrrboolrr0s r r3zPurePath.is_absolutes1 z 5=((;DOO;r"cB |j|jSr-)rrrr0s r rzPurePath.is_reserveds "}((555r"c: |jj}||}|j|f\}}}|std|r|||jkrdS|r|||jkrdS|j}|s|r-t|t|krdS|dd}n"t|t|krdStt|t|D]\}}tj ||sdSdS)Nz empty patternFrJT) rrKrGrrrr6rmzipr7r fnmatchcase) r1 path_patternrirArB pat_partsr?rDr(s r rzPurePath.match$sF ] #r,'' #}88,IIT9 ._-- -  3""TY--''5  DBBtzNN**5   $ 9~~U++u!!"" II ^^c%jj ( (5Xe__hy.A.ABB  ID#&tS11 uu tr"N)0rPrQrRr rr classmethodrrrr#r%r(r*rr0r r4propertyr6r;r>rArDrGrIrrrBrLrrRrWrYr\r^rarkrmr?rprtrvrxrzr3rrr'r"r rrsfI %%%444 //[/&[[,,[, 999 --- !!! KKK,,, ''X'QQQ ,,, --- ,,, --- HZZ''M O O OE 8JJw''; = = =DX X  X  @ @X @X B B B222BBB*666B   X  &&&""" """ >>X>""X"<<<666 r"rceZdZ eZdZdS)rr'N)rPrQrR_posix_flavourrr r'r"r rrBs HIIIr"rceZdZ eZdZdS)rr'N)rPrQrR_windows_flavourrr r'r"r rrLs  HIIIr"rc\eZdZ dZdZdZdZdZedZ edZ dZ d Z d Z d Zd Zd Zd6dZdddZdZdZ d7dZdZd8dZdZd9dZdZd:dZd;d!Zddd"Zd#Zd6d$Zd%Z d&Z!d'Z"d(Z#d6d)Z$d*Z%d+Z&d,Z'd-Z(d.Z)d/Z*d0Z+d1Z,d2Z-d3Z.d4Z/d5Z0dS)tjdtd|S)Nz}pathlib.Path.__enter__() is deprecated and scheduled for removal in Python 3.13; Path objects as a context manager is a no-oprg stacklevel)warningswarnDeprecationWarningr0s r __enter__zPath.__enter__ss0  +)Q 8 8 8 8 r"cdSr-r')r1tvtbs r __exit__z Path.__exit__s r"c< |tjSr-)rgetcwdrs r cwdzPath.cwds s29;;r"c> |dS)N~) expanduserrs r homez Path.homes# s3xx""$$$r"c |} |}n7#t$r*||}YnwxYwtj||Sr-)statr'rrrsamestat)r1 other_pathstother_sts r samefilez Path.samefiles YY[[ 9!((HH 9 9 9~~j116688HHH 9wH---s,1A A c#hK tj|D]}||VdSr-)rlistdirrrVs r iterdirz Path.iterdirsM Jt$$ 1 1D**400 0 0 0 0 1 1r"c*tj|Sr-)rrr0s r rz Path._scandirsz$r"c#K tjd|||s"td||j|f\}}}|s|rt d|d|jj|jjfvr| dtt||j}| |D]}|VdS)Nzpathlib.Path.globzUnacceptable pattern: {!r}%Non-relative patterns are unsupportedrir4) r<auditrr rrGrr.r6r;rrrr1rrArBrselectorr}s r globz Path.globs  %tW555 K9@@IIJJ J#'=#<#.check_eloopsJq*a00Hw%8/N#N#N"#9AJ#FGGG$O#Nr")strict)rrrealpathrrr)r1rrrzrr}s r resolvez Path.resolves  H H H    f 55AA    KNNN     aT " "      A s*!( A >AA44 B> BBTrc0 tj||SNr)rr)r1rs r rz Path.stats wt_====r"c ddl}||jjS#t $rt dwxYw)Nrz*Path.owner() is unsupported on this system)pwdgetpwuidrst_uidpw_name ImportErrorr)r1rs r ownerz Path.ownersd  T JJJ<< 233; ; T T T%&RSS S T 48Ac ddl}||jjS#t $rt dwxYw)Nrz*Path.group() is unsupported on this system)grpgetgrgidrst_gidgr_namerr)r1rs r groupz Path.groupsd  T JJJ<< 233; ; T T T%&RSS S TrrriNcf d|vrtj|}tj||||||S)Nb)io text_encodingopen)r1mode bufferingencodingerrorsnewlines r rz Path.open s<  d??'11HwtT9hHHHr"c |d5}|cdddS#1swxYwYdS)Nrbr)rreadr,s r read_byteszPath.read_bytess YYDY ! ! Q6688                  s 9==c tj|}|d||5}|cdddS#1swxYwYdS)Nr)rrr)rrrr)r1rrr-s r read_textzPath.read_texts #H-- YYC(6Y B B a6688                  sAAAc t|}|d5}||cdddS#1swxYwYdS)Nwbr) memoryviewrwrite)r1dataviewr-s r write_byteszPath.write_bytes%s $ YYDY ! ! !Q774== ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !sA  A A c t|tstd|jjzt j|}|d|||5}||cdddS#1swxYwYdS)Nzdata must be str, not %sw)rrrr) rrrrrPrrrr)r1rrrrr-s r write_textzPath.write_text.s $$$ 56 N3455 5#H-- YYC(67Y S S !WX774== ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s BB Bc ttdstd|tj|fS)Nreadlinkz*os.readlink() not available on this system)hasattrrrrrr0s r rz Path.readlink9sL r:&& T%&RSS ST!2!2 4555r"c |r( tj|ddS#t$rYnwxYwtjtjz}|s|tjz}tj|||}tj|dSr-)rutimerO_CREATO_WRONLYO_EXCLrclose)r1rexist_okflagsfds r touchz Path.touchAs    t$$$        R[(  RY E WT5$ ' '  s  ))c  tj||dS#t$rF|r |j|kr|jdd||d|YdSt$r|r|sYdSwxYw)NT)rzrF)rmkdirFileNotFoundErrorrxrr)r1rrzrs r rz Path.mkdirWs   HT4   ? ? ? dkT11 K  dT  : : : JJtUXJ > > > > > >    4;;==     sA B ) B  B c6 tj|||dSr)rchmod)r1rrs r rz Path.chmodhs&  t_======r"c6 ||ddSr)r)r1rs r lchmodz Path.lchmodns%  4 /////r"cZ tj|dS#t$r|sYdSwxYwr-)runlinkr)r1 missing_oks r rz Path.unlinkusR   IdOOOOO         s  **c0 tj|dSr-)rrmdirr0s r rz Path.rmdirs  r"c0 |dSr)rr0s r lstatz Path.lstats yyy///r"cX tj||||Sr-)rrenamerr1targets r r z Path.renames-  $~~f%%%r"cX tj||||Sr-)rr8rr s r r8z Path.replaces-  4   ~~f%%%r"c| ttdstdtj|||dS)Nsymlinkz)os.symlink() not available on this system)rrrr)r1r target_is_directorys r symlink_tozPath.symlink_tosF r9%% S%&QRR R 64!455555r"cz ttdstdtj||dS)Nlinkz&os.link() not available on this system)rrrrr s r hardlink_tozPath.hardlink_tosC r6"" P%&NOO O r"c tjdtd|||dS)Nzypathlib.Path.link_to() is deprecated and is scheduled for removal in Python 3.12. Use pathlib.Path.hardlink_to() instead.rgr)rrrrrr s r link_toz Path.link_tosW   @)Q 8 8 8 8 v**400000r"c |n4#t$r}t|sYd}~dSd}~wt$rYdSwxYwdSNFT)rrr!rr1rs r rz Path.existssz   IIKKKK    ## 55555   55 ts A 8 A A c t|jS#t$r}t |sYd}~dSd}~wt $rYdSwxYwr)r rst_moderr!rrs r rz Path.is_dir  499;;.// /    ## 55555   55 %) AA  AAc t|jS#t$r}t |sYd}~dSd}~wt $rYdSwxYwr)r rrrr!rrs r is_filez Path.is_files  499;;.// /    ## 55555   55 rcv |r|sdS |jj}n#t $rYdSwxYw|j}||krdS|j}|jj}||kSr)rrrxrst_devrst_ino)r1 parent_devdevino parent_inos r is_mountz Path.is_mounts {{}} DKKMM 5 ))++2JJ   55 iikk  *  4iikk [%%''. j  sA AAc t|jS#t$r}t |sYd}~dSd}~wt $rYdSwxYwr)r rrrr!rrs r is_symlinkzPath.is_symlinks}  4::<</00 0    ## 55555   55 rc t|jS#t$r}t |sYd}~dSd}~wt $rYdSwxYwr)r rrrr!rrs r is_block_devicezPath.is_block_device!rrc t|jS#t$r}t |sYd}~dSd}~wt $rYdSwxYwr)rrrrr!rrs r is_char_devicezPath.is_char_device1rrc t|jS#t$r}t |sYd}~dSd}~wt $rYdSwxYwr)rrrrr!rrs r is_fifoz Path.is_fifoA  DIIKK/00 0    ## 55555   55 rc t|jS#t$r}t |sYd}~dSd}~wt $rYdSwxYwr)r rrrr!rrs r is_socketzPath.is_socketQr0rc> |js|js|jr|jddddkrmtj|jd}|dddkrt d||g|jddzS|S)NrrJrz#Could not determine home directory.)rrrrrrrr)r1homedirs r rzPath.expanduseras  Adj A K A KN2A2.#55g((Q88Grr{c!!"#HIII##WI ABB$?@@ @ r")F)rriNNN)NN)NNN)rT)rFF)1rPrQrRr rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r8rrrrrrr'r)r+r-r/r2rr'r"r rrYs'IEEE        [ %%[% . . .111      <<<6'+>>>>>TTT T T T59"&IIII!!! ! ! ! !666,".2>>>>> 000     000 & & & & & &6666111(    "!!!(           r"rceZdZ dZdS)rr'N)rPrQrRr r'r"r rrosIIIr"rceZdZ dZdZdS)rr'c td)Nz-Path.is_mount() is unsupported on this system)rr0s r r'zWindowsPath.is_mount}s!"QRRRr"N)rPrQrRr r'r'r"r rrvs4ISSSSSr"r)rAs  %%%%%%////////////PPPPPPPPPPPPPPPPPP@@@@@@   "&7E51#% HHH 222 <#<#<#<#<#v<#<#<#~tRtRtRtRtRhtRtRtRn'6'6'6'6'6H'6'6'6T#?$$ * * * 79k"";*(Y(**>::NGGGGGGGG2     y     >%%%%%%%%X=====8===Btttttvtttp  XHhSSSSS8SSSlmSSSSS$SSSSSr"