o
    'ѹgW                     @  s  d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl	m
Z
 ddl	mZ er6dd	lmZ dd
lmZ ejdkrBddlmZ nejdkrNddlmZ nddlmZ dcddZer^eZne ZeZ					dddeddZ					dddfd!d"Z					ddded#d$Z					dddfd%d&Z				'	dgdhd)d*Z				'	dgdhd+d,Z 					ddded-d.Z!				'	dgdhd/d0Z"did1d2Z#did3d4Z$did5d6Z%did7d8Z&did9d:Z'did;d<Z(				'	dgdhd=d>Z)				'	dgdhd?d@Z*					dddjdBdCZ+					dddkdDdEZ,					dddjdFdGZ-					dddkdHdIZ.				'	dgdldJdKZ/				'	dgdldLdMZ0					dddjdNdOZ1				'	dgdldPdQZ2dmdRdSZ3dmdTdUZ4dmdVdWZ5dmdXdYZ6dmdZd[Z7dmd\d]Z8				'	dgdld^d_Z9				'	dgdld`daZ:g dbZ;dS )nz
Utilities for determining application-specific dirs.

See <https://github.com/platformdirs/platformdirs> for details and usage.

    )annotationsN)TYPE_CHECKING   )PlatformDirsABC)__version__)__version_tuple__)Path)Literalwin32)Windowsdarwin)MacOS)Unixreturntype[PlatformDirsABC]c                  C  s^   t ddkr-t ddkr-t dst drtS ddlm}  |  d ur-dd	lm} |S tS )
NZANDROID_DATAz/dataZANDROID_ROOTz/systemSHELLPREFIXr   )_android_folder)Android)osgetenv_ResultZplatformdirs.androidr   r   )r   r    r   Y/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/site-packages/platformdirs/__init__.py_set_platform_dir_class   s   
r   Fappname
str | None	appauthorstr | None | Literal[False]versionroamingboolensure_existsstrc                 C     t | ||||djS )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: data directory tied to the user
    r   r   r   r    r"   N)PlatformDirsuser_data_dirr%   r   r   r   r'   5      r'   	multipathc                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param multipath: See `roaming <platformdirs.api.PlatformDirsABC.multipath>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: data directory shared by users
    r   r   r   r)   r"   N)r&   site_data_dirr*   r   r   r   r+   M   r(   r+   c                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: config directory tied to the user
    r%   N)r&   user_config_dirr%   r   r   r   r,   e   r(   r,   c                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param multipath: See `roaming <platformdirs.api.PlatformDirsABC.multipath>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: config directory shared by the users
    r*   N)r&   site_config_dirr*   r   r   r   r-   }   r(   r-   Topinionc                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `roaming <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: cache directory tied to the user
    r   r   r   r.   r"   N)r&   user_cache_dirr/   r   r   r   r0      r(   r0   c                 C  r$   a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: cache directory tied to the user
    r/   N)r&   site_cache_dirr/   r   r   r   r2      r(   r2   c                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: state directory tied to the user
    r%   N)r&   user_state_dirr%   r   r   r   r3      r(   r3   c                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `roaming <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: log directory tied to the user
    r/   N)r&   user_log_dirr/   r   r   r   r4      r(   r4   c                   C     t  jS )z.:returns: documents directory tied to the userN)r&   user_documents_dirr   r   r   r   r6         r6   c                   C  r5   )z.:returns: downloads directory tied to the userN)r&   user_downloads_dirr   r   r   r   r8      r7   r8   c                   C  r5   )z-:returns: pictures directory tied to the userN)r&   user_pictures_dirr   r   r   r   r9      r7   r9   c                   C  r5   )z+:returns: videos directory tied to the userN)r&   user_videos_dirr   r   r   r   r:     r7   r:   c                   C  r5   )z*:returns: music directory tied to the userN)r&   user_music_dirr   r   r   r   r;   	  r7   r;   c                   C  r5   )z,:returns: desktop directory tied to the userN)r&   user_desktop_dirr   r   r   r   r<     r7   r<   c                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: runtime directory tied to the user
    r/   N)r&   user_runtime_dirr/   r   r   r   r=     r(   r=   c                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: runtime directory shared by users
    r/   N)r&   site_runtime_dirr/   r   r   r   r>   +  r(   r>   r   c                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: data path tied to the user
    r%   N)r&   user_data_pathr%   r   r   r   r?   C  r(   r?   c                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param multipath: See `multipath <platformdirs.api.PlatformDirsABC.multipath>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: data path shared by users
    r*   N)r&   site_data_pathr*   r   r   r   r@   [  r(   r@   c                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: config path tied to the user
    r%   N)r&   user_config_pathr%   r   r   r   rA   s  r(   rA   c                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param multipath: See `roaming <platformdirs.api.PlatformDirsABC.multipath>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: config path shared by the users
    r*   N)r&   site_config_pathr*   r   r   r   rB     r(   rB   c                 C  r$   r1   )r&   site_cache_pathr/   r   r   r   rC     r(   rC   c                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `roaming <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: cache path tied to the user
    r/   N)r&   user_cache_pathr/   r   r   r   rD     r(   rD   c                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: state path tied to the user
    r%   N)r&   user_state_pathr%   r   r   r   rE     r(   rE   c                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `roaming <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: log path tied to the user
    r/   N)r&   user_log_pathr/   r   r   r   rF     r(   rF   c                   C  r5   )z+:returns: documents a path tied to the userN)r&   user_documents_pathr   r   r   r   rG     r7   rG   c                   C  r5   )z):returns: downloads path tied to the userN)r&   user_downloads_pathr   r   r   r   rH     r7   rH   c                   C  r5   )z(:returns: pictures path tied to the userN)r&   user_pictures_pathr   r   r   r   rI     r7   rI   c                   C  r5   )z&:returns: videos path tied to the userN)r&   user_videos_pathr   r   r   r   rJ     r7   rJ   c                   C  r5   )z%:returns: music path tied to the userN)r&   user_music_pathr   r   r   r   rK     r7   rK   c                   C  r5   )z':returns: desktop path tied to the userN)r&   user_desktop_pathr   r   r   r   rL     r7   rL   c                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: runtime path tied to the user
    r/   N)r&   user_runtime_pathr/   r   r   r   rM   !  r(   rM   c                 C  r$   )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: runtime path shared by users
    r/   N)r&   site_runtime_pathr/   r   r   r   rN   9  r(   rN   )%AppDirsr&   r   r   __version_info__r2   rC   r-   rB   r+   r@   r>   rN   r0   rD   r,   rA   r'   r?   r<   rL   r6   rG   r8   rH   r4   rF   r;   rK   r9   rI   r=   rM   r3   rE   r:   rJ   )r   r   )NNNFF)r   r   r   r   r   r   r    r!   r"   r!   r   r#   )r   r   r   r   r   r   r)   r!   r"   r!   r   r#   )NNNTF)r   r   r   r   r   r   r.   r!   r"   r!   r   r#   )r   r#   )r   r   r   r   r   r   r    r!   r"   r!   r   r   )r   r   r   r   r   r   r)   r!   r"   r!   r   r   )r   r   r   r   r   r   r.   r!   r"   r!   r   r   )r   r   )<__doc__
__future__r   r   systypingr   apir   r   r   r   rP   pathlibr   r	   platformZplatformdirs.windowsr   r   Zplatformdirs.macosr   Zplatformdirs.unixr   r   r&   rO   r'   r+   r,   r-   r0   r2   r3   r4   r6   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   __all__r   r   r   r   <module>   s4   














