
    dW                       d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl	m
Z
 ddl	mZ erdd	lmZ ej        d
k    rddlmZ nddlmZ d>dZ e            ZeZ	 	 	 	 	 d?d@dZ	 	 	 	 	 d?dAdZ	 	 	 	 	 d?d@dZ	 	 	 	 	 d?dAdZ	 	 	 	 	 dBdCd Z	 	 	 	 	 dBdCd!Z	 	 	 	 	 d?d@d"Z	 	 	 	 	 dBdCd#ZdDd$ZdDd%ZdDd&ZdDd'Z dDd(Z!dDd)Z"	 	 	 	 	 dBdCd*Z#	 	 	 	 	 dBdCd+Z$	 	 	 	 	 d?dEd-Z%	 	 	 	 	 d?dFd.Z&	 	 	 	 	 d?dEd/Z'	 	 	 	 	 d?dFd0Z(	 	 	 	 	 dBdGd1Z)	 	 	 	 	 dBdGd2Z*	 	 	 	 	 d?dEd3Z+	 	 	 	 	 dBdGd4Z,dHd5Z-dHd6Z.dHd7Z/dHd8Z0dHd9Z1dHd:Z2	 	 	 	 	 dBdGd;Z3	 	 	 	 	 dBdGd<Z4g d=Z5dS )Iz
Utilities for determining application-specific dirs. See <https://github.com/platformdirs/platformdirs> for details and
usage.
    )annotationsN)TYPE_CHECKING   )PlatformDirsABC)__version__)__version_tuple__)Path)      )Literalreturntype[PlatformDirsABC]c                 R   t           j        dk    rddlm}  nt           j        dk    rddlm}  nddlm}  t          j	        d          dk    rZt          j	        d	          d
