XylotrechusZ
�
Œ�g=$ � �v � d Z ddlmZ ddlZddlmZmZ ddlmZ ddl m
Z
e
rddlmZ ddl m
Z
G d � d
e� Zy)z Base API.� )�annotationsN)�ABC�abstractmethod)�Path)�
TYPE_CHECKING)�Iterator)�Literalc �~ � e Zd ZdZ d/ d0d�Zd1d�Zd2d�Zd3d�Zee d4d�� � Z
ee d4d�� � Zee d4d �� � Zee d4d
�� � Z
ee d4d�� � Zee d4d�� � Zee d4d
�� � Zee d4d�� � Zee d4d�� � Zee d4d�� � Zee d4d�� � Zee d4d�� � Zee d4d�� � Zee d4d�� � Zee d4d�� � Zee d4d�� � Zed5d�� Zed5d�� Zed5d�� Zed5d�� Zed5d�� Zed5d�� Zed5d�� Z ed5d�� Z!ed5d�� Z"ed5d �� Z#ed5d!�� Z$ed5d"�� Z%ed5d#�� Z&ed5d$�� Z'ed5d%�� Z(ed5d&�� Z)d6d'�Z*d6d(�Z+d6d)�Z,d6d*�Z-d7d+�Z.d7d,�Z/d7d-�Z0d7d.�Z1y)8�PlatformDirsABCz-Abstract base class for platform directories.Nc �n � || _ || _ || _ || _ || _ || _ || _ y)aY
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)�appname� appauthor�version�roaming� multipath�opinion�
ensure_exists)�selfr
r r r r r r s �?/opt/hc_python/lib/python3.12/site-packages/platformdirs/api.py�__init__zPlatformDirsABC.__init__ sW � �, ���"��� � ��� � ��� � #��� � ���*��� � c �& � t |dd � }| j rB|j | j � | j r|j | j � t j
j |d g|��� }| j |� |S )N� r )�listr
�appendr �os�path�join�_optionally_create_directory)r �base�paramsr s r �_append_app_name_and_versionz,PlatformDirsABC._append_app_name_and_versionQ sm � ��d�1�2�h����<�<��M�M�$�,�,�'��|�|��
�
�d�l�l�+��w�w�|�|�D��G�-�f�-���)�)�$�/��r c �V � | j rt |� j dd�� y y )NT)�parents�exist_ok)r r �mkdir�r r s r r z,PlatformDirsABC._optionally_create_directory[ s'