ReddlZddlZddlmZddlmZmZddlmZGddeZ de d e fd Z de d e fd Z de d e fd Z d ee ge ffd ZedeZdgZdS)N) lru_cache)CallableOptional)PlatformDirsABCc4eZdZdZedefdZdddedeedefdZedefd Z edefd Z edefd Z edefd Z edefd Z edefdZedefdZedefdZdS)Windowsa`MSDN on where to store app data files `_. Makes use of the `appname `, `appauthor `, `version `, `roaming `, `opinion `.returnc|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 /builddir/build/BUILDROOT/alt-python311-pip-21.3.1-3.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_vendor/platformdirs/windows.py user_data_dirzWindows.user_data_dirsF$(<J5Jwu 5 566!!$'''N opinion_valuerrcLg}|jr|jdur#|jp|j}||||j||jr|||jr||jt jj|g|RS)NF)appname appauthorappendopinionversionrrjoin)rrrparamsauthors rrzWindows._append_partss < ,~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_dir+s6w/E F FGG!!$'''rc|jS)zC:return: config directory tied to the user, same as `user_data_dir`rrs ruser_config_dirzWindows.user_config_dir1 !!rc|jS)zF:return: config directory shared by the users, same as `site_data_dir`)r(r+s rsite_config_dirzWindows.site_config_dir6r-rctjtd}||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`` r Cacherr&r's ruser_cache_dirzWindows.user_cache_dir;s; w/D E EFF!!$g!>>>rc|jS)zB:return: state directory tied to the user, same as `user_data_dir`r*r+s ruser_state_dirzWindows.user_state_dirDr-rcb|j}|jr tj|d}|S)zy :return: log directory tied to the user, same as `user_data_dir` if not opinionated else ``Logs`` in it Logs)rrrrr!r's r user_log_dirzWindows.user_log_dirIs0 ! < .7<<f--D rcZtjtdS)z` :return: documents directory tied to the user e.g. ``%USERPROFILE%\Documents`` CSIDL_PERSONAL)rrrrr+s ruser_documents_dirzWindows.user_documents_dirSs# w/? @ @AAArctjtjt dd}||S)z :return: runtime directory tied to the user, e.g. ``%USERPROFILE%\AppData\Local\Temp\$appauthor\$appname`` r Temp)rrrr!rrr's ruser_runtime_dirzWindows.user_runtime_dirZsG w ^>LIq y>>rcddddd|}|td|tjd}t td }|jd|dd |td |Dr7tjd}|j |j |dr|}|j S) zGet folder with ctypes.#rVNrLiwindllrc3<K|]}t|dkVdS)N)ord).0cs r z,get_win_folder_via_ctypes..s, % %A3q66C< % % % % % %r) rNrOctypescreate_unicode_buffergetattrshell32SHGetFolderPathWanykernel32GetShortPathNameWvalue)rE csidl_constbufrebuf2s rget_win_folder_via_ctypesrxs "!   c*oo  < <<===  &t , ,C VX & &F N##D+tQDDD % % % % %%%+D11 ? , ,SYd C C C 9rcttdrtS ddl}tS#t $r t cYSwxYw)Nrer)hasattrrlrxrWr_ ImportErrorrR)rWs r_pick_get_win_folderr|sYvx  )((, ,+ ,,,++++,s )==)maxsize)rlr functoolsrtypingrrapirr rCrRr_rxr|r__all__rDrrrsJ %%%%%%%% X(X(X(X(X(oX(X(X(vSS$SS.##0,hucz2,,,,)4((()=)=)?)?@@ r