U
    5‰d>  ã                   @  sb   d dl mZ d dlZd dlZd dlmZmZ d dlmZ ej	dkrNd dl
mZ G dd„ deƒZdS )	é    )ÚannotationsN)ÚABCÚabstractmethod)ÚPath)é   é   )ÚLiteralc                   @  sÊ  e Zd ZdZd9dddddddœd	d
„Zdddœdd„Zeeddœdd„ƒƒZeeddœdd„ƒƒZ	eeddœdd„ƒƒZ
eeddœdd„ƒƒZeeddœdd„ƒƒZeeddœdd„ƒƒZeeddœdd„ƒƒZeeddœdd„ƒƒZeeddœd d!„ƒƒZeeddœd"d#„ƒƒZed$dœd%d&„ƒZed$dœd'd(„ƒZed$dœd)d*„ƒZed$dœd+d,„ƒZed$dœd-d.„ƒZed$dœd/d0„ƒZed$dœd1d2„ƒZed$dœd3d4„ƒZed$dœd5d6„ƒZed$dœd7d8„ƒZdS ):ÚPlatformDirsABCz7
    Abstract base class for platform directories.
    NFTz
str | Nonezstr | None | Literal[False]Úbool©ÚappnameÚ	appauthorÚversionÚroamingÚ	multipathÚopinionc                 C  s(   || _ || _|| _|| _|| _|| _dS )a%  
        Create a new platform directory.

        :param appname: See `appname`.
        :param appauthor: See `appauthor`.
        :param version: See `version`.
        :param roaming: See `roaming`.
        :param multipath: See `multipath`.
        :param opinion: See `opinion`.
        Nr   )Úselfr   r   r   r   r   r   © r   ú4/tmp/pip-unpacked-wheel-pxart73n/platformdirs/api.pyÚ__init__   s    zPlatformDirsABC.__init__Ústr)ÚbaseÚreturnc                 G  sJ   t |dd … ƒ}| jr4| | j¡ | jr4| | j¡ tjj|d f|žŽ S )Né   r   )Úlistr   Úappendr   ÚosÚpathÚjoin)r   r   Úparamsr   r   r   Ú_append_app_name_and_version<   s    z,PlatformDirsABC._append_app_name_and_version)r   c                 C  s   dS )z(:return: data directory tied to the userNr   ©r   r   r   r   Úuser_data_dirD   s    zPlatformDirsABC.user_data_dirc                 C  s   dS )z':return: data directory shared by usersNr   r!   r   r   r   Úsite_data_dirI   s    zPlatformDirsABC.site_data_dirc                 C  s   dS )z*:return: config directory tied to the userNr   r!   r   r   r   Úuser_config_dirN   s    zPlatformDirsABC.user_config_dirc                 C  s   dS )z-:return: config directory shared by the usersNr   r!   r   r   r   Úsite_config_dirS   s    zPlatformDirsABC.site_config_dirc                 C  s   dS )z):return: cache directory tied to the userNr   r!   r   r   r   Úuser_cache_dirX   s    zPlatformDirsABC.user_cache_dirc                 C  s   dS )z(:return: cache directory shared by usersNr   r!   r   r   r   Úsite_cache_dir]   s    zPlatformDirsABC.site_cache_dirc                 C  s   dS )z):return: state directory tied to the userNr   r!   r   r   r   Úuser_state_dirb   s    zPlatformDirsABC.user_state_dirc                 C  s   dS )z':return: log directory tied to the userNr   r!   r   r   r   Úuser_log_dirg   s    zPlatformDirsABC.user_log_dirc                 C  s   dS )z-:return: documents directory tied to the userNr   r!   r   r   r   Úuser_documents_dirl   s    z"PlatformDirsABC.user_documents_dirc                 C  s   dS )z+:return: runtime directory tied to the userNr   r!   r   r   r   Úuser_runtime_dirq   s    z PlatformDirsABC.user_runtime_dirr   c                 C  s
   t | jƒS )z#:return: data path tied to the user)r   r"   r!   r   r   r   Úuser_data_pathv   s    zPlatformDirsABC.user_data_pathc                 C  s
   t | jƒS )z":return: data path shared by users)r   r#   r!   r   r   r   Úsite_data_path{   s    zPlatformDirsABC.site_data_pathc                 C  s
   t | jƒS )z%:return: config path tied to the user)r   r$   r!   r   r   r   Úuser_config_path€   s    z PlatformDirsABC.user_config_pathc                 C  s
   t | jƒS )z(:return: config path shared by the users)r   r%   r!   r   r   r   Úsite_config_path…   s    z PlatformDirsABC.site_config_pathc                 C  s
   t | jƒS )z$:return: cache path tied to the user)r   r&   r!   r   r   r   Úuser_cache_pathŠ   s    zPlatformDirsABC.user_cache_pathc                 C  s
   t | jƒS )z#:return: cache path shared by users)r   r'   r!   r   r   r   Úsite_cache_path   s    zPlatformDirsABC.site_cache_pathc                 C  s
   t | jƒS )z$:return: state path tied to the user)r   r(   r!   r   r   r   Úuser_state_path”   s    zPlatformDirsABC.user_state_pathc                 C  s
   t | jƒS )z":return: log path tied to the user)r   r)   r!   r   r   r   Úuser_log_path™   s    zPlatformDirsABC.user_log_pathc                 C  s
   t | jƒS )z(:return: documents path tied to the user)r   r*   r!   r   r   r   Úuser_documents_pathž   s    z#PlatformDirsABC.user_documents_pathc                 C  s
   t | jƒS )z&:return: runtime path tied to the user)r   r+   r!   r   r   r   Úuser_runtime_path£   s    z!PlatformDirsABC.user_runtime_path)NNNFFT)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r    Úpropertyr   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r   r   r   r   r	      sv         ù+r	   )Ú
__future__r   r   ÚsysÚabcr   r   Úpathlibr   Úversion_infoÚtypingr   r	   r   r   r   r   Ú<module>   s   
