3 u·ßj?ã'@sfdZdZdZdZdZdZdZdZddlZddl Z ddl Z ddl Z ddl Td d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/g'Z d0d1„Z d2d „Zd3d „Zd4d „Zd5d „Zd6d„Ze jje_d7d „Zd8d„Zd9d„Zd:d„Zd;d„ZdZdadad?d„Zd@d„Z dAd„Z!dBdCœdDd+„Z"dEdF„Z#e j$dGkZ%dJdHd-„Z&dId.„Z'dS)KÚ.z..ú/ú:z:/bin:/usr/binNz /dev/nullé)Ú*ÚnormcaseÚisabsÚjoinÚ splitdriveÚsplitÚsplitextÚbasenameÚdirnameÚ commonprefixÚgetsizeÚgetmtimeÚgetatimeÚgetctimeÚislinkÚexistsÚlexistsÚisdirÚisfileÚismountÚ expanduserÚ expandvarsÚnormpathÚabspathÚsamefileÚ sameopenfileÚsamestatÚcurdirÚpardirÚsepÚpathsepÚdefpathÚaltsepÚextsepÚdevnullÚrealpathÚsupports_unicode_filenamesÚrelpathÚ commonpathÚ ALLOW_MISSINGcCst|tƒrdSdSdS)Nó/r)Ú isinstanceÚbytes)Úpath©r1ú./opt/alt/python36/lib64/python3.6/posixpath.pyÚ_get_sep)s r3cCs.tj|ƒ}t|ttfƒs*tdj|jjƒƒ‚|S)Nz2normcase() argument must be str or bytes, not '{}') ÚosÚfspathr.r/ÚstrÚ TypeErrorÚformatÚ __class__Ú__name__)Úsr1r1r2r4s   cCstj|ƒ}t|ƒ}|j|ƒS)N)r4r5r3Ú startswith)r;r"r1r1r2r@s c Gs®tj|ƒ}t|ƒ}|}yd|s,|dd…|xJttj|ƒD]:}|j|ƒrN|}q:| s^|j|ƒrh||7}q:|||7}q:WWn.tttfk r¨t j d|f|žŽ‚YnX|S)Nrr) r4r5r3Úmapr<Úendswithr7ÚAttributeErrorÚ BytesWarningÚ genericpathÚ_check_arg_types)ÚaÚpr"r0Úbr1r1r2rKs    cCs`tj|ƒ}t|ƒ}|j|ƒd}|d|…||d…}}|rX||t|ƒkrX|j|ƒ}||fS)Né)r4r5r3ÚrfindÚlenÚrstrip)rDr"ÚiÚheadÚtailr1r1r2r hs  cCs6tj|ƒ}t|tƒrd}d}nd}d}tj||d|ƒS)Nr-ó.rr)r4r5r.r/rAÚ _splitext)rDr"r&r1r1r2r ys  cCstj|ƒ}|dd…|fS)Nr)r4r5)rDr1r1r2r ‡s cCs,tj|ƒ}t|ƒ}|j|ƒd}||d…S)NrF)r4r5r3rG)rDr"rJr1r1r2r �s cCsNtj|ƒ}t|ƒ}|j|ƒd}|d|…}|rJ||t|ƒkrJ|j|ƒ}|S)NrF)r4r5r3rGrHrI)rDr"rJrKr1r1r2r šs   c Cs4ytj|ƒ}Wnttfk r&dSXtj|jƒS)NF)r4ÚlstatÚOSErrorr?ÚstatÚS_ISLNKÚst_mode)r0Ústr1r1r2r¨s c Cs(ytj|ƒWntk r"dSXdS)NFT)r4rOrP)r0r1r1r2r²s cCs´ytj|ƒ}Wntk r"dSXtj|jƒr4dSt|tƒrJt|dƒ}n t|dƒ}t |ƒ}ytj|ƒ}Wntk r~dSX|j }|j }||kr˜dS|j }|j }||kr°dSdS)NFs..z..T) r4rOrPrQrRrSr.r/rr(Úst_devÚst_ino)r0Ús1ÚparentÚs2Údev1Údev2Úino1Úino2r1r1r2r¾s.    c Cs4tj|ƒ}t|tƒrd}nd}|j|ƒs,|St|ƒ}|j|dƒ}|dkrPt|ƒ}|dkr¢dtjkr–ddl }y|j tj ƒƒj }Wq t k r’|SXqôtjd}nRddl }|d|…}t|tƒrÊt|dƒ}y|j|ƒ}Wnt k rì|SX|j }t|tƒ�rtj|ƒ}d}nd}|j|ƒ}|||d…�p2|S) Nó~ú~rFrÚHOMEÚASCIIr-r)r4r5r.r/r<r3ÚfindrHÚenvironÚpwdÚgetpwuidÚgetuidÚpw_dirÚKeyErrorr6ÚgetpwnamÚfsencoderI) r0Útilder"rJrdÚuserhomeÚnameÚpwentÚrootr1r1r2rèsB            z\$(\w+|\{[^}]*\}?)cs®tj|ƒ}t|tƒrZd|kr |Sts@ddl}|jtjƒ|j ƒj at}d‰d‰t tddƒ‰n:d|krf|St s‚ddl}|jt|j ƒj a t }d‰d‰tj ‰‡‡‡fd d „}|||ƒS) Nó$ró{ó}Úenvironbú$ú{ú}c s~|d}|jˆƒr0|jˆƒs$|dS|dd…}y,ˆdkrRtjtjtj|ƒƒ}nˆ|}Wntk rt|dSX|SdS)NrFréÿÿÿÿ)r<r>r4rjrcÚfsdecoderh)ÚmrmÚvalue)ÚendrcÚstartr1r2Úrepl8s     zexpandvars..repl)r4r5r.r/Ú_varsubbÚreÚcompileÚ _varpatternÚencoderaÚsubÚgetattrÚ_varsubrc)r0rrƒr}r1)r{rcr|r2rs,  c Csþtj|ƒ}t|tƒr&d}d}d}d}nd}d}d}d}||krB|S|j|ƒ}|rr|j|d ƒrr|j|d ƒ rrd }|j|ƒ}g}xV|D]N}|||fkr˜q†||ks¼| r¬| s¼|rÈ|d |krÈ|j|ƒq†|r†|jƒq†W|}|j|ƒ}|rö|||}|pü|S) Nr-órMs..rÚrz..éérFrw) r4r5r.r/r<r ÚappendÚpopr) r0r"ÚemptyÚdotÚdotdotÚinitial_slashesÚcompsÚ new_compsÚcompr1r1r2rOs>          cCs@tj|ƒ}t|ƒs8t|tƒr&tjƒ}ntjƒ}t||ƒ}t|ƒS)N) r4r5rr.r/ÚgetcwdbÚgetcwdrr)r0Úcwdr1r1r2rus    F)ÚstrictcCs,tj|ƒ}t|dd…||iƒ\}}t|ƒS)Nr)r4r5Ú _joinrealpathr)Úfilenamer–r0Úokr1r1r2r(„s c Cs†t|tƒrd}d}d}n d}d}d}|tkr2t}n|r|| }|dk �rq\|�r0t j | ƒnt| |ƒdfSd|| <t|t j| ƒ||ƒ\}} | �srt||ƒdfS||| <q\W|d fS) Nr-rMs..rrz..rFFT)r.r/r,ÚFileNotFoundErrorrPrÚ partitionr rr4rOrQrRrSr—Úreadlink)r0Úrestr–Úseenr"r r!Ú ignored_errorrmÚ_ÚnewpathrTÚis_linkr™r1r1r2r—�s`           r—Údarwinc Csò|s tdƒ‚tj|ƒ}t|tƒr.d}d}d}n d}d}d}|dkrH|}n tj|ƒ}yndd „t|ƒj|ƒDƒ}d d „t|ƒj|ƒDƒ}tt||gƒƒ}|gt|ƒ|||d…}|sº|St |ŽSt t t t fk rìtjd ||ƒ‚YnXdS) Nzno path specifiedrMr-s..rrz..cSsg|] }|r|‘qSr1r1)Ú.0Úxr1r1r2ú èszrelpath..cSsg|] }|r|‘qSr1r1)r¤r¥r1r1r2r¦ésr*)Ú ValueErrorr4r5r.r/rr rHrrr7r?r@ÚDeprecationWarningrArB) r0r|r r"r!Ú start_listÚ path_listrJÚrel_listr1r1r2r*Òs0   c s2|s tdƒ‚tttj|ƒƒ}t|dtƒr4d‰d‰nd‰d‰yƇfdd„|Dƒ}yt‡fd d „|Dƒƒ\}Wntk rŠtd ƒd‚YnX‡fd d„|Dƒ}t|ƒ}t |ƒ}|}x.t |ƒD]"\}}|||kr¼|d|…}Pq¼W|rêˆn ˆdd…}|ˆj |ƒSt t fk �r,tjd|žŽ‚YnXdS)Nz%commonpath() arg is an empty sequencerr-rMrrcsg|]}|jˆƒ‘qSr1)r )r¤r0)r"r1r2r¦ szcommonpath..c3s|]}|dd…ˆkVqdS)NrFr1)r¤rD)r"r1r2ú szcommonpath..z%Can't mix absolute and relative pathscsg|]}‡fdd„|Dƒ‘qS)csg|]}|r|ˆkr|‘qSr1r1)r¤Úc)r r1r2r¦sz)commonpath...r1)r¤r;)r r1r2r¦sr+)r+)r§Útupler=r4r5r.r/ÚsetÚminÚmaxÚ enumeraterr7r?rArB) ÚpathsÚ split_pathsrrWrYÚcommonrJr­Úprefixr1)r r"r2r+ûs6  )N)(r r!r&r"r#r$r%r'r4ÚsysrQrAÚ__all__r3rrrr r rNÚ__doc__r r r rrrrr�r…r~rrrr(r—Úplatformr)r*r+r1r1r1r2ÚsZ           *21& C  )