
    3i9                    D    d Z ddlmZ ddlZddlmZ  G d de      ZdgZy)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()``.c                    t         j                  j                  dd      j                         x}r| j	                  |      S t
        |   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     D/var/www/opsc/venv/lib/python3.12/site-packages/platformdirs/_xdg.pyr   zXDGMixin.user_data_dir   sD     ::>>/26<<>>4>44T::w$$    c                   t         j                  j                  dd      j                         x}rM|j	                  t         j
                        D cg c]$  }|j                         s| j                  |      & c}S t        |    S c c}w )NXDG_DATA_DIRSr
   )	r   r   r   r   splitpathsepr   r   _site_data_dirsr   xdg_dirspr   s      r   r   zXDGMixin._site_data_dirs   so    zz~~or:@@BB8BBJ..QSQ[Q[B\jQ`a`g`g`iD55a8jjw&& k   B	)B	c                z    | j                   }| j                  rt        j                  j	                  |      S |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   s1     ##(,rzzt$CDGCr   c                    t         j                  j                  dd      j                         x}r| j	                  |      S t
        |   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   r)   zXDGMixin.user_config_dir    sE     ::>>"3R8>>@@4@44T::w&&r   c                   t         j                  j                  dd      j                         x}rM|j	                  t         j
                        D cg c]$  }|j                         s| j                  |      & c}S t        |    S c c}w )NXDG_CONFIG_DIRSr
   )	r   r   r   r   r   r   r   r   _site_config_dirsr   s      r   r,   zXDGMixin._site_config_dirs'   sp    zz~~&7<BBDD8DBJ..QSQ[Q[B\jQ`a`g`g`iD55a8jjw(( kr    c                z    | j                   }| j                  rt        j                  j	                  |      S |d   S )ze:returns: config directories shared by users, from ``$XDG_CONFIG_DIRS`` if set, else platform defaultr   )r,   r"   r   r   r#   r$   s     r   site_config_dirzXDGMixin.site_config_dir-   s1     %%(,rzzt$CDGCr   c                    t         j                  j                  dd      j                         x}r| j	                  |      S t
        |   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   r1   zXDGMixin.user_cache_dir3   E     ::>>"2B7==??4?44T::w%%r   c                    t         j                  j                  dd      j                         x}r| j	                  |      S t
        |   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   r5   zXDGMixin.user_state_dir:   r2   r   c                    t         j                  j                  dd      j                         x}r| j	                  |      S t
        |   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   r8   zXDGMixin.user_runtime_dirA   E     ::>>"3R8>>@@4@44T::w''r   c                    t         j                  j                  dd      j                         x}r| j	                  |      S t
        |   S )zd:returns: runtime directory shared by users, from ``$XDG_RUNTIME_DIR`` if set, else platform defaultr7   r
   )r   r   r   r   r   r   site_runtime_dirr   s     r   r;   zXDGMixin.site_runtime_dirH   r9   r   c                    t         j                  j                  dd      j                         x}rt         j                  j                  |      S t        |   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   r?   zXDGMixin.user_documents_dirO   sI     ::>>"5r:@@BB4B77%%d++w))r   c                    t         j                  j                  dd      j                         x}rt         j                  j                  |      S t        |   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   r>   r   user_downloads_dirr   s     r   rB   zXDGMixin.user_downloads_dirV   sI     ::>>"4b9??AA4A77%%d++w))r   c                    t         j                  j                  dd      j                         x}rt         j                  j                  |      S t        |   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   r>   r   user_pictures_dirr   s     r   rE   zXDGMixin.user_pictures_dir]   sI     ::>>"4b9??AA4A77%%d++w((r   c                    t         j                  j                  dd      j                         x}rt         j                  j                  |      S t        |   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   r>   r   user_videos_dirr   s     r   rH   zXDGMixin.user_videos_dird   sI     ::>>"2B7==??4?77%%d++w&&r   c                    t         j                  j                  dd      j                         x}rt         j                  j                  |      S t        |   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   r>   r   user_music_dirr   s     r   rK   zXDGMixin.user_music_dirk   sH     ::>>/26<<>>4>77%%d++w%%r   c                    t         j                  j                  dd      j                         x}rt         j                  j                  |      S t        |   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   r>   r   user_desktop_dirr   s     r   rN   zXDGMixin.user_desktop_dirr   sI     ::>>"3R8>>@@4@77%%d++w''r   c                    t         j                  j                  dd      j                         x}r=t         j                  j                  t         j                  j                  |      d      S t        |    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#   r>   r   user_applications_dirr   s     r   rQ   zXDGMixin.user_applications_diry   sW     ::>>/26<<>>4>77<< 2 24 8.IIw,,r   c                :   t         j                  j                  dd      j                         x}r\|j	                  t         j
                        D cg c]3  }|j                         st         j                  j                  |d      5 c}S t        | $  S c c}w )Nr   r
   rP   )
r   r   r   r   r   r   r   r#   r   _site_applications_dirsr   s      r   rS   z XDGMixin._site_applications_dirs   sp    zz~~or:@@BB8B=E^^BJJ=We[\[b[b[dBGGLLN3eew.. fs   B)"Bc                z    | j                   }| j                  rt        j                  j	                  |      S |d   S )zi:returns: applications directories shared by users, from ``$XDG_DATA_DIRS`` if set, else platform defaultr   )rS   r"   r   r   r#   r$   s     r   site_applications_dirzXDGMixin.site_applications_dir   s1     ++(,rzzt$CDGCr   )returnstr)rV   z	list[str])__name__
__module____qualname____doc__propertyr   r   r&   r)   r,   r.   r1   r5   r8   r;   r?   rB   rE   rH   rK   rN   rQ   rS   rU   __classcell__)r   s   @r   r   r   
   s   r% % ' '
 D D
 ' ' ) )
 D D
 & & & & ( ( ( ( * * * * ) ) ' ' & & ( ( - - / /
 D Dr   r   )r[   
__future__r   r   apir   r   __all__ r   r   <module>rb      s.    8 " 	  @D @DH r   