
    1i1                    ~    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dS )z	Base API.    )annotationsN)ABCabstractmethod)Path)TYPE_CHECKING)Iterator)Literalc                  $   e Zd ZdZ	 	 	 	 	 	 	 	 dUdVdZdWdZdXdZdYdZee	dZd                        Z
ee	dZd                        Zee	dZd                        Zee	dZd                        Zee	dZd                        Zee	dZd                         Zee	dZd!                        Zee	dZd"                        Zee	dZd#                        Zee	dZd$                        Zee	dZd%                        Zee	dZd&                        Zee	dZd'                        Zee	dZd(                        Zee	dZd)                        Zee	dZd*                        Zee	dZd+                        Zee	dZd,                        Zee	dZd-                        Zee	dZd.                        Zee	dZd/                        Zee	dZd0                        Zed[d1            Z ed[d2            Z!ed[d3            Z"ed[d4            Z#ed[d5            Z$ed[d6            Z%ed[d7            Z&ed[d8            Z'ed[d9            Z(ed[d:            Z)ed[d;            Z*ed[d<            Z+ed[d=            Z,ed[d>            Z-ed[d?            Z.ed[d@            Z/ed[dA            Z0ed[dB            Z1ed[dC            Z2ed[dD            Z3ed[dE            Z4ed[dF            Z5d\dHZ6d\dIZ7d\dJZ8d\dKZ9d\dLZ:d\dMZ;d]dOZ<d]dPZ=d]dQZ>d]dRZ?d]dSZ@d]dTZAdS )^PlatformDirsABCav  Abstract base class defining all platform directory properties, their :class:`~pathlib.Path` variants, and iterators.

    Platform-specific subclasses (e.g. :class:`~platformdirs.windows.Windows`, :class:`~platformdirs.macos.MacOS`,
    :class:`~platformdirs.unix.Unix`) implement the abstract properties to return the appropriate paths for each
    operating system.

    NFTappname
str | None	appauthorstr | Literal[False] | Noneversionroamingbool	multipathopinionensure_existsuse_site_for_rootreturnNonec	                    || _         || _        	 || _        	 || _        	 || _        	 || _        	 || _        	 || _        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`.
        :param ensure_exists: See `ensure_exists`.
        :param use_site_for_root: See `use_site_for_root`.

        N)r   r   r   r   r   r   r   r   )	selfr   r   r   r   r   r   r   r   s	            N/var/www/html/speakWrite/venv/lib/python3.11/site-packages/platformdirs/api.py__init__zPlatformDirsABC.__init__   sr    . "	
 	 	 #	 	 +	
 "3	 	    basestrc                   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_version`   s    d122h< 	,MM$,'''| ,dl+++w|DG-f---))$///r   r%   c                `    | 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_directoryj   s<     	:JJTD99999	: 	:r   	directoryr   c                x    | j         r%|                    t          j                  d         }t	          |          S )Nr   )r   	partitionr$   pathsepr   )r   r/   s     r    _first_item_as_path_if_multipathz0PlatformDirsABC._first_item_as_path_if_multipathn   s2    > 	;!++BJ77:IIr   c                    dS )z):returns: data directory tied to the userN r   s    r   user_data_dirzPlatformDirsABC.user_data_dirt         r   c                    dS )z(:returns: data directory shared by usersNr5   r6   s    r   site_data_dirzPlatformDirsABC.site_data_diry   r8   r   c                    dS )z+:returns: config directory tied to the userNr5   r6   s    r   user_config_dirzPlatformDirsABC.user_config_dir~   r8   r   c                    dS )z*:returns: config directory shared by usersNr5   r6   s    r   site_config_dirzPlatformDirsABC.site_config_dir   r8   r   c                    dS )z*:returns: cache directory tied to the userNr5   r6   s    r   user_cache_dirzPlatformDirsABC.user_cache_dir   r8   r   c                    dS )z):returns: cache directory shared by usersNr5   r6   s    r   site_cache_dirzPlatformDirsABC.site_cache_dir   r8   r   c                    dS )z*:returns: state directory tied to the userNr5   r6   s    r   user_state_dirzPlatformDirsABC.user_state_dir   r8   r   c                    dS )z):returns: state directory shared by usersNr5   r6   s    r   site_state_dirzPlatformDirsABC.site_state_dir   r8   r   c                    dS )z(:returns: log directory tied to the userNr5   r6   s    r   user_log_dirzPlatformDirsABC.user_log_dir   r8   r   c                    dS )z':returns: log directory shared by usersNr5   r6   s    r   site_log_dirzPlatformDirsABC.site_log_dir   r8   r   c                    dS )z.:returns: documents directory tied to the userNr5   r6   s    r   user_documents_dirz"PlatformDirsABC.user_documents_dir   r8   r   c                    dS )z.:returns: downloads directory tied to the userNr5   r6   s    r   user_downloads_dirz"PlatformDirsABC.user_downloads_dir   r8   r   c                    dS )z-:returns: pictures directory tied to the userNr5   r6   s    r   user_pictures_dirz!PlatformDirsABC.user_pictures_dir   r8   r   c                    dS )z+:returns: videos directory tied to the userNr5   r6   s    r   user_videos_dirzPlatformDirsABC.user_videos_dir   r8   r   c                    dS )z*:returns: music directory tied to the userNr5   r6   s    r   user_music_dirzPlatformDirsABC.user_music_dir   r8   r   c                    dS )z,:returns: desktop directory tied to the userNr5   r6   s    r   user_desktop_dirz PlatformDirsABC.user_desktop_dir   r8   r   c                    dS )z(:returns: bin directory tied to the userNr5   r6   s    r   user_bin_dirzPlatformDirsABC.user_bin_dir   r8   r   c                    dS )z':returns: bin directory shared by usersNr5   r6   s    r   site_bin_dirzPlatformDirsABC.site_bin_dir   r8   r   c                    dS )z1:returns: applications directory tied to the userNr5   r6   s    r   user_applications_dirz%PlatformDirsABC.user_applications_dir   r8   r   c                    dS )z0:returns: applications directory shared by usersNr5   r6   s    r   site_applications_dirz%PlatformDirsABC.site_applications_dir   r8   r   c                    dS )z,:returns: runtime directory tied to the userNr5   r6   s    r   user_runtime_dirz PlatformDirsABC.user_runtime_dir   r8   r   c                    dS )z+:returns: runtime directory shared by usersNr5   r6   s    r   site_runtime_dirz PlatformDirsABC.site_runtime_dir   r8   r   c                *    t          | j                  S )z$:returns: data path tied to the user)r   r7   r6   s    r   user_data_pathzPlatformDirsABC.user_data_path        D&'''r   c                *    t          | j                  S )z#:returns: data path shared by users)r   r:   r6   s    r   site_data_pathzPlatformDirsABC.site_data_path   re   r   c                *    t          | j                  S )z&:returns: config path tied to the user)r   r<   r6   s    r   user_config_pathz PlatformDirsABC.user_config_path        D()))r   c                *    t          | j                  S )z%:returns: config path shared by users)r   r>   r6   s    r   site_config_pathz PlatformDirsABC.site_config_path   rj   r   c                *    t          | j                  S )z%:returns: cache path tied to the user)r   r@   r6   s    r   user_cache_pathzPlatformDirsABC.user_cache_path        D'(((r   c                *    t          | j                  S )z$:returns: cache path shared by users)r   rB   r6   s    r   site_cache_pathzPlatformDirsABC.site_cache_path   ro   r   c                *    t          | j                  S )z%:returns: state path tied to the user)r   rD   r6   s    r   user_state_pathzPlatformDirsABC.user_state_path   ro   r   c                *    t          | j                  S )z$:returns: state path shared by users)r   rF   r6   s    r   site_state_pathzPlatformDirsABC.site_state_path  ro   r   c                *    t          | j                  S )z#:returns: log path tied to the user)r   rH   r6   s    r   user_log_pathzPlatformDirsABC.user_log_path
       D%&&&r   c                *    t          | j                  S )z":returns: log path shared by users)r   rJ   r6   s    r   site_log_pathzPlatformDirsABC.site_log_path  rx   r   c                *    t          | j                  S )z):returns: documents path tied to the user)r   rL   r6   s    r   user_documents_pathz#PlatformDirsABC.user_documents_path       D+,,,r   c                *    t          | j                  S )z):returns: downloads path tied to the user)r   rN   r6   s    r   user_downloads_pathz#PlatformDirsABC.user_downloads_path  r}   r   c                *    t          | j                  S )z(:returns: pictures path tied to the user)r   rP   r6   s    r   user_pictures_pathz"PlatformDirsABC.user_pictures_path  s     D*+++r   c                *    t          | j                  S )z&:returns: videos path tied to the user)r   rR   r6   s    r   user_videos_pathz PlatformDirsABC.user_videos_path#  rj   r   c                *    t          | j                  S )z%:returns: music path tied to the user)r   rT   r6   s    r   user_music_pathzPlatformDirsABC.user_music_path(  ro   r   c                *    t          | j                  S )z':returns: desktop path tied to the user)r   rV   r6   s    r   user_desktop_pathz!PlatformDirsABC.user_desktop_path-       D)***r   c                *    t          | j                  S )z#:returns: bin path tied to the user)r   rX   r6   s    r   user_bin_pathzPlatformDirsABC.user_bin_path2  rx   r   c                *    t          | j                  S )z":returns: bin path shared by users)r   rZ   r6   s    r   site_bin_pathzPlatformDirsABC.site_bin_path7  rx   r   c                *    t          | j                  S )z,:returns: applications path tied to the user)r   r\   r6   s    r   user_applications_pathz&PlatformDirsABC.user_applications_path<       D.///r   c                *    t          | j                  S )z+:returns: applications path shared by users)r   r^   r6   s    r   site_applications_pathz&PlatformDirsABC.site_applications_pathA  r   r   c                *    t          | j                  S )z':returns: runtime path tied to the user)r   r`   r6   s    r   user_runtime_pathz!PlatformDirsABC.user_runtime_pathF  r   r   c                *    t          | j                  S )z&:returns: runtime path shared by users)r   rb   r6   s    r   site_runtime_pathz!PlatformDirsABC.site_runtime_pathK  r   r   Iterator[str]c              #  .   K   | j         V  | j        V  dS )z4:yield: all user and site configuration directories.N)r<   r>   r6   s    r   iter_config_dirsz PlatformDirsABC.iter_config_dirsP  s*      """"""""""r   c              #  .   K   | j         V  | j        V  dS )z+:yield: all user and site data directories.N)r7   r:   r6   s    r   iter_data_dirszPlatformDirsABC.iter_data_dirsU  s*                r   c              #  .   K   | j         V  | j        V  dS )z,:yield: all user and site cache directories.N)r@   rB   r6   s    r   iter_cache_dirszPlatformDirsABC.iter_cache_dirsZ  *      !!!!!!!!!!r   c              #  .   K   | j         V  | j        V  dS )z,:yield: all user and site state directories.N)rD   rF   r6   s    r   iter_state_dirszPlatformDirsABC.iter_state_dirs_  r   r   c              #  .   K   | j         V  | j        V  dS )z*:yield: all user and site log directories.N)rH   rJ   r6   s    r   iter_log_dirszPlatformDirsABC.iter_log_dirsd  s*      r   c              #  .   K   | j         V  | j        V  dS )z.:yield: all user and site runtime directories.N)r`   rb   r6   s    r   iter_runtime_dirsz!PlatformDirsABC.iter_runtime_dirsi  s*      ##########r   Iterator[Path]c              #  Z   K   |                                  D ]}t          |          V  dS )z.:yield: all user and site configuration paths.N)r   r   r.   s     r   iter_config_pathsz!PlatformDirsABC.iter_config_pathsn  s@      ))++ 	 	Dt**	 	r   c              #  Z   K   |                                  D ]}t          |          V  dS )z%:yield: all user and site data paths.N)r   r   r.   s     r   iter_data_pathszPlatformDirsABC.iter_data_pathss  s@      '')) 	 	Dt**	 	r   c              #  Z   K   |                                  D ]}t          |          V  dS )z&:yield: all user and site cache paths.N)r   r   r.   s     r   iter_cache_pathsz PlatformDirsABC.iter_cache_pathsx  @      ((** 	 	Dt**	 	r   c              #  Z   K   |                                  D ]}t          |          V  dS )z&:yield: all user and site state paths.N)r   r   r.   s     r   iter_state_pathsz PlatformDirsABC.iter_state_paths}  r   r   c              #  Z   K   |                                  D ]}t          |          V  dS )z$:yield: all user and site log paths.N)r   r   r.   s     r   iter_log_pathszPlatformDirsABC.iter_log_paths  s@      &&(( 	 	Dt**	 	r   c              #  Z   K   |                                  D ]}t          |          V  dS )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   )NNNFFTFF)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   )r/   r   r   r   )r   r   )r   r   )r   r   )r   r   )B__name__
