File: //usr/local/lib/python3.7/site-packages/pip/_vendor/platformdirs/__pycache__/api.cpython-37.pyc
B
L��g� � @ s� d Z ddlmZ ddlZddlmZmZ ddlmZ ddl m
Z
e
rpddlZejdkrdddl m
Z
nddlm
Z
G d d
� d
e�ZdS )z Base API.� )�annotationsN)�ABC�abstractmethod)�Path)�
TYPE_CHECKING)� � )�Literalc
@ s~ e Zd ZdZdMddddddddd �d
d�Zddd
�dd�Zddd�dd�Zeedd�dd���Z eedd�dd���Z
eedd�dd���Zeedd�dd���Zeedd�dd���Z
eedd�dd���Zeedd�d d!���Zeedd�d"d#���Zeedd�d$d%���Zeedd�d&d'���Zeedd�d(d)���Zeedd�d*d+���Zeedd�d,d-���Zeedd�d.d/���Zed0d�d1d2��Zed0d�d3d4��Zed0d�d5d6��Zed0d�d7d8��Zed0d�d9d:��Zed0d�d;d<��Zed0d�d=d>��Zed0d�d?d@��Zed0d�dAdB��Zed0d�dCdD��Z ed0d�dEdF��Z!ed0d�dGdH��Z"ed0d�dIdJ��Z#ed0d�dKdL��Z$dS )N�PlatformDirsABCz-Abstract base class for platform directories.NFTz
str | Nonezstr | None | Literal[False]�bool�None)�appname� appauthor�version�roaming� multipath�opinion�
ensure_exists�returnc C s. || _ || _|| _|| _|| _|| _|| _dS )aX
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`.
:param ensure_exists: See `ensure_exists`.
N)r
r r r r r r )�selfr
r r r r r r � r �@/tmp/pip-unpacked-wheel-hv55ucu3/pip/_vendor/platformdirs/api.py�__init__ s zPlatformDirsABC.__init__�str)�baser c G sX t |dd � �}| jr4|�| j� | jr4|�| j� tjj|d f|�� }| �|� |S )N� r )�listr
�appendr �os�path�join�_optionally_create_directory)r r �paramsr r r r �_append_app_name_and_versionG s
z,PlatformDirsABC._append_app_name_and_version)r r c C s | j rt|�jddd� d S )NT)�parents�exist_ok)r r �mkdir)r r r r r r! Q s z,PlatformDirsABC._optionally_create_directory)r c C s dS )z(:return: data directory tied to the userNr )r r r r �
user_data_dirU s zPlatformDirsABC.user_data_dirc C s dS )z':return: data directory shared by usersNr )r r r r �
site_data_dirZ s zPlatformDirsABC.site_data_dirc C s dS )z*:return: config directory tied to the userNr )r r r r �user_config_dir_ s zPlatformDirsABC.user_config_dirc C s dS )z-:return: config directory shared by the usersNr )r r r r �site_config_dird s zPlatformDirsABC.site_config_dirc C s dS )z):return: cache directory tied to the userNr )r r r r �user_cache_diri s zPlatformDirsABC.user_cache_dirc C s dS )z(:return: cache directory shared by usersNr )r r r r �site_cache_dirn s zPlatformDirsABC.site_cache_dirc C s dS )z):return: state directory tied to the userNr )r r r r �user_state_dirs s zPlatformDirsABC.user_state_dirc C s dS )z':return: log directory tied to the userNr )r r r r �user_log_dirx s zPlatformDirsABC.user_log_dirc C s dS )z-:return: documents directory tied to the userNr )r r r r �user_documents_dir} s z"PlatformDirsABC.user_documents_dirc C s dS )z-:return: downloads directory tied to the userNr )r r r r �user_downloads_dir� s z"PlatformDirsABC.user_downloads_dirc C s dS )z,:return: pictures directory tied to the userNr )r r r r �user_pictures_dir� s z!PlatformDirsABC.user_pictures_dirc C s dS )z*:return: videos directory tied to the userNr )r r r r �user_videos_dir� s zPlatformDirsABC.user_videos_dirc C s dS )z):return: music directory tied to the userNr )r r r r �user_music_dir� s zPlatformDirsABC.user_music_dirc C s dS )z+:return: runtime directory tied to the userNr )r r r r �user_runtime_dir� s z PlatformDirsABC.user_runtime_dirr c C s
t | j�S )z#:return: data path tied to the user)r r'