k    rBt          j	        d          st          j	        d          r| S ddl
m}  |            ddl
m} |S | S )Nwin32r   )Windowsdarwin)MacOS)UnixANDROID_DATAz/dataANDROID_ROOTz/systemSHELLPREFIX)_android_folder)Android)sysplatformplatformdirs.windowsr   platformdirs.macosr   platformdirs.unixr   osgetenvplatformdirs.androidr   r   )Resultr   r   s      5lib/python3.11/site-packages/platformdirs/__init__.py_set_platform_dir_classr%      s    
|w:::::::		!	!6666666444444	y  G++	.0I0IY0V0V9W 	8!4!4 	M888888?(444444NM    Fappname
str | None	appauthorstr | None | Literal[False]versionroamingboolensure_existsstrc                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: data directory tied to the user
    r'   r)   r+   r,   r.   )PlatformDirsuser_data_dirr1   s        r$   r3   r3   2   /     #   r&   	multipathc                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param multipath: See `roaming <platformdirs.api.PlatformDirsABC.multipath>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: data directory shared by users
    r'   r)   r+   r5   r.   )r2   site_data_dirr7   s        r$   r8   r8   J   s/     #   r&   c                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: config directory tied to the user
    r1   )r2   user_config_dirr1   s        r$   r:   r:   b   /     #   r&   c                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param multipath: See `roaming <platformdirs.api.PlatformDirsABC.multipath>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: config directory shared by the users
    r7   )r2   site_config_dirr7   s        r$   r=   r=   z   s/     #   r&   Topinionc                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `roaming <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: cache directory tied to the user
    r'   r)   r+   r>   r.   )r2   user_cache_dirr@   s        r$   rA   rA      /     #   r&   c                4    t          | ||||          j        S a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: cache directory tied to the user
    r@   )r2   site_cache_dirr@   s        r$   rE   rE      rB   r&   c                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: state directory tied to the user
    r1   )r2   user_state_dirr1   s        r$   rG   rG      rB   r&   c                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `roaming <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: log directory tied to the user
    r@   )r2   user_log_dirr@   s        r$   rI   rI      s/     #   r&   c                 (    t                      j        S )z.:returns: documents directory tied to the user)r2   user_documents_dir r&   r$   rK   rK          >>,,r&   c                 (    t                      j        S )z.:returns: downloads directory tied to the user)r2   user_downloads_dirrL   r&   r$   rO   rO      rM   r&   c                 (    t                      j        S )z-:returns: pictures directory tied to the user)r2   user_pictures_dirrL   r&   r$   rQ   rQ          >>++r&   c                 (    t                      j        S )z+:returns: videos directory tied to the user)r2   user_videos_dirrL   r&   r$   rT   rT         >>))r&   c                 (    t                      j        S )z*:returns: music directory tied to the user)r2   user_music_dirrL   r&   r$   rW   rW     s    >>((r&   c                 (    t                      j        S )z,:returns: desktop directory tied to the user)r2   user_desktop_dirrL   r&   r$   rY   rY         >>**r&   c                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: runtime directory tied to the user
    r@   )r2   user_runtime_dirr@   s        r$   r\   r\     /     #   r&   c                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: runtime directory shared by users
    r@   )r2   site_runtime_dirr@   s        r$   r_   r_   (  r]   r&   r	   c                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: data path tied to the user
    r1   )r2   user_data_pathr1   s        r$   ra   ra   @  rB   r&   c                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param multipath: See `multipath <platformdirs.api.PlatformDirsABC.multipath>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: data path shared by users
    r7   )r2   site_data_pathr7   s        r$   rc   rc   X  s/     #   r&   c                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: config path tied to the user
    r1   )r2   user_config_pathr1   s        r$   re   re   p  r]   r&   c                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param multipath: See `roaming <platformdirs.api.PlatformDirsABC.multipath>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: config path shared by the users
    r7   )r2   site_config_pathr7   s        r$   rg   rg     s/     #   r&   c                4    t          | ||||          j        S rD   )r2   site_cache_pathr@   s        r$   ri   ri     r;   r&   c                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `roaming <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: cache path tied to the user
    r@   )r2   user_cache_pathr@   s        r$   rk   rk     r;   r&   c                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: state path tied to the user
    r1   )r2   user_state_pathr1   s        r$   rm   rm     r;   r&   c                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `roaming <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: log path tied to the user
    r@   )r2   user_log_pathr@   s        r$   ro   ro     r4   r&   c                 (    t                      j        S )z):returns: documents path tied to the user)r2   user_documents_pathrL   r&   r$   rq   rq          >>--r&   c                 (    t                      j        S )z):returns: downloads path tied to the user)r2   user_downloads_pathrL   r&   r$   rt   rt     rr   r&   c                 (    t                      j        S )z(:returns: pictures path tied to the user)r2   user_pictures_pathrL   r&   r$   rv   rv   
  rM   r&   c                 (    t                      j        S )z&:returns: videos path tied to the user)r2   user_videos_pathrL   r&   r$   rx   rx     rZ   r&   c                 (    t                      j        S )z%:returns: music path tied to the user)r2   user_music_pathrL   r&   r$   rz   rz     rU   r&   c                 (    t                      j        S )z':returns: desktop path tied to the user)r2   user_desktop_pathrL   r&   r$   r|   r|     rR   r&   c                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: runtime path tied to the user
    r@   )r2   user_runtime_pathr@   s        r$   r~   r~     /     #   r&   c                4    t          | ||||          j        S )a  
    :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
    :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
    :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
    :param opinion: See `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
    :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    :returns: runtime path shared by users
    r@   )r2   site_runtime_pathr@   s        r$   r   r   6  r   r&   )%r   __version_info__r2   AppDirsr   r3   r:   rA   rG   rI   rK   rO   rQ   rT   rW   rY   r\   r8   r=   rE   r_   ra   re   rk   rm   ro   rq   rt   rv   rx   rz   r|   r~   rc   rg   ri   r   )r   r   )NNNFF)r'   r(   r)   r*   r+   r(   r,   r-   r.   r-   r   r/   )r'   r(   r)   r*   r+   r(   r5   r-   r.   r-   r   r/   )NNNTF)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(   r5   r-   r.   r-   r   r	   )r'   r(   r)   r*   r+   r(   r>   r-   r.   r-   r   r	   )r   r	   )6__doc__
__future__r   r    r   typingr   apir   r+   r   r   r   pathlibr	   version_infor   typing_extensionsr%   r2   r   r3   r8   r:   r=   rA   rE   rG   rI   rK   rO   rQ   rT   rW   rY   r\   r_   ra   rc   re   rg   ri   rk   rm   ro   rq   rt   rv   rx   rz   r|   r~   r   __all__rL   r&   r$   <module>r      sB    # " " " " " 				 



                                     : : : : : : .
6!!"""""""------   , '&((
 -1    2 -1    2 -1    2 -1    2 -1    2 -1    2 -1    2 -1    0- - - -
- - - -
, , , ,
* * * *
) ) ) )
+ + + + -1    2 -1    2 -1    2 -1    2 -1    2 -1    2 -1    2 -1    2 -1    2 -1    0. . . .
. . . .
- - - -
+ + + +
* * * *
, , , , -1    2 -1    0& & &r&   