grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼] Yã'@s ddlZddlZddlZddlZddlTddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)g'Zd*Zd+Zd*Zd,Zd-Z d.Z d/Z d0ej krôd1Z d2Z d3d4„Zd5d„Zd6d„Zd7d„Zd8d„Zd9d„Zd:d„Zd;d„Zejje_d<d „Zd=d „Zd>d„Zd?d„Zydd@lmZWnek rÇdZYnXdAd„ZdBd„Z dCd„Z!dDd„Z"yddElm#Z#Wnek r,dFd„Z$Yn XdGd„Z$e$Z%e&edHƒoaej'ƒdIdJkZ(ddKd%„Z)dLd)„Z*y9ej'ƒddJ…dRkr±ddNlm+Z+ne‚Wn$e,efk rÞdOdP„Z+YnXyddQlm-Z.Wnek rYnXdS)SéN)Ú*ÚnormcaseÚisabsÚjoinÚ splitdriveÚsplitÚsplitextÚbasenameÚdirnameÚ commonprefixÚgetsizeÚgetmtimeÚgetatimeÚgetctimeÚislinkÚexistsÚlexistsÚisdirÚisfileÚismountÚ expanduserÚ expandvarsÚnormpathÚabspathÚsplituncÚcurdirÚpardirÚsepÚpathsepÚdefpathÚaltsepÚextsepÚdevnullÚrealpathÚsupports_unicode_filenamesÚrelpathÚsamefileÚ sameopenfileÚsamestatÚ commonpathÚ.z..ú\ú;ú/z.;C:\binZcez\WindowsZnulcCst|tƒrdSdSdS)Ns\/z\/)Ú isinstanceÚbytes)Úpath©r1ú+/opt/alt/python35/lib64/python3.5/ntpath.pyÚ _get_bothseps#sr3c Cs�y?t|tƒr(|jddƒjƒS|jddƒjƒSWnIttfk rŠt|ttfƒsƒtd|jjƒd‚‚YnXdS)Nó/s\r-r+z0normcase() argument must be str or bytes, not %r) r.r/ÚreplaceÚlowerÚ TypeErrorÚAttributeErrorÚstrÚ __class__Ú__name__)Úsr1r1r2r-scCs6t|ƒd}t|ƒdko5|dt|ƒkS)Nér)rÚlenr3)r<r1r1r2rCsc Gs£t|tƒr$d}d}d}nd}d}d}y5|sQ|dd…|t|ƒ\}}x¾|D]¶}t|ƒ\}} | r·| d|kr·|s¥| r«|}| }qjn?|rö||krö|jƒ|jƒkrð|}| }qj|}|r|d |kr||}|| }qjW|rb|d|krb|rb|d d…|krb|||S||SWn1tttfk ržtjd ||Œ‚YnXdS) Ns\s\/ó:r+z\/ú:rr=réÿÿÿÿrA) r.r/rr6r7r8Ú BytesWarningÚ genericpathÚ_check_arg_types) r0ÚpathsrÚsepsÚcolonZ result_driveZ result_pathÚpZp_driveZp_pathr1r1r2rJsD      cCstt|ƒdkr`t|tƒr6d}d}d}nd}d}d}|j||ƒ}|dd…|dkr,|dd …|kr,|j|dƒ}|d kr¼|dd…|fS|j||d ƒ}||d krö|dd…|fS|d krt|ƒ}|d|…||d…fS|d d…|kr`|dd…|dd…fS|dd…|fS) Nés\r4r?r+r-r@rér=rArA)r>r.r/r5Úfind)rHrr rGZnormpÚindexZindex2r1r1r2rxs, 0   cCsaddl}|jdtdƒt|ƒ\}}t|ƒdkrW|dd…|fS||fS)Nrz)rHrMÚdriver0r1r1r2r«s   cCs™t|ƒ}t|ƒ\}}t|ƒ}x(|rT||d|krT|d8}q-W|d|…||d…}}|j|ƒpˆ|}|||fS)Nr=)r3rr>Úrstrip)rHrFÚdÚiÚheadÚtailr1r1r2rÅs  !cCs?t|tƒr%tj|dddƒStj|dddƒSdS)Ns\r4ó.r+r-r*)r.r/rCÚ _splitext)rHr1r1r2rÜscCst|ƒdS)Nr=)r)rHr1r1r2r æscCst|ƒdS)Nr)r)rHr1r1r2r ísc CsBytj|ƒ}Wnttfk r1dSYnXtj|jƒS)NF)ÚosÚlstatÚOSErrorr8ÚstatÚS_ISLNKÚst_mode)r0Ústr1r1r2rôs  c Cs0ytj|ƒ}Wntk r+dSYnXdS)NFT)rXrYrZ)r0r^r1r1r2rs   )Ú_getvolumepathnamecCs‘t|ƒ}t|ƒ}t|ƒ\}}|rQ|d|krQ| pP||kS||kradStr‰|j|ƒt|ƒj|ƒkSdSdS)NrTF)r3rrr_rQ)r0rFÚrootÚrestr1r1r2rs   "c Cset|tƒrd}nd}|j|ƒs1|Sdt|ƒ}}x0||krv||t|ƒkrv|d7}qGWdtjkr–tjd}ntdtjkrµtjd}nUdtjkrÈ|Sytjd}Wntk ród}YnXt|tjdƒ}t|tƒr(tj |ƒ}|dkrStt |ƒ|d|…ƒ}|||d…S) Nó~ú~r=ÚHOMEZ USERPROFILEZHOMEPATHZ HOMEDRIVEÚ) r.r/Ú startswithr>r3rXÚenvironÚKeyErrorrÚfsencoder )r0ÚtilderSÚnÚuserhomerPr1r1r2r0s0 %   cCst|tƒr‡d|kr+d|kr+|Sddl}t|j|jddƒ}d}d}d}d}d}ttd dƒ}ncd |kr£d |kr£|Sddl}|j|jd}d }d }d }d}d }tj}|dd…} d} t|ƒ} x | | kr|| | d…} | |krº|| dd…}t|ƒ} y/|j | ƒ} | | |d| d…7} Wq t k r¶| | |7} | d} Yq XnQ| |kr×|| d| d…|krû| | 7} | d7} q || dd…}t|ƒ} y|j |ƒ} Wn*t k rZ| ||7} | d} Yq X|d| …} y<|dkrœtj tjtj | ƒƒ}n || }Wn t k rÉ|| |}YnX| |7} n4| |kr|| d| d…|kr| | 7} | d7} q || d| d…|kr|| dd…}t|ƒ} y|j |ƒ} Wn.t k r™| |||7} | d} YqþX|d| …} y<|dkrÛtj tjtj | ƒƒ}n || }Wn$t k r ||| |}YnX| |7} q |dd…} | d7} || | d…} x>| rˆ| |krˆ| | 7} | d7} || | d…} qKWy<|dkrºtj tjtj | ƒƒ}n || }Wnt k rã|| }YnX| |7} | r | d8} n | | 7} | d7} qW| S)Nó$ó%rz_-Úasciis'ó{ó}Úenvironbú$ú%ú'ú{ú}r=rI)r.r/ÚstringÚ ascii_lettersÚdigitsÚgetattrrXrgr>rLÚ ValueErrorriÚfsdecoderh)r0rxZvarcharsÚquoteÚpercentZbraceZrbraceZdollarrgÚresrLZpathlenÚcÚvarÚvaluer1r1r2rasº              "        "      "    c Csºt|tƒr0d}d}d}d}d}nd}d}d }d }d}|j|ƒra|S|j||ƒ}t|ƒ\}}|j|ƒr­||7}|j|ƒ}|j|ƒ}d }xÉ|t|ƒkr�|| sò|||krü||=qÅ|||kr€|d krN||d|krN||d|d…=|d8}qŠ|d krs|j|ƒrs||=qŠ|d7}qÅ|d7}qÅW| r©| r©|j |ƒ||j |ƒS)Ns\r4rVs..ó\\.\ó\\?\r+r-r*z..ú\\.\ú\\?\rr=)r„r…)r†r‡) r.r/rfr5rÚlstriprr>ÚendswithÚappendr) r0rr rrZspecial_prefixesÚprefixÚcompsrSr1r1r2rÑsD        )Ú_getfullpathnamecCsOt|ƒsEt|tƒr*tjƒ}n tjƒ}t||ƒ}t|ƒS)N)rr.r/rXÚgetcwdbÚgetcwdrr)r0Úcwdr1r1r2rs   c Csb|r.yt|ƒ}WqXtk r*YqXXn*t|tƒrLtjƒ}n tjƒ}t|ƒS)N)r�rZr.r/rXrŽr�r)r0r1r1r2rs  ÚgetwindowsversionrJrIcCsÌt|tƒr$d}d}d}nd}d}d}|dkrH|}|sZtdƒ‚y4tt|ƒƒ}tt|ƒƒ}t|ƒ\}}t|ƒ\} } t|ƒt| ƒkrÓtd| |fƒ‚d d „|j|ƒDƒ} d d „| j|ƒDƒ} d } x@t| | ƒD]/\}}t|ƒt|ƒkrFP| d 7} q!W|gt | ƒ| | | d…}|sƒ|St |ŒSWn7t tt t tfk rÇtjd||ƒ‚YnXdS)Ns\rVs..r+r*z..zno path specifiedz&path is on mount %r, start on mount %rcSsg|]}|r|‘qSr1r1)Ú.0Úxr1r1r2ú @s zrelpath..cSsg|]}|r|‘qSr1r1)r’r“r1r1r2r”As rr=r%)r.r/r|rrrrrÚzipr>rr7r8rBrOrCrD)r0ÚstartrrrZ start_absZpath_absZ start_driveZ start_restZ path_driveZ path_restÚ start_listÚ path_listrSZe1Ze2Úrel_listr1r1r2r%&sB   %c s(|stdƒ‚t|dtƒr:d‰d‰d‰nd‰d‰d‰yª‡‡fd d †|Dƒ}‡fd d †|Dƒ}y&t‡fd d †|Dƒƒ\}Wn!tk rÍtdƒd‚YnXttdd „|Dƒƒƒdkrÿtdƒ‚t|djˆˆƒƒ\}}|jˆƒ}‡fdd †|Dƒ}‡fdd †|Dƒ}t|ƒ}t |ƒ}xQt |ƒD]-\} } | || kr‡|d| …}Pq‡W|dt|ƒ…}|rÞ|ˆn|} | ˆj |ƒSWn+t t fk r#tjd|Œ‚YnXdS)Nz%commonpath() arg is an empty sequencers\r4rVr+r-r*cs.g|]$}t|jˆˆƒjƒƒ‘qSr1)rr5r6)r’rH)r rr1r2r”ls zcommonpath..cs%g|]\}}|jˆƒ‘qSr1)r)r’rRrH)rr1r2r”ms c3s+|]!\}}|dd…ˆkVqdS)Nr=r1)r’rRrH)rr1r2ú pszcommonpath..z%Can't mix absolute and relative pathscss|]\}}|VqdS)Nr1)r’rRrHr1r1r2ršwsr=zPaths don't have the same drivecs(g|]}|r|ˆkr|‘qSr1r1)r’r�)rr1r2r”|s cs)g|]}‡fdd†|Dƒ‘qS)cs(g|]}|r|ˆkr|‘qSr1r1)r’r�)rr1r2r”~s z)commonpath...r1)r’r<)rr1r2r”~s r))r|r.r/Úsetr>rr5rÚminÚmaxÚ enumeraterr7r8rCrD) rEZ drivesplitsÚ split_pathsrrPr0ÚcommonÚs1Ús2rSr�r‹r1)r rrr2r)\sD  & % "  é)Ú_getfinalpathnamecCstt|ƒƒS)N)rr)Úfr1r1r2r¤œsr¤)Ú_isdir)r£r)/rXÚsysr[rCÚ__all__rrr!rrr rÚbuiltin_module_namesr"r3rrrrrrrrWÚ__doc__r r rrÚntr_Ú ImportErrorrrrrr�rr#Úhasattrr‘r$r%r)r¤r8r¦rr1r1r1r2Ús|        . 3          1 p 2  6 4