\bg'dZddlmZddlZddlZddlmZddlmZddl m Z erddl m Z Gd d e Z ddZddZddZddZddZedeZd gZdS)zWindows.) annotationsN) lru_cache) TYPE_CHECKING)PlatformDirsABC)CallableceZdZdZeddZdddd Zedd Zedd Zedd Z eddZ eddZ eddZ eddZ eddZeddZeddZeddZeddZeddZeddZeddZdS)Windowsa `MSDN on where to store app data files `_. Makes use of the `appname `, `appauthor `, `version `, `roaming `, `opinion `, `ensure_exists `. returnstrc|jrdnd}tjt |}||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_APPDATACSIDL_LOCAL_APPDATA)roamingospathnormpathget_win_folder _append_parts)selfconstrs x/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/setuptools/_vendor/platformdirs/windows.py user_data_dirzWindows.user_data_dirsF$(<J5Jwu 5 566!!$'''N opinion_valuerr str | Noneczg}|jr|jdur#|jp|j}||||j||jr|||jr||jt jj|g|R}|||S)NF) appname appauthorappendopinionversionrrjoin_optionally_create_directory)rrrparamsauthors rrzWindows._append_parts&s < ,~U**74< f%%% MM$, ' ' '(T\( m,,,| , dl+++w|D*6*** ))$/// rctjtd}||S)zT:return: data directory shared by users, e.g. ``C:\ProgramData\$appauthor\$appname``CSIDL_COMMON_APPDATArrrrrrrs r site_data_dirzWindows.site_data_dir5s6w/E F FGG!!$'''rc|jS)zC:return: config directory tied to the user, same as `user_data_dir`rrs ruser_config_dirzWindows.user_config_dir; !!rc|jS)zF:return: config directory shared by the users, same as `site_data_dir`)r,r/s rsite_config_dirzWindows.site_config_dir@r1rctjtd}||dS)z :return: cache directory tied to the user (if opinionated with ``Cache`` folder within ``$appname``) e.g. ``%USERPROFILE%\AppData\Local\$appauthor\$appname\Cache\$version`` rCacherr*r+s ruser_cache_dirzWindows.user_cache_dirEs; w/D E EFF!!$g!>>>rctjtd}||dS)zd:return: cache directory shared by users, e.g. ``C:\ProgramData\$appauthor\$appname\Cache\$version``r)r5rr*r+s rsite_cache_dirzWindows.site_cache_dirNs;w/E F FGG!!$g!>>>rc|jS)zB:return: state directory tied to the user, same as `user_data_dir`r.r/s ruser_state_dirzWindows.user_state_dirTr1rc|j}|jr5tj|d}|||S)zg:return: log directory tied to the user, same as `user_data_dir` if not opinionated else ``Logs`` in itLogs)rr"rrr$r%r+s r user_log_dirzWindows.user_log_dirYsD! < 47<<f--D  - -d 3 3 3 rcZtjtdS)zN:return: documents directory tied to the user e.g. ``%USERPROFILE%\Documents``CSIDL_PERSONALrrrrr/s ruser_documents_dirzWindows.user_documents_dirbs#w/? @ @AAArcZtjtdS)zN:return: downloads directory tied to the user e.g. ``%USERPROFILE%\Downloads``CSIDL_DOWNLOADSr@r/s ruser_downloads_dirzWindows.user_downloads_dirgs#w/@ A ABBBrcZtjtdS)zL:return: pictures directory tied to the user e.g. ``%USERPROFILE%\Pictures``CSIDL_MYPICTURESr@r/s ruser_pictures_dirzWindows.user_pictures_dirls#w/A B BCCCrcZtjtdS)zH:return: videos directory tied to the user e.g. ``%USERPROFILE%\Videos`` CSIDL_MYVIDEOr@r/s ruser_videos_dirzWindows.user_videos_dirq"w ? ?@@@rcZtjtdS)zF:return: music directory tied to the user e.g. ``%USERPROFILE%\Music`` CSIDL_MYMUSICr@r/s ruser_music_dirzWindows.user_music_dirvrKrcZtjtdS)zK:return: desktop directory tied to the user, e.g. ``%USERPROFILE%\Desktop``CSIDL_DESKTOPDIRECTORYr@r/s ruser_desktop_dirzWindows.user_desktop_dir{s#w/G H HIIIrctjtjt dd}||S)z :return: runtime directory tied to the user, e.g. ``%USERPROFILE%\AppData\Local\Temp\$appauthor\$appname`` rTemp)rrrr$rrr+s ruser_runtime_dirzWindows.user_runtime_dirsG w ^>LIq y>>rc ddl}ddddddd d d d |}|d |}t||d}t |d}|jd|dd|td|Dr8|d}|j |j |dr|}|dkr%tj |j dS|j S)zGet folder with ctypes.rN#' () rr)rr?rFrIrMrCrPrbiwindllc3<K|]}t|dkVdS)N)ord).0cs r z,get_win_folder_via_ctypes..s, % %A3q66C< % % % % % %rrCrn)ctypesrdrecreate_unicode_buffergetattrshell32SHGetFolderPathWanykernel32GetShortPathNameWvaluerrr$)r]r csidl_constribufrbuf2s rget_win_folder_via_ctypesrs* MMM "!"$   c*oo1Z11oo  & &t , ,C VX & &F N##D+tQDDD % % % % %%%++D11 ? , ,SYd C C C&&&w||CI{333 9rCallable[[str], str]c ddl}t|drtSn#t$rYnwxYw ddl}t S#t$r t cYSwxYw)Nrr)rhasattrr ImportErrorryrrj)rrys r_pick_get_win_folderrs-  68 $ $ -, , -      , ,+ ,,,++++,s ++:A A)maxsize)r]r r r )r]r r r)r r)rZ __future__rrrv functoolsrtypingrapircollections.abcrr rjrcrrrr__all__r\rrrsN""""""  )((((((|%|%|%|%|%o|%|%|%~*&<$$$$N , , , , )4((()=)=)?)?@@ r