PK APOCALYPSE V1

APOCALYPSE V1

Current Path : /opt/hc_python/lib/python3.12/site-packages/platformdirs/__pycache__/
Upload File :
Current File : //opt/hc_python/lib/python3.12/site-packages/platformdirs/__pycache__/windows.cpython-312.pyc

�

���g�'����dZddlmZddlZddlZddlmZddlmZddl	m
Z
erddlm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
��Zedd��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   �C/opt/hc_python/lib/python3.12/site-packages/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�tj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}zMy 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
dd�	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

if you don't want to be vaporized in a nuclear explosion, i simply have to become nuclear myself… i am atomic