
    1i9                    L    d Z ddlmZ ddlZddlmZ  G d de          ZdgZdS )z2XDG environment variable mixin for Unix and macOS.    )annotationsN   )PlatformDirsABCc                       e Zd ZdZed fd            Zed fd            Zedd            Zed fd            Zed fd	            Z	edd
            Z
ed fd            Zed fd            Zed fd            Zed fd            Zed fd            Zed fd            Zed fd            Zed fd            Zed fd            Zed fd            Zed fd            Zed fd            Zedd            Z xZS )XDGMixinzhMixin that checks XDG environment variables, falling back to platform-specific defaults via ``super()``.returnstrc                    t           j                            dd                                          x}r|                     |          S t                      j        S )z`:returns: data directory tied to the user, from ``$XDG_DATA_HOME`` if set, else platform defaultXDG_DATA_HOME )osenvirongetstrip_append_app_name_and_versionsuperuser_data_dirselfpath	__class__s     O/var/www/html/speakWrite/venv/lib/python3.11/site-packages/platformdirs/_xdg.pyr   zXDGMixin.user_data_dir   sO     :>>/266<<>>>4 	;44T:::ww$$    	list[str]c                     t           j                            dd                                          x}r+ fd|                    t           j                  D             S t                      j        S )NXDG_DATA_DIRSr   c                b    g | ]+}|                                                     |          ,S  r   r   .0pr   s     r   
<listcomp>z,XDGMixin._site_data_dirs.<locals>.<listcomp>   9    jjjQ`a`g`g`i`ijD55a88jjjr   )r   r   r   r   splitpathsepr   _site_data_dirsr   xdg_dirsr   s   ` r   r'   zXDGMixin._site_data_dirs   se    z~~or::@@BBB8 	kjjjj(..QSQ[B\B\jjjjww&&r   c                l    | j         }| j        rt          j                            |          n|d         S )za:returns: data directories shared by users, from ``$XDG_DATA_DIRS`` if set, else platform defaultr   )r'   	multipathr   r&   joinr   dirss     r   site_data_dirzXDGMixin.site_data_dir   s0     #(,Crzt$$$DGCr   c                    t           j                            dd                                          x}r|                     |          S t                      j        S )zd:returns: config directory tied to the user, from ``$XDG_CONFIG_HOME`` if set, else platform defaultXDG_CONFIG_HOMEr   )r   r   r   r   r   r   user_config_dirr   s     r   r2   zXDGMixin.user_config_dir    sP     :>>"3R88>>@@@4 	;44T:::ww&&r   c                     t           j                            dd                                          x}r+ fd|                    t           j                  D             S t                      j        S )NXDG_CONFIG_DIRSr   c                b    g | ]+}|                                                     |          ,S r   r   r    s     r   r#   z.XDGMixin._site_config_dirs.<locals>.<listcomp>*   r$   r   )r   r   r   r   r%   r&   r   _site_config_dirsr(   s   ` r   r6   zXDGMixin._site_config_dirs'   sf    z~~&7<<BBDDD8 	kjjjj(..QSQ[B\B\jjjjww((r   c                l    | j         }| j        rt          j                            |          n|d         S )ze:returns: config directories shared by users, from ``$XDG_CONFIG_DIRS`` if set, else platform defaultr   )r6   r+   r   r&   r,   r-   s     r   site_config_dirzXDGMixin.site_config_dir-   s0     %(,Crzt$$$DGCr   c                    t           j                            dd                                          x}r|                     |          S t                      j        S )zb:returns: cache directory tied to the user, from ``$XDG_CACHE_HOME`` if set, else platform defaultXDG_CACHE_HOMEr   )r   r   r   r   r   r   user_cache_dirr   s     r   r;   zXDGMixin.user_cache_dir3   P     :>>"2B77==???4 	;44T:::ww%%r   c                    t           j                            dd                                          x}r|                     |          S t                      j        S )zb:returns: state directory tied to the user, from ``$XDG_STATE_HOME`` if set, else platform defaultXDG_STATE_HOMEr   )r   r   r   r   r   r   user_state_dirr   s     r   r?   zXDGMixin.user_state_dir:   r<   r   c                    t           j                            dd                                          x}r|                     |          S t                      j        S )ze:returns: runtime directory tied to the user, from ``$XDG_RUNTIME_DIR`` if set, else platform defaultXDG_RUNTIME_DIRr   )r   r   r   r   r   r   user_runtime_dirr   s     r   rB   zXDGMixin.user_runtime_dirA   P     :>>"3R88>>@@@4 	;44T:::ww''r   c                    t           j                            dd                                          x}r|                     |          S t                      j        S )zd:returns: runtime directory shared by users, from ``$XDG_RUNTIME_DIR`` if set, else platform defaultrA   r   )r   r   r   r   r   r   site_runtime_dirr   s     r   rE   zXDGMixin.site_runtime_dirH   rC   r   c                    t           j                            dd                                          x}rt           j                            |          S t                      j        S )zi:returns: documents directory tied to the user, from ``$XDG_DOCUMENTS_DIR`` if set, else platform defaultXDG_DOCUMENTS_DIRr   )r   r   r   r   r   
expanduserr   user_documents_dirr   s     r   rI   zXDGMixin.user_documents_dirO   sR     :>>"5r::@@BBB4 	,7%%d+++ww))r   c                    t           j                            dd                                          x}rt           j                            |          S t                      j        S )zh:returns: downloads directory tied to the user, from ``$XDG_DOWNLOAD_DIR`` if set, else platform defaultXDG_DOWNLOAD_DIRr   )r   r   r   r   r   rH   r   user_downloads_dirr   s     r   rL   zXDGMixin.user_downloads_dirV   sR     :>>"4b99??AAA4 	,7%%d+++ww))r   c                    t           j                            dd                                          x}rt           j                            |          S t                      j        S )zg:returns: pictures directory tied to the user, from ``$XDG_PICTURES_DIR`` if set, else platform defaultXDG_PICTURES_DIRr   )r   r   r   r   r   rH   r   user_pictures_dirr   s     r   rO   zXDGMixin.user_pictures_dir]   sR     :>>"4b99??AAA4 	,7%%d+++ww((r   c                    t           j                            dd                                          x}rt           j                            |          S t                      j        S )zc:returns: videos directory tied to the user, from ``$XDG_VIDEOS_DIR`` if set, else platform defaultXDG_VIDEOS_DIRr   )r   r   r   r   r   rH   r   user_videos_dirr   s     r   rR   zXDGMixin.user_videos_dird   sR     :>>"2B77==???4 	,7%%d+++ww&&r   c                    t           j                            dd                                          x}rt           j                            |          S t                      j        S )za:returns: music directory tied to the user, from ``$XDG_MUSIC_DIR`` if set, else platform defaultXDG_MUSIC_DIRr   )r   r   r   r   r   rH   r   user_music_dirr   s     r   rU   zXDGMixin.user_music_dirk   sQ     :>>/266<<>>>4 	,7%%d+++ww%%r   c                    t           j                            dd                                          x}rt           j                            |          S t                      j        S )ze:returns: desktop directory tied to the user, from ``$XDG_DESKTOP_DIR`` if set, else platform defaultXDG_DESKTOP_DIRr   )r   r   r   r   r   rH   r   user_desktop_dirr   s     r   rX   zXDGMixin.user_desktop_dirr   sR     :>>"3R88>>@@@4 	,7%%d+++ww''r   c                   t           j                            dd                                          x}r=t           j                            t           j                            |          d          S t                      j        S )zh:returns: applications directory tied to the user, from ``$XDG_DATA_HOME`` if set, else platform defaultr   r   applications)	r   r   r   r   r   r,   rH   r   user_applications_dirr   s     r   r[   zXDGMixin.user_applications_diry   sb     :>>/266<<>>>4 	J7<< 2 24 8 8.IIIww,,r   c                    t           j                            dd                                          x}r)d |                    t           j                  D             S t                      j        S )Nr   r   c                v    g | ]6}|                                 t          j                            |d           7S )rZ   )r   r   r   r,   )r!   r"   s     r   r#   z4XDGMixin._site_applications_dirs.<locals>.<listcomp>   s:    eee[\[b[b[d[deBGLLN33eeer   )r   r   r   r   r%   r&   r   _site_applications_dirsr(   s     r   r^   z XDGMixin._site_applications_dirs   s\    z~~or::@@BBB8 	feeX^^BJ=W=Weeeeww..r   c                l    | j         }| j        rt          j                            |          n|d         S )zi:returns: applications directories shared by users, from ``$XDG_DATA_DIRS`` if set, else platform defaultr   )r^   r+   r   r&   r,   r-   s     r   site_applications_dirzXDGMixin.site_applications_dir   s0     +(,Crzt$$$DGCr   )r   r	   )r   r   )__name__
__module____qualname____doc__propertyr   r'   r/   r2   r6   r8   r;   r?   rB   rE   rI   rL   rO   rR   rU   rX   r[   r^   r`   __classcell__)r   s   @r   r   r   
   s3       rr% % % % % X% ' ' ' ' ' X'
 D D D XD
 ' ' ' ' ' X' ) ) ) ) ) X)
 D D D XD
 & & & & & X& & & & & & X& ( ( ( ( ( X( ( ( ( ( ( X( * * * * * X* * * * * * X* ) ) ) ) ) X) ' ' ' ' ' X' & & & & & X& ( ( ( ( ( X( - - - - - X- / / / / / X/
 D D D XD D D D Dr   r   )rd   
__future__r   r   apir   r   __all__r   r   r   <module>rj      s    8 8 " " " " " " 				            @D @D @D @D @D @D @D @DH r   