B
    Khh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rdd	lmZ ejd
krxddlmZ nddlmZ ddddZe ZeZd_dddddddddZd`dddddddddZdadddddddddZdbdddddddddZdcddddddd d!d"Zddddddddd d#d$Zdedddddddd%d&Zdfddddddd d'd(Zddd)d*Zddd+d,Zddd-d.Zddd/d0Z ddd1d2Z!ddd3d4Z"dgddddddd d5d6Z#dhddddddd d7d8Z$didddddd9dd:d;Z%djdddddd9dd<d=Z&dkdddddd9dd>d?Z'dldddddd9dd@dAZ(dmdddddd9d dBdCZ)dndddddd9d dDdEZ*dodddddd9ddFdGZ+dpdddddd9d dHdIZ,d9ddJdKZ-d9ddLdMZ.d9ddNdOZ/d9ddPdQZ0d9ddRdSZ1d9ddTdUZ2dqdddddd9d dVdWZ3drdddddd9d dXdYZ4dZd[d\d]d^ddd"d&d(d*d,d.d0d2d4d6ddd$d8d;d?dEdGdIdKdMdOdQdSdUdWd=dAdCdYg%Z5dS )sz
Utilities for determining application-specific dirs. See <https://github.com/platformdirs/platformdirs> for details and
usage.
    )annotationsN)TYPE_CHECKING   )PlatformDirsABC)__version__)__version_tuple__)Path)      )Literalztype[PlatformDirsABC])returnc              C  s   t jdkrddlm}  n$t jdkr0ddlm}  nddlm}  t	ddkrt	d	d
krt	dslt	drp| S ddl
m} | d k	rddl
m} |S | S )Nwin32r   )Windowsdarwin)MacOS)UnixZANDROID_DATAz/dataZANDROID_ROOTz/systemSHELLPREFIX)_android_folder)Android)sysplatformZplatformdirs.windowsr   Zplatformdirs.macosr   Zplatformdirs.unixr   osgetenvZplatformdirs.androidr   r   )ZResultr   r    r   ?/tmp/pip-install-vv81h98y/platformdirs/platformdirs/__init__.py_set_platform_dir_class   s    


r   Fz
str | Nonezstr | None | Literal[False]boolstr)appname	appauthorversionroamingensure_existsr   c             C  s   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#   )PlatformDirsuser_data_dir)r   r    r!   r"   r#   r   r   r   r%   2   s    r%   )r   r    r!   	multipathr#   r   c             C  s   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 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#   )r$   site_data_dir)r   r    r!   r&   r#   r   r   r   r'   J   s    r'   c             C  s   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: config directory tied to the user
    )r   r    r!   r"   r#   )r$   user_config_dir)r   r    r!   r"   r#   r   r   r   r(   b   s    r(   c             C  s   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 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   r    r!   r&   r#   )r$   site_config_dir)r   r    r!   r&   r#   r   r   r   r)   z   s    r)   T)r   r    r!   opinionr#   r   c             C  s   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 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#   )r$   user_cache_dir)r   r    r!   r*   r#   r   r   r   r+      s    r+   c             C  s   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 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   r    r!   r*   r#   )r$   site_cache_dir)r   r    r!   r*   r#   r   r   r   r,      s    r,   c             C  s   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: state directory tied to the user
    )r   r    r!   r"   r#   )r$   user_state_dir)r   r    r!   r"   r#   r   r   r   r-      s    r-   c             C  s   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 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   r    r!   r*   r#   )r$   user_log_dir)r   r    r!   r*   r#   r   r   r   r.      s    r.   c               C  s   t  jS )z.:returns: documents directory tied to the user)r$   user_documents_dirr   r   r   r   r/      s    r/   c               C  s   t  jS )z.:returns: downloads directory tied to the user)r$   user_downloads_dirr   r   r   r   r0      s    r0   c               C  s   t  jS )z-:returns: pictures directory tied to the user)r$   user_pictures_dirr   r   r   r   r1      s    r1   c               C  s   t  jS )z+:returns: videos directory tied to the user)r$   user_videos_dirr   r   r   r   r2     s    r2   c               C  s   t  jS )z*:returns: music directory tied to the user)r$   user_music_dirr   r   r   r   r3     s    r3   c               C  s   t  jS )z,:returns: desktop directory tied to the user)r$   user_desktop_dirr   r   r   r   r4     s    r4   c             C  s   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 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   r    r!   r*   r#   )r$   user_runtime_dir)r   r    r!   r*   r#   r   r   r   r5     s    r5   c             C  s   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 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   r    r!   r*   r#   )r$   site_runtime_dir)r   r    r!   r*   r#   r   r   r   r6   (  s    r6   r   c             C  s   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 path tied to the user
    )r   r    r!   r"   r#   )r$   user_data_path)r   r    r!   r"   r#   r   r   r   r7   @  s    r7   c             C  s   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 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   r    r!   r&   r#   )r$   site_data_path)r   r    r!   r&   r#   r   r   r   r8   X  s    r8   c             C  s   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: config path tied to the user
    )r   r    r!   r"   r#   )r$   user_config_path)r   r    r!   r"   r#   r   r   r   r9   p  s    r9   c             C  s   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 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   r    r!   r&   r#   )r$   site_config_path)r   r    r!   r&   r#   r   r   r   r:     s    r:   c             C  s   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 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   r    r!   r*   r#   )r$   site_cache_path)r   r    r!   r*   r#   r   r   r   r;     s    r;   c             C  s   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 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   r    r!   r*   r#   )r$   user_cache_path)r   r    r!   r*   r#   r   r   r   r<     s    r<   c             C  s   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: state path tied to the user
    )r   r    r!   r"   r#   )r$   user_state_path)r   r    r!   r"   r#   r   r   r   r=     s    r=   c             C  s   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 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   r    r!   r*   r#   )r$   user_log_path)r   r    r!   r*   r#   r   r   r   r>     s    r>   c               C  s   t  jS )z):returns: documents path tied to the user)r$   user_documents_pathr   r   r   r   r?      s    r?   c               C  s   t  jS )z):returns: downloads path tied to the user)r$   user_downloads_pathr   r   r   r   r@     s    r@   c               C  s   t  jS )z(:returns: pictures path tied to the user)r$   user_pictures_pathr   r   r   r   rA   
  s    rA   c               C  s   t  jS )z&:returns: videos path tied to the user)r$   user_videos_pathr   r   r   r   rB     s    rB   c               C  s   t  jS )z%:returns: music path tied to the user)r$   user_music_pathr   r   r   r   rC     s    rC   c               C  s   t  jS )z':returns: desktop path tied to the user)r$   user_desktop_pathr   r   r   r   rD     s    rD   c             C  s   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 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   r    r!   r*   r#   )r$   user_runtime_path)r   r    r!   r*   r#   r   r   r   rE     s    rE   c             C  s   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 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   r    r!   r*   r#   )r$   site_runtime_path)r   r    r!   r*   r#   r   r   r   rF   6  s    rF   r   __version_info__r$   AppDirsr   )NNNFF)NNNFF)NNNFF)NNNFF)NNNTF)NNNTF)NNNFF)NNNTF)NNNTF)NNNTF)NNNFF)NNNFF)NNNFF)NNNFF)NNNTF)NNNTF)NNNFF)NNNTF)NNNTF)NNNTF)6__doc__
__future__r   r   r   typingr   apir   r!   r   r   rG   Zpathlibr   version_infor   Ztyping_extensionsr   r$   rH   r%   r'   r(   r)   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   __all__r   r   r   r   <module>   sH  
                                                                                