hyb
2025-11-10 e0a856b5072c5a09f3f6de6da85abf90e00ee704
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Ë
ñúh'ãóėdZddlmZddlZddlZddlmZddlmZddl    m
Z
erddl m Z Gd    „d
e
«Z dd „Zdd „Zdd „Zdd„Zdd„Zed¬«e««Zd
gZy)zWindows.é)Ú annotationsN)Ú    lru_cache)Ú TYPE_CHECKINGé)ÚPlatformDirsABC)ÚCallablecó>—eZdZdZedd„«Zddœdd„Zedd„«Zedd„«Zedd„«Z    edd    „«Z
edd
„«Z edd „«Z edd „«Z edd „«Zedd„«Zedd„«Zedd„«Zedd„«Zedd„«Zedd„«Zedd„«Zy)ÚWindowsað
    `MSDN on where to store app data files <https://learn.microsoft.com/en-us/windows/win32/shell/knownfolderid>`_.
 
    Makes use of the `appname <platformdirs.api.PlatformDirsABC.appname>`, `appauthor
    <platformdirs.api.PlatformDirsABC.appauthor>`, `version <platformdirs.api.PlatformDirsABC.version>`, `roaming
    <platformdirs.api.PlatformDirsABC.roaming>`, `opinion <platformdirs.api.PlatformDirsABC.opinion>`, `ensure_exists
    <platformdirs.api.PlatformDirsABC.ensure_exists>`.
 
    có”—|jrdnd}tjjt    |««}|j |«S)z×
        :return: data directory tied to the user, e.g.
         ``%USERPROFILE%\AppData\Local\$appauthor\$appname`` (not roaming) or
         ``%USERPROFILE%\AppData\Roaming\$appauthor\$appname`` (roaming)
        Ú CSIDL_APPDATAÚCSIDL_LOCAL_APPDATA)ÚroamingÚosÚpathÚnormpathÚget_win_folderÚ _append_parts)ÚselfÚconstrs   úSH:\Change_password\venv_build\Lib\site-packages\pip/_vendor/platformdirs/windows.pyÚ user_data_dirzWindows.user_data_dirs<€ð$(§<¢<‘Ð5JˆÜw‰w×Ѥ¨uÓ 5Ó6ˆØ×!Ñ! $Ó'Ð'óN©Ú opinion_valuecó¸—g}|jrš|jdur+|jxs |j}|j|«|j|j«||jr|j|«|jr|j|j«t j j|g|¢­Ž}|j|«|S)NF)    ÚappnameÚ    appauthorÚappendÚopinionÚversionrrÚjoinÚ_optionally_create_directory)rrrÚparamsÚauthors     rrzWindows._append_parts&s¡€ØˆØ <Š<؏~‰~ UÑ*ØŸ™Ò7¨4¯<©<Ø— ‘ ˜fÔ%Ø M‰M˜$Ÿ,™,Ô 'ØÐ(¨T¯\ª\Ø— ‘ ˜mÔ,؏|Š|Ø— ‘ ˜dŸl™lÔ+܏w‰w|‰|˜DÐ* 6Ò*ˆØ ×)Ñ)¨$Ô/؈ rcót—tjjtd««}|j    |«S)zT:return: data directory shared by users, e.g. ``C:\ProgramData\$appauthor\$appname``ÚCSIDL_COMMON_APPDATA©rrrrr©rrs  rÚ site_data_dirzWindows.site_data_dir5s/€ôw‰w×ѤÐ/EÓ FÓGˆØ×!Ñ! $Ó'Ð'rcó—|jS)zC:return: config directory tied to the user, same as `user_data_dir`©r©rs rÚuser_config_dirzWindows.user_config_dir;ó€ð×!Ñ!Ð!rcó—|jS)zF:return: config directory shared by the users, same as `site_data_dir`)r)r,s rÚsite_config_dirzWindows.site_config_dir@r.rcóx—tjjtd««}|j    |d¬«S)zÇ
        :return: cache directory tied to the user (if opinionated with ``Cache`` folder within ``$appname``) e.g.
         ``%USERPROFILE%\AppData\Local\$appauthor\$appname\Cache\$version``
        r ÚCacherr'r(s  rÚuser_cache_dirzWindows.user_cache_dirEs4€ô w‰w×ѤÐ/DÓ EÓFˆØ×!Ñ! $°gÐ!Ó>Ð>rcóx—tjjtd««}|j    |d¬«S)zd:return: cache directory shared by users, e.g. ``C:\ProgramData\$appauthor\$appname\Cache\$version``r&r2rr'r(s  rÚsite_cache_dirzWindows.site_cache_dirNs4€ôw‰w×ѤÐ/EÓ FÓGˆØ×!Ñ! $°gÐ!Ó>Ð>rcó—|jS)zB:return: state directory tied to the user, same as `user_data_dir`r+r,s rÚuser_state_dirzWindows.user_state_dirTr.rcó˜—|j}|jr1tjj    |d«}|j |«|S)zg:return: log directory tied to the user, same as `user_data_dir` if not opinionated else ``Logs`` in itÚLogs)rrrrr!r"r(s  rÚ user_log_dirzWindows.user_log_dirYs=€ð×!Ñ!ˆØ <Š<Ü—7‘7—<‘<  fÓ-ˆDØ × -Ñ -¨dÔ 3؈ rcóR—tjjtd««S)zN:return: documents directory tied to the user e.g. ``%USERPROFILE%\Documents``ÚCSIDL_PERSONAL©rrrrr,s rÚuser_documents_dirzWindows.user_documents_dirbs€ôw‰w×ѤÐ/?Ó @ÓAÐArcóR—tjjtd««S)zN:return: downloads directory tied to the user e.g. ``%USERPROFILE%\Downloads``ÚCSIDL_DOWNLOADSr=r,s rÚuser_downloads_dirzWindows.user_downloads_dirgs€ôw‰w×ѤÐ/@Ó AÓBÐBrcóR—tjjtd««S)zL:return: pictures directory tied to the user e.g. ``%USERPROFILE%\Pictures``ÚCSIDL_MYPICTURESr=r,s rÚuser_pictures_dirzWindows.user_pictures_dirls€ôw‰w×ѤÐ/AÓ BÓCÐCrcóR—tjjtd««S)zH:return: videos directory tied to the user e.g. ``%USERPROFILE%\Videos``Ú CSIDL_MYVIDEOr=r,s rÚuser_videos_dirzWindows.user_videos_dirqó€ôw‰w×Ѥ¨Ó ?Ó@Ð@rcóR—tjjtd««S)zF:return: music directory tied to the user e.g. ``%USERPROFILE%\Music``Ú CSIDL_MYMUSICr=r,s rÚuser_music_dirzWindows.user_music_dirvrHrcóR—tjjtd««S)zK:return: desktop directory tied to the user, e.g. ``%USERPROFILE%\Desktop``ÚCSIDL_DESKTOPDIRECTORYr=r,s rÚuser_desktop_dirzWindows.user_desktop_dir{s€ôw‰w×ѤÐ/GÓ HÓIÐIrcó°—tjjtjjt    d«d««}|j |«S)z…
        :return: runtime directory tied to the user, e.g.
         ``%USERPROFILE%\AppData\Local\Temp\$appauthor\$appname``
        r ÚTemp)rrrr!rrr(s  rÚuser_runtime_dirzWindows.user_runtime_dir€s?€ô w‰w×Ѥ§¡§ ¡ ¬^Ð<QÓ-RÐTZÓ [Ó\ˆØ×!Ñ! $Ó'Ð'rcó—|jS)zF:return: runtime directory shared by users, same as `user_runtime_dir`)rQr,s rÚsite_runtime_dirzWindows.site_runtime_dir‰s€ð×$Ñ$Ð$r)ÚreturnÚstr)rrUrú
