grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]?:ã&@sddlZddlZddlZddlZddlTddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(g&Zd)Zd*Zd)Zd+Zd,Z d-Z dZ d.Z d/d0„Z d1d„Zd2d„Zd3d„Zd4d„Zd5d„Zejje_d6d„Zd7d „Zd8d „Zd9d„Zd:d„Zd;d„Zd<d„Zdadad=d„Zd>d„Zd?d„Z d@d%„Z!dAdB„Z"ej#dCkZ$ddDd'„Z%dEd(„Z&dS)FéN)Ú*Ú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Ú.z..ú/ú:z:/bin:/usr/binz /dev/nullcCst|tƒrdSdSdS)Nó/r*)Ú isinstanceÚbytes)Úpath©r0ú./opt/alt/python35/lib64/python3.5/posixpath.pyÚ_get_sep'sr2cCs4t|ttfƒs0tdj|jjƒƒ‚|S)Nz2normcase() argument must be str or bytes, not '{}')r-r.ÚstrÚ TypeErrorÚformatÚ __class__Ú__name__)Úsr0r0r1r2s cCst|ƒ}|j|ƒS)N)r2Ú startswith)r8rr0r0r1r=s c GsÀt|ƒ}|}yv|s-|dd…|xW|D]O}|j|ƒrR|}q4| sh|j|ƒru||7}q4|||7}q4WWn1tttfk r»tjd||Œ‚YnX|S)Nrr)r2r9Úendswithr4ÚAttributeErrorÚ BytesWarningÚ genericpathÚ_check_arg_types)ÚaÚprr/Úbr0r0r1rGs    cCsut|ƒ}|j|ƒd}|d|…||d…}}|rk||t|ƒkrk|j|ƒ}||fS)Né)r2ÚrfindÚlenÚrstrip)r@rÚiÚheadÚtailr0r0r1rcs  !cCs@t|tƒrd}d}n d}d}tj||d|ƒS)Nr,ó.r*r))r-r.r=Ú _splitext)r@rr#r0r0r1rss  cCs|dd…|fS)Nrr0)r@r0r0r1r€scCs-t|ƒ}|j|ƒd}||d…S)NrB)r2rC)r@rrFr0r0r1r ˆs cCs^t|ƒ}|j|ƒd}|d|…}|rZ||t|ƒkrZ|j|ƒ}|S)NrB)r2rCrDrE)r@rrFrGr0r0r1r ‘s  c CsBytj|ƒ}Wnttfk r1dSYnXtj|jƒS)NF)ÚosÚlstatÚOSErrorr;ÚstatÚS_ISLNKÚst_mode)r/Ústr0r0r1ržs  c Cs.ytj|ƒWntk r)dSYnXdS)NFT)rKrLrM)r/r0r0r1r¨s   cCsòytj|ƒ}Wntk r+dSYnXtj|jƒrBdSt|tƒrct|dƒ}nt|dƒ}t |ƒ}ytj|ƒ}Wntk r©dSYnX|j }|j }||krÌdS|j }|j }||krîdSdS)NFs..z..T) rKrLrMrNrOrPr-r.rr%Úst_devÚst_ino)r/Ús1ÚparentÚs2Údev1Údev2Úino1Úino2r0r0r1r´s.           c Cs|t|tƒrd}nd}|j|ƒs1|St|ƒ}|j|dƒ}|dkrgt|ƒ}|dkr¹dtjkr©ddl}|j tj ƒƒj }q(tjd}noddl}|d|…}t|tƒrót |dƒ}y|j |ƒ}Wntk r|SYnX|j }t|tƒrOtj|ƒ}d}nd}|j|ƒ}|||d…p{|S) Nó~ú~rBrÚHOMEÚASCIIr,r*)r-r.r9r2ÚfindrDrKÚenvironÚpwdÚgetpwuidÚgetuidÚpw_dirr3ÚgetpwnamÚKeyErrorÚfsencoderE) r/ÚtilderrFraÚuserhomeÚnameÚpwentÚrootr0r0r1rÞs:           c CsÏt|tƒrpd|kr|StsFddl}|jd|jƒatj}d}d}ttddƒ}nUd|kr€|St s§ddl}|jd|jƒa t j}d }d }tj }d}xý|||ƒ}|säP|j dƒ\}}|j d ƒ} | j |ƒr6| j|ƒr6| d d …} y<|dkrgtjtj tj| ƒƒ} n || } Wntk rŒ|}YqÎX||d…} |d|…| }t|ƒ}|| 7}qÎW|S) Nó$rs\$(\w+|\{[^}]*\})ó{ó}Úenvironbú$z\$(\w+|\{[^}]*\})ú{ú}rBéÿÿÿÿ)r-r.Ú _varprogbÚreÚcompiler^ÚsearchÚgetattrrKÚ_varprogr`ÚspanÚgroupr9r:rgÚfsdecoderfrD) r/rvrxÚstartÚendr`rFÚmÚjrjÚvaluerHr0r0r1r sN        "   c CsRt|tƒr*d}d}d}d}nd}d}d}d}||krR|S|j|ƒ}|r”|j|d ƒr”|j|d ƒ r”d }|j|ƒ}g}xs|D]k}|||fkrËq°||ksû| rå| sû|r |d |kr |j|ƒq°|r°|jƒq°W|}|j|ƒ}|rH|||}|pQ|S) Nr,órIs..r*Úr)z..éérBrt)r-r.r9rÚappendÚpopr) r/rÚemptyÚdotÚdotdotÚinitial_slashesÚcompsÚ new_compsÚcompr0r0r1r?s<  ' cCsOt|ƒsEt|tƒr*tjƒ}n tjƒ}t||ƒ}t|ƒS)N)rr-r.rKÚgetcwdbÚgetcwdrr)r/Úcwdr0r0r1rds   cCs,t|dd…|iƒ\}}t|ƒS)Nr)Ú _joinrealpathr)Úfilenamer/Úokr0r0r1r%rs"c Cs•t|tƒr$d}d}d}nd}d}d}t|ƒrX|dd…}|}x0|rŠ|j|ƒ\}}}| s[||kr�q[||krÝ|rÔt|ƒ\}}||krÚt|||ƒ}q[|}q[t||ƒ}t|ƒs|}q[||kr9||}|dk r&q[t||ƒdfSd||Âs zrelpath..cSsg|]}|r|‘qSr0r0)r�ržr0r0r1rŸÃs r')Ú ValueErrorr-r.rrrDr rr4r;r<ÚDeprecationWarningr=r>) r/r~rrrÚ start_listÚ path_listrFÚrel_listr0r0r1r'¯s,   ""%c s{|stdƒ‚t|dtƒr4d‰d‰n d‰d‰y ‡fdd†|Dƒ}y&t‡fd d †|Dƒƒ\}Wn!tk r¥td ƒd‚YnX‡fd d†|Dƒ}t|ƒ}t|ƒ}|}x;t|ƒD]-\}}|||krê|d|…}PqêW|r'ˆn ˆdd…}|ˆj|ƒSWn+tt fk rvt j d |Œ‚YnXdS)Nz%commonpath() arg is an empty sequencerr,rIr*r)csg|]}|jˆƒ‘qSr0)r)r�r/)rr0r1rŸãs zcommonpath..c3s%|]}|dd…ˆkVqdS)NrBr0)r�r@)rr0r1ú æszcommonpath..z%Can't mix absolute and relative pathscs)g|]}‡fdd†|Dƒ‘qS)cs(g|]}|r|ˆkr|‘qSr0r0)r�Úc)rr0r1rŸês z)commonpath...r0)r�r8)rr0r1rŸês r() r r-r.ÚsetÚminÚmaxÚ enumeraterr4r;r=r>) ÚpathsÚ split_pathsrrTrVÚcommonrFr¦Úprefixr0)rrr1r(Õs4  &   )'rKÚsysrNr=Ú__all__rrr#rr r!r"r$r2rrrrrrJÚ__doc__rr r rrrrrzrurrrr%r“Úplatformr&r'r(r0r0r0r1Ú sX             * * 4 %   3&