
    KdJ                    |    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    rd dl
mZ  G d de          ZdS )	    )annotationsN)ABCabstractmethod)Path)      )Literalc                     e Zd ZdZ	 	 	 	 	 	 	 d,d-dZd.dZd/dZeed0d                        Z	eed0d                        Z
eed0d                        Zeed0d                        Zeed0d                        Zeed0d                        Zeed0d                        Zeed0d                        Zeed0d                        Zeed0d                         Zed1d"            Zed1d#            Zed1d$            Zed1d%            Zed1d&            Zed1d'            Zed1d(            Zed1d)            Zed1d*            Zed1d+            ZdS )2PlatformDirsABCz7
    Abstract base class for platform directories.
    NFTappname
str | None	appauthorstr | None | Literal[False]versionroamingbool	multipathopinionensure_existsc                p    || _         || _        	 || _        	 || _        	 || _        	 || _        || _        dS )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   s           BF:\djangOuth\env\Lib\site-packages\pip/_vendor/platformdirs/api.py__init__zPlatformDirsABC.__init__   s\    * "	 	 	
 #	 *	 	    basestrreturnc                   t          |dd                    }| j        r;|                    | j                   | j        r|                    | j                   t	          j        j        |d         g|R  }|                     |           |S )N   r   )listr   appendr   ospathjoin_optionally_create_directory)r   r   paramsr#   s       r   _append_app_name_and_versionz,PlatformDirsABC._append_app_name_and_versionC   s    d122h< 	,MM$,'''| ,dl+++w|DG-f---))$///r   r#   Nonec                `    | j         r&t          |                              dd           d S d S )NT)parentsexist_ok)r   r   mkdir)r   r#   s     r   r%   z,PlatformDirsABC._optionally_create_directoryM   s<     	:JJTD99999	: 	:r   c                    dS )z(:return: data directory tied to the userN r   s    r   user_data_dirzPlatformDirsABC.user_data_dirQ         r   c                    dS )z':return: data directory shared by usersNr.   r/   s    r   site_data_dirzPlatformDirsABC.site_data_dirV   r1   r   c                    dS )z*:return: config directory tied to the userNr.   r/   s    r   user_config_dirzPlatformDirsABC.user_config_dir[   r1   r   c                    dS )z-:return: config directory shared by the usersNr.   r/   s    r   site_config_dirzPlatformDirsABC.site_config_dir`   r1   r   c                    dS )z):return: cache directory tied to the userNr.   r/   s    r   user_cache_dirzPlatformDirsABC.user_cache_dire   r1   r   c                    dS )z(:return: cache directory shared by usersNr.   r/   s    r   site_cache_dirzPlatformDirsABC.site_cache_dirj   r1   r   c                    dS )z):return: state directory tied to the userNr.   r/   s    r   user_state_dirzPlatformDirsABC.user_state_diro   r1   r   c                    dS )z':return: log directory tied to the userNr.   r/   s    r   user_log_dirzPlatformDirsABC.user_log_dirt   r1   r   c                    dS )z-:return: documents directory tied to the userNr.   r/   s    r   user_documents_dirz"PlatformDirsABC.user_documents_diry   r1   r   c                    dS )z+:return: runtime directory tied to the userNr.   r/   s    r   user_runtime_dirz PlatformDirsABC.user_runtime_dir~   r1   r   r   c                *    t          | j                  S )z#:return: data path tied to the user)r   r0   r/   s    r   user_data_pathzPlatformDirsABC.user_data_path        D&'''r   c                *    t          | j                  S )z":return: data path shared by users)r   r3   r/   s    r   site_data_pathzPlatformDirsABC.site_data_path   rF   r   c                *    t          | j                  S )z%:return: config path tied to the user)r   r5   r/   s    r   user_config_pathz PlatformDirsABC.user_config_path        D()))r   c                *    t          | j                  S )z(:return: config path shared by the users)r   r7   r/   s    r   site_config_pathz PlatformDirsABC.site_config_path   rK   r   c                *    t          | j                  S )z$:return: cache path tied to the user)r   r9   r/   s    r   user_cache_pathzPlatformDirsABC.user_cache_path        D'(((r   c                *    t          | j                  S )z#:return: cache path shared by users)r   r;   r/   s    r   site_cache_pathzPlatformDirsABC.site_cache_path   rP   r   c                *    t          | j                  S )z$:return: state path tied to the user)r   r=   r/   s    r   user_state_pathzPlatformDirsABC.user_state_path   rP   r   c                *    t          | j                  S )z":return: log path tied to the user)r   r?   r/   s    r   user_log_pathzPlatformDirsABC.user_log_path   s     D%&&&r   c                *    t          | j                  S )z(:return: documents path tied to the user)r   rA   r/   s    r   user_documents_pathz#PlatformDirsABC.user_documents_path   s     D+,,,r   c                *    t          | j                  S )z&:return: runtime path tied to the user)r   rC   r/   s    r   user_runtime_pathz!PlatformDirsABC.user_runtime_path   s     D)***r   )NNNFFTF)r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   )r#   r   r   r(   )r   r   )r   r   )__name__
__module____qualname____doc__r   r'   r%   propertyr   r0   r3   r5   r7   r9   r;   r=   r?   rA   rC   rE   rH   rJ   rM   rO   rR   rT   rV   rX   rZ   r.   r   r   r   r      s[         #15"#0 0 0 0 0d   : : : : 7 7 7 ^ X7 6 6 6 ^ X6 9 9 9 ^ X9 < < < ^ X< 8 8 8 ^ X8 7 7 7 ^ X7 8 8 8 ^ X8 6 6 6 ^ X6 < < < ^ X< : : : ^ X: ( ( ( X( ( ( ( X( * * * X* * * * X* ) ) ) X) ) ) ) X) ) ) ) X) ' ' ' X' - - - X- + + + X+ + +r   r   )
__future__r   r"   sysabcr   r   pathlibr   version_infotypingr	   r   r.   r   r   <module>rf      s    " " " " " " 				 



 # # # # # # # #      vg+ g+ g+ g+ g+c g+ g+ g+ g+ g+r   