
    )h=$                    v    d Z ddlmZ ddlZddlmZmZ ddlmZ ddl	m
Z
 e
rddlmZ ddl	mZ  G d	 d
e      Zy)z	Base API.    )annotationsN)ABCabstractmethod)Path)TYPE_CHECKING)Iterator)Literalc                  ~   e Zd ZdZ	 	 	 	 	 	 	 d/	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d0dZd1dZd2dZd3dZee	d4d              Z
ee	d4d              Zee	d4d	              Zee	d4d
              Zee	d4d              Zee	d4d              Zee	d4d              Zee	d4d              Zee	d4d              Zee	d4d              Zee	d4d              Zee	d4d              Zee	d4d              Zee	d4d              Zee	d4d              Zee	d4d              Zed5d       Zed5d       Zed5d       Zed5d       Zed5d       Zed5d       Zed5d       Z ed5d       Z!ed5d       Z"ed5d        Z#ed5d!       Z$ed5d"       Z%ed5d#       Z&ed5d$       Z'ed5d%       Z(ed5d&       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           O/var/www/html/venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/api.py__init__zPlatformDirsABC.__init__   sW    , "	 	 	 #	 *	    c                &   t        |dd        }| 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    d12h<<MM$,,'||dll+ww||DG-f-))$/r   c                V    | j                   rt        |      j                  dd       y y )NT)parentsexist_ok)r   r   mkdirr   r   s     r   r   z,PlatformDirsABC._optionally_create_directory[   s'    JTD9 r   c                t    | j                   r"|j                  t        j                        d   }t	        |      S )Nr   )r   splitr   pathsepr   )r   	directorys     r    _first_item_as_path_if_multipathz0PlatformDirsABC._first_item_as_path_if_multipath_   s*    >>!

