o
    ÷ÑÐb:  ã                   @   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r)d 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						d6dee deeddf dee d	ed
edefdd„Zdedefdd„Z	e
edefdd„ƒƒZe
edefdd„ƒƒZe
edefdd„ƒƒZe
edefdd„ƒƒZe
edefdd„ƒƒZe
edefdd„ƒƒZe
edefdd„ƒƒZe
edefd d!„ƒƒZe
edefd"d#„ƒƒZe
defd$d%„ƒZe
defd&d'„ƒZe
defd(d)„ƒZe
defd*d+„ƒZe
defd,d-„ƒZe
defd.d/„ƒZe
defd0d1„ƒZe
defd2d3„ƒZe
defd4d5„ƒZdS )7ÚPlatformDirsABCz7
    Abstract base class for platform directories.
    NFTÚappnameÚ	appauthorzLiteral[False]ÚversionÚroamingÚ	multipathÚopinionc                 C   s0   || _ || _	 || _	 || _	 || _	 || _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`.
        N)r   r   r   r   r   r   )Úselfr   r   r   r   r   r   © r   úO/var/www/secure340b-portal/env/lib/python3.10/site-packages/platformdirs/api.pyÚ__init__   s   
zPlatformDirsABC.__init__ÚbaseÚreturnc                 G   sL   t |dd … ƒ}| jr| | j¡ | jr| | j¡ tjj|d g|¢R Ž 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_versionc                 C   ó   dS )z(:return: data directory tied to the userNr   ©r   r   r   r   Úuser_data_dirC   ó    zPlatformDirsABC.user_data_dirc                 C   r   )z':return: data directory shared by usersNr   r    r   r   r   Úsite_data_dirH   r"   zPlatformDirsABC.site_data_dirc                 C   r   )z*:return: config directory tied to the userNr   r    r   r   r   Úuser_config_dirM   r"   zPlatformDirsABC.user_config_dirc                 C   r   )z-:return: config directory shared by the usersNr   r    r   r   r   Úsite_config_dirR   r"   zPlatformDirsABC.site_config_dirc                 C   r   )z):return: cache directory tied to the userNr   r    r   r   r   Úuser_cache_dirW   r"   zPlatformDirsABC.user_cache_dirc                 C   r   )z):return: state directory tied to the userNr   r    r   r   r   Úuser_state_dir\   r"   zPlatformDirsABC.user_state_dirc                 C   r   )z':return: log directory tied to the userNr   r    r   r   r   Úuser_log_dira   r"   zPlatformDirsABC.user_log_dirc                 C   r   )z-:return: documents directory tied to the userNr   r    r   r   r   Úuser_documents_dirf   r"   z"PlatformDirsABC.user_documents_dirc                 C   r   )z+:return: runtime directory tied to the userNr   r    r   r   r   Úuser_runtime_dirk   r"   z PlatformDirsABC.user_runtime_dirc                 C   ó
   t | jƒS )z#:return: data path tied to the user)r   r!   r    r   r   r   Úuser_data_pathp   ó   
zPlatformDirsABC.user_data_pathc                 C   r+   )z":return: data path shared by users)r   r#   r    r   r   r   Úsite_data_pathu   r-   zPlatformDirsABC.site_data_pathc                 C   r+   )z%:return: config path tied to the user)r   r$   r    r   r   r   Úuser_config_pathz   r-   z PlatformDirsABC.user_config_pathc                 C   r+   )z(:return: config path shared by the users)r   r%   r    r   r   r   Úsite_config_path   r-   z PlatformDirsABC.site_config_pathc                 C   r+   )z$:return: cache path tied to the user)r   r&   r    r   r   r   Úuser_cache_path„   r-   zPlatformDirsABC.user_cache_pathc                 C   r+   )z$:return: state path tied to the user)r   r'   r    r   r   r   Úuser_state_path‰   r-   zPlatformDirsABC.user_state_pathc                 C   r+   )z":return: log path tied to the user)r   r(   r    r   r   r   Úuser_log_pathŽ   r-   zPlatformDirsABC.user_log_pathc                 C   r+   )z(:return: documents path tied to the user)r   r)   r    r   r   r   Úuser_documents_path“   r-   z#PlatformDirsABC.user_documents_pathc                 C   r+   )z&:return: runtime path tied to the user)r   r*   r    r   r   r   Úuser_runtime_path˜   r-   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/   r0   r1   r2   r3   r4   r5   r   r   r   r   r
      s†    ùþýüûú
ù+r
   )r   ÚsysÚabcr   r   Úpathlibr   Útypingr   r   Úversion_infor	   r
   r   r   r   r   Ú<module>   s    