str | NonerTrU)Ú__name__Ú
__module__Ú __qualname__Ú__doc__Úpropertyrrr)r-r0r3r5r7r:r>rArDrGrKrNrQrS©rrr
r
s_„ñðò(óð(ðGKõ ðò(óð(ð
ò"óð"ðò"óð"ðò?óð?ðò?óð?ð
ò"óð"ðòóððòBóðBðòCóðCðòDóðDðòAóðAðòAóðAðòJóðJðò(óð(ðò%óñ%rr
cóԗt|«}||Sddddœj|«}|€d|›}t|«‚tjj|«}|€d|›}t|«‚|S)z&Get folder from environment variables.ÚAPPDATAÚALLUSERSPROFILEÚ LOCALAPPDATA)r r&r úUnknown CSIDL name: zUnset environment variable: )Ú(get_win_folder_if_csidl_name_not_env_varÚgetÚ
ValueErrorrÚenviron)Ú
csidl_nameÚresultÚ env_var_nameÚmsgs    rÚget_win_folder_from_env_varsrjs‡€ä 5°jÓ A€FØ ÐØˆ ð#Ø 1Ø-ñ÷
cˆ*ƒoð    ð
ÐØ$ Z LÐ1ˆÜ˜‹oÐÜ Z‰Z^‰^˜LÓ )€FØ €~Ø,¨\¨NÐ;ˆÜ˜‹oÐØ €MrcóB—|dk(rNtjjtjjtjd«d«S|dk(rNtjjtjjtjd«d«S|dk(rNtjjtjjtjd«d«S|dk(rNtjjtjjtjd«d    «S|d
k(rNtjjtjjtjd«d «Sy ) zMGet a folder for a CSIDL name that does not exist as an environment variable.r<Ú USERPROFILEÚ    Documentsr@Ú    DownloadsrCÚPicturesrFÚVideosrJÚMusicN)rrr!rre)rfs rrbrb¤s€àÐ%Ò%܏w‰w|‰|œBŸG™G×,Ñ,¬R¯Z©Z¸ Ñ-FÓGÈÓUÐUàÐ&Ò&܏w‰w|‰|œBŸG™G×,Ñ,¬R¯Z©Z¸ Ñ-FÓGÈÓUÐUàÐ'Ò'܏w‰w|‰|œBŸG™G×,Ñ,¬R¯Z©Z¸ Ñ-FÓGÈÓTÐTà_Ò$܏w‰w|‰|œBŸG™G×,Ñ,¬R¯Z©Z¸ Ñ-FÓGÈÓRÐRà_Ò$܏w‰w|‰|œBŸG™G×,Ñ,¬R¯Z©Z¸ Ñ-FÓGÈÓQÐQØ rc    ó —ddddddddd    œj|«}|€d |›}t|«‚tjd k7rt‚d d
l}|j |jd«}|j||«\}}t|«S)z¼
    Get folder from the registry.
 
    This is a fallback technique at best. I'm not sure if using the registry for these guarantees us the correct answer
    for all CSIDL_* names.
 
    ÚAppDatazCommon AppDataz Local AppDataÚPersonalz&{374DE290-123F-4565-9164-39C4925E467B}z My PictureszMy VideozMy Music)r r&r r<r@rCrFrJNraÚwin32rz@Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders)
