o
    ei9                     @  s>   d Z ddlmZ ddlZddlmZ G dd deZdgZdS )z2XDG environment variable mixin for Unix and macOS.    )annotationsN   )PlatformDirsABCc                      s^  e Zd ZdZed+ fddZed, fddZed+d	d
Zed+ fddZed, fddZ	ed+ddZ
ed+ fddZed+ fddZed+ fddZed+ fddZed+ fddZed+ fddZed+ fddZed+ fdd Zed+ fd!d"Zed+ fd#d$Zed+ fd%d&Zed, fd'd(Zed+d)d*Z  ZS )-XDGMixinzhMixin that checks XDG environment variables, falling back to platform-specific defaults via ``super()``.returnstrc                   (   t jdd  }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__ P/var/www/html/pca-backend/venv/lib/python3.10/site-packages/platformdirs/_xdg.pyr         
zXDGMixin.user_data_dir	list[str]c                   8   t jdd  }r fdd|t jD S t jS )NXDG_DATA_DIRSr
   c                      g | ]}|  r |qS r   r   r   .0pr   r   r   
<listcomp>       z,XDGMixin._site_data_dirs.<locals>.<listcomp>)r   r   r   r   splitpathsepr   _site_data_dirsr   xdg_dirsr   r"   r   r'         zXDGMixin._site_data_dirsc                 C      | j }| jrt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   dirsr   r   r   site_data_dir      zXDGMixin.site_data_dirc                   r   )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   r   r   r   r3       r   zXDGMixin.user_config_dirc                   r   )NXDG_CONFIG_DIRSr
   c                   r   r   r   r   r"   r   r   r#   *   r$   z.XDGMixin._site_config_dirs.<locals>.<listcomp>)r   r   r   r   r%   r&   r   _site_config_dirsr(   r   r"   r   r5   '   r*   zXDGMixin._site_config_dirsc                 C  r+   )ze:returns: config directories shared by users, from ``$XDG_CONFIG_DIRS`` if set, else platform defaultr   )r5   r,   r   r&   r-   r.   r   r   r   site_config_dir-   r1   zXDGMixin.site_config_dirc                   r   )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   r   r   r   r8   3   r   zXDGMixin.user_cache_dirc                   r   )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   r   r   r   r:   :   r   zXDGMixin.user_state_dirc                   r   )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   r   r   r   r<   A   r   zXDGMixin.user_runtime_dirc                   r   )zd:returns: runtime directory shared by users, from ``$XDG_RUNTIME_DIR`` if set, else platform defaultr;   r
   )r   r   r   r   r   r   site_runtime_dirr   r   r   r   r=   H   r   zXDGMixin.site_runtime_dirc                   *   t jdd  }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   r   r   r   rA   O      zXDGMixin.user_documents_dirc                   r>   )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   r   r   r   rD   V   rB   zXDGMixin.user_downloads_dirc                   r>   )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   r   r   r   rF   ]   rB   zXDGMixin.user_pictures_dirc                   r>   )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   r   r   r   rH   d   rB   zXDGMixin.user_videos_dirc                   r>   )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   r   r   r   rJ   k   rB   zXDGMixin.user_music_dirc                   r>   )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   r   r   r   rL   r   rB   zXDGMixin.user_desktop_dirc                   s4   t jdd  }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-   r@   r   user_applications_dirr   r   r   r   rN   y   s   zXDGMixin.user_applications_dirc                   s4   t jdd  }rdd |t jD S t jS )Nr   r
   c                 S  s"   g | ]}|  rtj|d qS )rM   )r   r   r   r-   r   r   r   r   r#      s   " z4XDGMixin._site_applications_dirs.<locals>.<listcomp>)r   r   r   r   r%   r&   r   _site_applications_dirsr(   r   r   r   rO      s   z XDGMixin._site_applications_dirsc                 C  r+   )zi:returns: applications directories shared by users, from ``$XDG_DATA_DIRS`` if set, else platform defaultr   )rO   r,   r   r&   r-   r.   r   r   r   site_applications_dir   r1   zXDGMixin.site_applications_dir)r   r   )r   r   )__name__
__module____qualname____doc__propertyr   r'   r0   r3   r5   r6   r8   r:   r<   r=   rA   rD   rF   rH   rJ   rL   rN   rO   rP   __classcell__r   r   r   r   r   
   sP    r   )rT   
__future__r   r   apir   r   __all__r   r   r   r   <module>   s     