o
    ⹏iE                     @  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  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_:return: 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__ N/home/ubuntu/veenaModal/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 )z`:return: 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   )zc:return: 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+   )zd:return: 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   )za:return: 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   )za:return: 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   )zd:return: 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   )zc:return: 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 )zh:return: 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>   )zg:return: 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>   )zf:return: 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>   )zb:return: 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>   )z`:return: 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>   )zd:return: 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_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   __classcell__r   r   r   r   r   
   sD    r   )rP   
__future__r   r   apir   r   __all__r   r   r   r   <module>   s    q