rcrdÚsysÚplatformÚNotImplementedErrorÚwinregÚOpenKeyÚHKEY_CURRENT_USERÚ QueryValueExrU)rfÚshell_folder_nameriryÚkeyÚ    directoryÚ_s       rÚget_win_folder_from_registryr·sœ€ð#Ø 0Ø.Ø$ØCØ)Ø#Ø#ñ    ÷
cˆ*ƒoððРØ$ Z LÐ1ˆÜ˜‹oÐÜ
‡||wÒÜ!Ð!Ûà
.‰.˜×1Ñ1Ð3vÓ
w€CØ×&Ñ& sÐ,=Ó>L€IˆqÜ ˆy‹>Ðrc
óê—ddl}ddddddd    d
d d œ    j|«}|€d |›}t|«‚|jd«}t    |d«}|j
j d|dd|«td„|D««r:|jd«}|jj|j|d«r|}|dk(r*tjj|jd«S|jS)zGet folder with ctypes.rNéé#ééé'éé é(é)    r r&r r<rCrFrJr@rMraiÚwindllc3ó8K—|]}t|«dkD–—Œy­w)éÿN)Úord)Ú.0Úcs  rú    <genexpr>z,get_win_folder_via_ctypes.<locals>.<genexpr>ñsèø€Ò
%˜AŒ3ˆq‹6C<Ñ
%ùs‚r@rn)ÚctypesrcrdÚcreate_unicode_bufferÚgetattrÚshell32ÚSHGetFolderPathWÚanyÚkernel32ÚGetShortPathNameWÚvaluerrr!)rfr“Ú csidl_constriÚbufrŒÚbuf2s       rÚget_win_folder_via_ctypesrŸÕsø€ó ðØ "Ø!ØØØØØØ"$ñ
÷
cˆ*ƒoððÐØ$ Z LÐ1ˆÜ˜‹oÐà
& tÓ
,€CÜ V˜XÓ &€FØ
‡NN×#Ñ# D¨+°t¸QÀÔDô Ñ
% Ô
%Ô%Ø×+Ñ+¨DÓ1ˆØ ?‰?× ,Ñ ,¨S¯Y©Y¸¸dÔ C؈CàÐ&Ò&܏w‰w|‰|˜CŸI™I {Ó3Ð3à 9‰9Ðrc󎗠   ddl}t|d«rtS    ddl}t
S#t$rYŒwxYw#t$r    t cYSwxYw)NrrŒ)r“ÚhasattrrŸÚ ImportErrorryrrj)r“rys  rÚ_pick_get_win_folderr£üsV€ð-Ûô 6˜8Ô $Ü,Ð ,ð,Ûô,Ð+øô ò Ù ð ûô ò,Ü+Ò+ð,ús‚#™2£    /®/²AÁA)Úmaxsize)rfrUrTrU)rfrUrTrV)rTzCallable[[str], str])rZÚ
__future__rrrvÚ    functoolsrÚtypingrÚapirÚcollections.abcrr
rjrbrrŸr£rÚ__all__r\rrú<module>r«slðÙå"ã    Û
ÝÝ å áÝ(ô|%ˆoô|%ó~ó*ó&ó<$óN ,ð )‘ 4Ô(Ñ)=Ó)?Ó@€ðð r