U
    ‹Ha  ã                   @   sf   d dl Z d dlZd dlmZmZ d dlmZ d dlmZm	Z	 ej
dkrRd dlmZ G dd„ deƒZdS )	é    N)ÚABCÚabstractmethod)ÚPath)ÚOptionalÚUnion)é   é   )ÚLiteralc                   @   sŒ  e Zd ZdZd-ee eeddf ee eeedœdd„Zeed	œd
d„Z	e
eedœdd„ƒƒZe
eedœdd„ƒƒZe
eedœdd„ƒƒZe
eedœdd„ƒƒZe
eedœdd„ƒƒZe
eedœdd„ƒƒZe
eedœdd„ƒƒZe
eedœdd„ƒƒZe
edœdd„ƒZe
edœdd „ƒZe
edœd!d"„ƒZe
edœd#d$„ƒZe
edœd%d&„ƒZe
edœd'd(„ƒZe
edœd)d*„ƒZe
edœd+d,„ƒZdS ).ÚPlatformDirsABCz7
    Abstract base class for platform directories.
    NFTzLiteral[False]©Ú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-_80f52p_/platformdirs/api.pyÚ__init__   s    zPlatformDirsABC.__init__)Ú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_dirC   s    zPlatformDirsABC.user_data_dirc                 C   s   dS )z':return: data directory shared by usersNr   r    r   r   r   Úsite_data_dirH   s    zPlatformDirsABC.site_data_dirc                 C   s   dS )z*:return: config directory tied to the userNr   r    r   r   r   Úuser_config_dirM   s    zPlatformDirsABC.user_config_dirc                 C   s   dS )z-:return: config directory shared by the usersNr   r    r   r   r   Úsite_config_dirR   s    zPlatformDirsABC.site_config_dirc                 C   s   dS )z):return: cache directory tied to the userNr   r    r   r   r   Úuser_cache_dirW   s    zPlatformDirsABC.user_cache_dirc                 C   s   dS )z):return: state directory tied to the userNr   r    r   r   r   Úuser_state_dir\   s    zPlatformDirsABC.user_state_dirc                 C   s   dS )z':return: log directory tied to the userNr   r    r   r   r   Úuser_log_dira   s    zPlatformDirsABC.user_log_dirc                 C   s   dS )z+:return: runtime directory tied to the userNr   r    r   r   r   Úuser_runtime_dirf   s    z PlatformDirsABC.user_runtime_dirc                 C   s
   t | jƒS )z#:return: data path tied to the user)r   r!   r    r   r   r   Úuser_data_pathk   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_pathp   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_pathu   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_pathz   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: 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: 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   Ústrr   Úboolr   r   Úpropertyr   r!   r"   r#   r$   r%   r&   r'   r(   r   r)   r*   r+   r,   r-   r.   r/   r0   r   r   r   r   r
      sp         ùù+r
   )r   ÚsysÚabcr   r   Úpathlibr   Útypingr   r   Úversion_infor	   r
   r   r   r   r   Ú<module>   s   