__module____qualname____doc__r   r)   r'   r3   propertyr   r7   r:   r<   r>   r@   rB   rD   rF   rH   rJ   rL   rN   rP   rR   rT   rV   rX   rZ   r\   r^   r`   rb   rd   rg   ri   rl   rn   rq   rs   ru   rw   rz   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r5   r   r   r   r      s         #15"#"'F F F F FP   : : : :    8 8 8 ^ X8 7 7 7 ^ X7 : : : ^ X: 9 9 9 ^ X9 9 9 9 ^ X9 8 8 8 ^ X8 9 9 9 ^ X9 8 8 8 ^ X8 7 7 7 ^ X7 6 6 6 ^ X6 = = = ^ X= = = = ^ X= < < < ^ X< : : : ^ X: 9 9 9 ^ X9 ; ; ; ^ X; 7 7 7 ^ X7 6 6 6 ^ X6 @ @ @ ^ X@ ? ? ? ^ X? ; ; ; ^ X; : : : ^ X: ( ( ( X( ( ( ( X( * * * X* * * * X* ) ) ) X) ) ) ) X) ) ) ) X) ) ) ) X) ' ' ' X' ' ' ' X' - - - X- - - - X- , , , X, * * * X* ) ) ) X) + + + X+ ' ' ' X' ' ' ' X' 0 0 0 X0 0 0 0 X0 + + + X+ + + + X+# # # #
! ! ! !
" " " "
" " " "
       
$ $ $ $
   
   
   
   
   
     r   r   )r   
__future__r   r$   abcr   r   pathlibr   typingr   collections.abcr   r	   r   r5   r   r   <module>r      s     " " " " " " 				 # # # # # # # #                   (((((({ { { { {c { { { { {r   