Files
952-11/env/python/dll/Python312/Lib/__pycache__/ntpath.cpython-312.pyc
T

218 lines
26 KiB
Plaintext
Raw Normal View History

2024-08-19 17:05:14 +08:00
Ë
*åf|~ãó¤—dZdZdZdZdZdZdZdZdZdd l Z dd l
Z
dd l Z dd l Z dd
l ­gd ¢Z
d „Z dd
lmZmZmZd„Zd„Zd„Zd„Zd„Zd„Zd„Ze j<je_d„Zd„Z e!e jDd«rd„Z#nd„Z#d„Z$ ddl%m&Z&d„Z'd„Z(d„Z) dd l%m*Z*d!„Z+d#„Z, dd$l%m-Z-d%„Z. dd&l%m/Z/m0Z1d'„Z2d(„Z3d)d*œd+„Z4d,Z5d6d-„Z6d.„Z7 dd/l%m8Z9dd0l%m:Z;dd1l%m<Z=dd2l%m>Z? dd3l%m@Z@d4„ZAy #e$rd„ZYŒÃwxYw#e$rd Z&YŒywxYw#e$rd"„Z+YŒtwxYw#e$re,Z.YŒtwxYw#e$re.Z4YŒlwxYw#e$rYŒUwxYw#e$rd5„ZAYy wxYw)7z�Common pathname manipulations, WindowsNT/95 version.
Instead of importing this module directly, import os and refer to this
module as os.path.
ú.ú..ú\ú;ú/z.;C:\binÚnuléN)Ú*)(ÚnormcaseÚisabsÚjoinÚ
splitdriveÚ splitrootÚsplitÚsplitextÚbasenameÚdirnameÚ commonprefixÚgetsizeÚgetmtimeÚgetatimeÚgetctimeÚislinkÚexistsÚlexistsÚisdirÚisfileÚismountÚ
expanduserÚ
expandvarsÚnormpathÚabspathÚcurdirÚpardirÚsepÚpathsepÚdefpathÚaltsepÚextsepÚdevnullÚrealpathÚsupports_unicode_filenamesÚrelpathÚsamefileÚ sameopenfileÚsamestatÚ
commonpathÚ
isjunctioncó&—t|t«ryy)Nó\/ú\/)Ú
isinstanceÚbytes©Úpaths úBc:\Users\RCi\AppData\Local\Programs\Python\Python312\Lib\ntpath.pyÚ
_get_bothsepsr:#s€Ü�$œÔØàó)Ú
LCMapStringExÚLOCALE_NAME_INVARIANTÚLCMAP_LOWERCASEcóX—tj|«}|s|St|t«r]t j
«}|j
|d«jdd«}ttt|«}|j|d«Sttt|jdd««S)únNormalize case of pathname.
Makes all characters lowercase and all slashes into backslashes.
Úsurrogateescaperr) ÚosÚfspathr5r6ÚsysÚgetfilesystemencodingÚdecodeÚreplaceÚ_LCMapStringExÚ_LOCALE_NAME_INVARIANTÚ_LCMAP_LOWERCASEÚencode)ÚsÚencodings r9r
r
3s”€ô
�I‰I�a‹LˆÙ؈HÜ �aœÔ Ü×0Ñ0Ó2ˆHØ—‘˜Ð#4Ó5×=Ñ=¸cÀ4ÓHˆAÜÔ5Ü/°ó4ˆAà—8‘8˜HÐ&7Ó8Ð 8ä!Ô"8Ü"2Ø"#§)¡)¨C°Ó"6ó8ð
8r;có—tj|«}t|t«rFtjtj
|«j
dd«j««S|j
dd«j«S)r@rr)rBrCr5r6ÚfsencodeÚfsdecoderGÚlower)rLs r9r
r
Fsb€ô
�I‰I�a‹LˆÜ �aœÔ Ü—;‘;œrŸ{™{¨1›~×5Ñ5°c¸4Ó@×FÑFÓHÓIÐ IØ�y‰y˜˜dÓ#×)Ñ)Ó+Ð+r;cóÚ—tj|«}t|t«rd}d}d}nd}d}d}|ddj ||«}|j |«s|j |d «ry
y ) zTest whether a path is absoluteó\ó/s:\rrz:\NééTF)rBrCr5r6rGÚ
startswith)rLr$r'Ú colon_seps r9r r Wsn€ä
� ‰ �!‹ €AÜ�!”UÔØˆØˆØ‰ àˆØˆØˆ Ø ˆ"ˆ1ˆ�
‰
�f˜cÓ"€Að ‡|�|�CÔ˜AŸL™L¨°AÔ6ØØ r;có8—tj|«}t|t«rd}d}d}nd}d}d} |s|dd|zt |«\}}}t tj|«D]b}t |«\} }
} |
r | s|s| }|
}| }Œ| r/| |k7r*| j
«|j
«k7r| }|
}| }ŒN| }|r |d|vr||z}|| z}Œd|r|s|r|dd||zvr||z|zS||z|zS#tttf$rtjd |g|¢­Ž‚wxYw)
NrSr3ó:rr4ú:réÿÿÿÿr ) rBrCr5r6rÚmaprQÚ TypeErrorÚAttributeErrorÚ BytesWarningÚ genericpathÚ_check_arg_types) r8Úpathsr$ÚsepsÚcolonÚ result_driveÚ result_rootÚ result_pathÚpÚp_driveÚp_rootÚp_paths r9r r ksd€Ü
�9‰9�T‹?€DÜ�$œÔØˆØˆØ‰àˆØˆØˆð!ÙØ ��!ˆH�sŠNÜ1:¸4³Ñ.ˆ �k ;Ü”R—Y‘Y Ó&ò /ˆAÜ&/°£lÑ #ˆG�V˜VÙá¡,Ø#*�LØ$� Ø$� ØÙ˜W¨ Ò4Ø—=‘=“? l×&8Ñ&8Ó&:Ò:à#*�LØ"(�KØ"(�KØà&� á˜{¨2™°dÑ:Ø)¨CÑ/� Ø%¨Ñ.‰Kð+ /ñ.
¡ Ù ˜\¨"¨#Ð.°e¸d±lÑBØ #Ñ%¨ Ñ3Ð 3ؘkÑ)¨KÑ7Ð7øÜ ”~¤|Ð 4òÜ×$Ñ$ V¨TÐ:°EÓ:Ø
ðús´B/C,Ã$C,Ã,-Dcó.—t|«\}}}|||zfS)aÚSplit a pathname into drive/UNC sharepoint and relative path specifiers.
Returns a 2-tuple (drive_or_unc, path); either part may be empty.
If you assign
result = splitdrive(p)
It is always true that:
result[0] + result[1] == p
If the path contained a drive letter, drive_or_unc will contain everything
up to and including the colon. e.g. splitdrive("c:/dir") returns ("c:", "/dir")
If the path contained a UNC path, the drive_or_unc will contain the host name
and share up to but not including the fourth directory separator character.
e.g. splitdrive("//host/computer/dir") returns ("//host/computer", "/dir")
Paths cannot contain both a drive letter and a UNC path.
)r)riÚdriveÚrootÚtails r9r
r
œs#€ô&" !› Ñ€Eˆ4�Ø �$˜‘+Ð Ðr;cóþ—tj|«}t|t«r d}d}d}d}d}n
d}d}d}d }d
}|j ||«}|d d |k(r||d d
|k(ri|d dj «|k(rdnd
}|j
||«}|dk(r|||fS|j
||d z«} | dk(r|||fS|d | || | d z|| d zd fS||d d |d d fS|d d
|k(r!|d
d|k(r|d d
|d
d|dd fS|d d
||d
d fS|||fS)aþSplit a pathname into drive, root and tail. The drive is defined
exactly as in splitdrive(). On Windows, the root may be a single path
separator or an empty string. The tail contains anything after the root.
For example:
splitroot('//server/share/') == ('//server/share', '/', '')
splitroot('C:/Users/Barney') == ('C:', '/', 'Users/Barney')
splitroot('C:///spam///ham') == ('C:', '/', '//spam///ham')
splitroot('Windows/notepad') == ('', '', 'Windows/notepad')
rSrTrZó\\?\UNC\r;rrr[ú\\?\UNC\ÚNrVéér\rU)rBrCr5r6rGÚupperÚfind)
rir$r'reÚ
unc_prefixÚemptyÚnormpÚstartÚindexÚindex2s
r9rr³s‡€ô � ‰ �!‹ €AÜ�!”UÔØˆØˆØˆØ$ˆ
Ø‰àˆØˆØˆØ#ˆ
؈Ø
�I‰I�f˜cÓ "€EØ ˆRˆa€y�CÒØ ��1ˆ:˜Ò ð˜r ˜Ÿ™Ó*¨jÒ8‘A¸aˆEØ—J‘J˜s EÓ*ˆEؘŠ{ؘ% �Ð&Ø—Z‘Z  U¨Q¡YÓ/ˆFؘŠ|ؘ% �Ð&Ø�W�f�:˜q ¨°©
Ð3°Q°vÀ±z°{°^ÐCÐ Cð˜!˜B˜Q˜%  1 2 Ð&Ð &Ø ˆq�ˆ�uÒ Ø ��1ˆ:˜Ò à�R�a�5˜!˜A˜a˜& ! A B %Ð'Ð 'ð�R�a�5˜%  1 2 Ð&Ð &ð�e˜QˆÐr;cóø—tj|«}t|«}t|«\}}}t |«}|r||dz
|vr|dz}|r ||dz
|vrŒ|d|||d}}||z|j |«z|fS)z~Split a pathname.
Return tuple (head, tail) where tail is everything after the final slash.
Either part may be empty.rVN)rBrCr:rÚlenÚrstrip)rirdÚdÚrÚiÚheadrps r9rrìs”€ô
� ‰ �!‹ €AÜ ˜Ó €Dܘ‹l�G€A€qˆ!ä ˆA‹€AÙ
��!�A‘#‘˜dÑ"Ø ˆQ‰ˆñ ��!�A‘#‘˜dÒ"à�2�A�˜˜!˜"˜ˆ$€DØ ˆq‰5�4—;‘;˜tÓ$Ñ $ dÐ *Ð*r;có¬—tj|«}t|t«rt j
|ddd«St j
|ddd«S)NrSrTó.rrr)rBrCr5r6raÚ _splitext©ris r9rrsG€Ü
� ‰ �!‹ €AÜ�!”UÔÜ×$Ñ$ Q¨¨t°TÓ:Ð:ä×$Ñ$ Q¨¨c°3Ó7Ð7r;có—t|«dS)z)Returns the final component of a pathnamerV©rr‰s r9rr ó€ä �‹8�A‰;Ðr;có—t|«dS)z-Returns the directory component of a pathnamerr‹r‰s r9rrrŒr;Úst_reparse_tagcó®— tj|«}t |j tjk(«S#tttf$rYywxYw©z!Test whether a path is a junctionF) rBÚlstatÚOSErrorÚ
ValueErrorr_ÚboolrŽÚstatÚIO_REPARSE_TAG_MOUNT_POINT©r8Ústs r9r1r1sM€ð Ü—‘˜$“ˆBô�B×%Ñ%¬×)HÑ)HÑHÓIÐIøôœ¤^Ð4ò Ùð ús‚=½AÁAcó.—tj|«yr�)rBrCr7s r9r1r1#s€ä
� ‰ �$ŒØr;cóZ— tj|«}y#ttf$rYywxYw)zCTest whether a path exists. Returns True for broken symbolic linksFT)rBr‘r’r“r—s r9rr+s2€ðÜ
�X‰X�d‹^ˆð øô
”ZÐ òÙðús ‚˜*©*)Ú_getvolumepathnamecó>—tj|«}t|«}t|«}t |«\}}}|r
|d|vr| S|r|syt
rL|j
|«}t |«j
|«}|j«|j«k(Sy)zaTest whether a path is a mount point (a drive root, the root of a
share, or a mounted volume)rTF)rBrCr:r!rr›r�Úcasefold)r8rdrnroÚrestÚxÚys r9rrAs‘€ô �9‰9�T‹?€DÜ ˜Ó €DÜ �4‹=€DÜ! $›Ñ€Eˆ4�Ù ��q‘˜TÑ!؈xˆÙ ‘DØåØ �K‰K˜Ó ˆÜ ˜dÓ #× *Ñ *¨4Ó 0ˆØ�z‰z‹|˜qŸz™z›|Ñ+Ð+àr;có8—tj|«}t|t«rd}nd}|j |«s|Sdt |«}}||kr+||t
|«vr|dz
}||kr||t
|«vrŒdtjvrtjd}nEdtjvr|S tjd}t|tjd«}|dk7rs|d|}t|t«rtj|«}tjjd«}||k7r%|t|«k7r|Stt|«|«}t|t«rtj|«}|||d zS#t$rd}YŒÏwxYw)
zLExpand ~ and ~user constructs.
If user or $HOME is unknown, do nothing.ó~ú~rVÚ USERPROFILEÚHOMEPATHÚ HOMEDRIVErtÚUSERNAMEN)rBrCr5r6rWr€r:ÚenvironÚKeyErrorr rPÚgetrrrO)r8Útilder„ÚnÚuserhomernÚ target_userÚ current_users r9rr^s{€ô �9‰9�T‹?€DÜ�$œÔØ‰àˆØ �?‰?˜5Ô !؈ Ø Œc�$‹i€q€AØ
ˆaŠ%�D˜‘G¤=°Ó#6Ñ6Ø ˆQ‰ˆð ˆaŠ%�D˜‘G¤=°Ó#6Ò6ðœŸ
™
Ñ"Ü—:‘:˜mÑ,‰Ø
œ2Ÿ:™:Ñ
%؈ ð Ü—J‘J˜{Ñ+ˆEô˜œrŸz™z¨*Ñ5Ó6ˆàˆA‚vؘ1˜Q�iˆ Ü �k¤5Ô )ÜŸ+™+ kÓ2ˆKÜ—z‘z—~‘~ jÓ1ˆ à ˜,Ò &ð œx¨Ó1Ò1Ø� ÜœG HÓ-¨{Ó;ˆHä�$œÔÜ—;‘;˜xÓ(ˆà �d˜1˜2�hÑ Ðøô/ò ØŠEð úsÂ6F Æ FÆFcóì—tj|«}t|t«rPd|vrd|vr|Sddl}t|j
|j zdzd«}d}d}d}d }d}ttd
d«}nDd |vrd |vr|Sddl}|j
|j zdz}d
}d }d}d}d }tj}|dd} d}
t|«} |
| k�r||
|
dz} | |k(r5||
dzd}t|«} |j| «}
| | |d|
dzzz
} �n·| |k(r�||
dz|
dz|k(r | | z
} |
dz
}
�n˜||
dzd}t|«} |j|«}
|d|
}
|€:tjtjtj|
««}n||
}| |z
} �n%| |k(�r||
dz|
dz|k(r | | z
} |
dz
}
�n||
dz|
dz|k(rr||
dzd}t|«} |j|«}
|d|
}
|€:tjtjtj|
««}n||
}| |z
} n…|dd}
|
dz
}
||
|
dz} | r| |vr|
| z
}
|
dz
}
||
|
dz} | r| |vrŒ |€:tjtjtj|
««}n||
}| |z
} | r |
dz}
n| | z
} |
dz
}
|
| kr�Œ| S#t$r| | |zz
} | dz
}
YŒ&wxYw#t$r ||
z|z}Y�ŒjwxYw#t$r| ||zz
} | dz
}
YŒZwxYw#t$r||z|
z|z}YŒÿwxYw#t$r| ||z|zz
} | dz
}
YŒ“wxYw#t$r||
z}YŒ¹wxYw)zfExpand shell variables of the forms $var, ${var} and %var%.
Unknown variables are left unchanged.ó$ó%rNz_-Úasciió'ó{ó}Úenvironbú$ú%ú'ú{ú}rVru)rBrCr5r6ÚstringÚ
ascii_lettersÚdigitsÚgetattrr¨r€r}r“rOrPr©)r8r½ÚvarcharsÚquoteÚpercentÚbraceÚrbraceÚdollarr¨Úresr}ÚpathlenÚcÚvarÚvalues r9rr›sH€ô �9‰9�T‹?€DÜ�$œÔØ �tÑ  ¨DÑ 0؈KÛܘ×-Ñ-°·
±
Ñ=ÀÑDÀgÓNˆØˆØˆØˆØˆØˆÜœ"˜j¨$Ó/‰à �d‰?˜s¨$™ØˆKÛØ×'Ñ'¨&¯-©-Ñ7¸$Ñ>ˆØˆØˆØˆØˆØˆÜ—*‘*ˆØ
ˆr�ˆ(€CØ
€EÜ�$‹i€GØ
�'‹/Ø ��u˜Q‘wÐ ˆØ �Š:ؘ ™ ˜
Ð#ˆDܘ$“iˆGð
$ØŸ
™
 1›
�Ø�q˜4 
 ¨¡Ð+Ñ+Ñ+’ð�'Š\Ø�E˜A‘I˜e a™iÐ(¨GÒ3Ø�q‘�ؘ‘