3A6IIr   c                     y)z(:return: data directory tied to the userN r   s    r   user_data_dirzPlatformDirsABC.user_data_dire       r   c                     y)z':return: data directory shared by usersNr.   r/   s    r   site_data_dirzPlatformDirsABC.site_data_dirj   r1   r   c                     y)z*:return: config directory tied to the userNr.   r/   s    r   user_config_dirzPlatformDirsABC.user_config_diro   r1   r   c                     y)z-:return: config directory shared by the usersNr.   r/   s    r   site_config_dirzPlatformDirsABC.site_config_dirt   r1   r   c                     y)z):return: cache directory tied to the userNr.   r/   s    r   user_cache_dirzPlatformDirsABC.user_cache_diry   r1   r   c                     y)z(:return: cache directory shared by usersNr.   r/   s    r   site_cache_dirzPlatformDirsABC.site_cache_dir~   r1   r   c                     y)z):return: state directory tied to the userNr.   r/   s    r   user_state_dirzPlatformDirsABC.user_state_dir   r1   r   c                     y)z':return: log directory tied to the userNr.   r/   s    r   user_log_dirzPlatformDirsABC.user_log_dir   r1   r   c                     y)z-:return: documents directory tied to the userNr.   r/   s    r   user_documents_dirz"PlatformDirsABC.user_documents_dir   r1   r   c                     y)z-:return: downloads directory tied to the userNr.   r/   s    r   user_downloads_dirz"PlatformDirsABC.user_downloads_dir   r1   r   c                     y)z,:return: pictures directory tied to the userNr.   r/   s    r   user_pictures_dirz!PlatformDirsABC.user_pictures_dir   r1   r   c                     y)z*:return: videos directory tied to the userNr.   r/   s    r   user_videos_dirzPlatformDirsABC.user_videos_dir   r1   r   c                     y)z):return: music directory tied to the userNr.   r/   s    r   user_music_dirzPlatformDirsABC.user_music_dir   r1   r   c                     y)z+:return: desktop directory tied to the userNr.   r/   s    r   user_desktop_dirz PlatformDirsABC.user_desktop_dir   r1   r   c                     y)z+:return: runtime directory tied to the userNr.   r/   s    r   user_runtime_dirz PlatformDirsABC.user_runtime_dir   r1   r   c                     y)z*:return: runtime directory shared by usersNr.   r/   s    r   site_runtime_dirz PlatformDirsABC.site_runtime_dir   r1   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   rR   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   rW   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   r\   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   r\   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 a path tied to the user)r   rA   r/   s    r   user_documents_pathz#PlatformDirsABC.user_documents_path        D++,,r   c                ,    t        | j                        S )z(:return: downloads path tied to the user)r   rC   r/   s    r   user_downloads_pathz#PlatformDirsABC.user_downloads_path   re   r   c                ,    t        | j                        S )z':return: pictures path tied to the user)r   rE   r/   s    r   user_pictures_pathz"PlatformDirsABC.user_pictures_path   s     D**++r   c                ,    t        | j                        S )z%:return: videos path tied to the user)r   rG   r/   s    r   user_videos_pathz PlatformDirsABC.user_videos_path   rW   r   c                ,    t        | j                        S )z$:return: music path tied to the user)r   rI   r/   s    r   user_music_pathzPlatformDirsABC.user_music_path   r\   r   c                ,    t        | j                        S )z&:return: desktop path tied to the user)r   rK   r/   s    r   user_desktop_pathz!PlatformDirsABC.user_desktop_path        D))**r   c                ,    t        | j                        S )z&:return: runtime path tied to the user)r   rM   r/   s    r   user_runtime_pathz!PlatformDirsABC.user_runtime_path   rp   r   c                ,    t        | j                        S )z%:return: runtime path shared by users)r   rO   r/   s    r   site_runtime_pathz!PlatformDirsABC.site_runtime_path   rp   r   c              #  D   K   | j                    | j                   yw)z4:yield: all user and site configuration directories.N)r5   r7   r/   s    r   iter_config_dirsz PlatformDirsABC.iter_config_dirs  s     """"""    c              #  D   K   | j                    | j                   yw)z+:yield: all user and site data directories.N)r0   r3   r/   s    r   iter_data_dirszPlatformDirsABC.iter_data_dirs
  s           rw   c              #  D   K   | j                    | j                   yw)z,:yield: all user and site cache directories.N)r9   r;   r/   s    r   iter_cache_dirszPlatformDirsABC.iter_cache_dirs  s     !!!!!!rw   c              #  D   K   | j                    | j                   yw)z.:yield: all user and site runtime directories.N)rM   rO   r/   s    r   iter_runtime_dirsz!PlatformDirsABC.iter_runtime_dirs  s     ######rw   c              #  P   K   | j                         D ]  }t        |        yw)z.:yield: all user and site configuration paths.N)rv   r   r'   s     r   iter_config_pathsz!PlatformDirsABC.iter_config_paths  s(     ))+ 	Dt*	   $&c              #  P   K   | j                         D ]  }t        |        yw)z%:yield: all user and site data paths.N)ry   r   r'   s     r   iter_data_pathszPlatformDirsABC.iter_data_paths  s(     '') 	Dt*	r   c              #  P   K   | j                         D ]  }t        |        yw)z&:yield: all user and site cache paths.N)r{   r   r'   s     r   iter_cache_pathsz PlatformDirsABC.iter_cache_paths#  s(     ((* 	Dt*	r   c              #  P   K   | j                         D ]  }t        |        yw)z(:yield: all user and site runtime paths.N)r}   r   r'   s     r   iter_runtime_pathsz"PlatformDirsABC.iter_runtime_paths(  s(     **, 	Dt*	r   )NNNFFTF)r   
str | Noner   zstr | Literal[False] | Noner   r   r   boolr   r   r   r   r   r   returnNone)r    strr   r   )r   r   r   r   )r+   r   r   r   )r   r   )r   r   )r   zIterator[str])r   zIterator[Path])2__name__
__module____qualname____doc__r   r"   r   r,   propertyr   r0   r3   r5   r7   r9   r;   r=   r?   rA   rC   rE   rG   rI   rK   rM   rO   rQ   rT   rV   rY   r[   r^   r`   rb   rd   rg   ri   rk   rm   ro   rr   rt   rv   ry   r{   r}   r   r   r   r   r.   r   r   r   r      s   7 #15"#== /= 	=
 = = = = 
=~: 7  7 6  6 9  9 <  < 8  8 7  7 8  8 6  6 <  < <  < ;  ; 9  9 8  8 :  : :  : 9  9 ( ( ( ( * * * * ) ) ) ) ) ) ' ' - - - - , , * * ) ) + + + + + +#
!
"
$



r   r   )r   
__future__r   r   abcr   r   pathlibr   typingr   collections.abcr   r	   r   r.   r   r   <module>r      s.     " 	 #   (\c \r   