
    Ij                    T    d Z ddlmZ ddlZddlmZ  G d de          Zdd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 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 )zWData 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     [/workspace/show-city-briefing-agent/.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                j     t          d          x}r fd|D             S t                      j        S )NXDG_DATA_DIRSc                :    g | ]}                     |          S  r   .0pr   s     r   
<listcomp>z,XDGMixin._site_data_dirs.<locals>.<listcomp>   '    KKKQD55a88KKKr   )_xdg_dir_listr   _site_data_dirsr   xdg_dirsr   s   ` r   r&   zXDGMixin._site_data_dirs   sA    $_5558 	LKKKK(KKKKww&&r   c                l    | j         }| j        rt          j                            |          n|d         S )zXData directories shared by users, from ``$XDG_DATA_DIRS`` if set, else platform default.r   )r&   	multipathr   pathsep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 )z[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                j     t          d          x}r fd|D             S t                      j        S )NXDG_CONFIG_DIRSc                :    g | ]}                     |          S r   r   r    s     r   r#   z.XDGMixin._site_config_dirs.<locals>.<listcomp>*   r$   r   )r%   r   _site_config_dirsr'   s   ` r   r6   zXDGMixin._site_config_dirs'   sB    $%67778 	LKKKK(KKKKww((r   c                l    | j         }| j        rt          j                            |          n|d         S )z\Config directories shared by users, from ``$XDG_CONFIG_DIRS`` if set, else platform default.r   )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 )zYCache 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 )zYState 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 )z\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 )z[Runtime directory shared by users, from ``$XDG_RUNTIME_DIR`` if set, else platform default.rA   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 )z`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   R     :>>"5r::@@BBB4 	,7%%d+++ww))r   c                    t           j                            dd                                          x}rt           j                            |          S t                      j        S )z_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   rM   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 )z^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   rP   zXDGMixin.user_pictures_dir]   R     :>>"4b99??AAA4 	,7%%d+++ww((r   c                    t           j                            dd                                          x}rt           j                            |          S t                      j        S )zZVideos 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   rT   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 )zXMusic 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   rW   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 )z\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   rZ   zXDGMixin.user_desktop_dirr   sR     :>>"3R88>>@@@4 	,7%%d+++ww''r   c                    t           j                            dd                                          x}rt           j                            |          S t                      j        S )z^Projects directory tied to the user, from ``$XDG_PROJECTS_DIR`` if set, else platform default.XDG_PROJECTS_DIRr   )r   r   r   r   r   rH   r   user_projects_dirr   s     r   r]   zXDGMixin.user_projects_diry   rQ   r   c                    t           j                            dd                                          x}rt           j                            |          S t                      j        S )zePublic share directory tied to the user, from ``$XDG_PUBLICSHARE_DIR`` if set, else platform default.XDG_PUBLICSHARE_DIRr   )r   r   r   r   r   rH   r   user_publicshare_dirr   s     r   r`   zXDGMixin.user_publicshare_dir   sR     :>>"7<<BBDDD4 	,7%%d+++ww++r   c                    t           j                            dd                                          x}rt           j                            |          S t                      j        S )z`Templates directory tied to the user, from ``$XDG_TEMPLATES_DIR`` if set, else platform default.XDG_TEMPLATES_DIRr   )r   r   r   r   r   rH   r   user_templates_dirr   s     r   rc   zXDGMixin.user_templates_dir   rJ   r   c                    t           j                            dd                                          x}r"t           j                            |           dS t                      j        S )z^Fonts directory tied to the user, from ``$XDG_DATA_HOME/fonts`` if set, else platform default.r   r   z/fonts)r   r   r   r   r   rH   r   user_fonts_dirr   s     r   re   zXDGMixin.user_fonts_dir   sZ     :>>/266<<>>>4 	7g((..6666ww%%r   c                   t           j                            dd                                          x}r=t           j                            t           j                            |          d          S t                      j        S )z_Applications directory tied to the user, from ``$XDG_DATA_HOME`` if set, else platform default.r   r   applications)	r   r   r   r   r   r,   rH   r   user_applications_dirr   s     r   rh   zXDGMixin.user_applications_dir   sb     :>>/266<<>>>4 	J7<< 2 24 8 8.IIIww,,r   c                d    t          d          x}rd |D             S t                      j        S )Nr   c                N    g | ]"}t           j                            |d           #S )rg   )r   r   r,   )r!   r"   s     r   r#   z4XDGMixin._site_applications_dirs.<locals>.<listcomp>   s(    FFFBGLLN33FFFr   )r%   r   _site_applications_dirsr'   s     r   rk   z XDGMixin._site_applications_dirs   s:    $_5558 	GFFXFFFFww..r   c                l    | j         }| j        rt          j                            |          n|d         S )z`Applications directories shared by users, from ``$XDG_DATA_DIRS`` if set, else platform default.r   )rk   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   rM   rP   rT   rW   rZ   r]   r`   rc   re   rh   rk   rm   __classcell__)r   s   @r   r   r   
   s       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, * * * * * X* & & & & & X& - - - - - X- / / / / / X/
 D D D XD D D D Dr   r   env_varr	   r   r   c                    fdt           j                            | d                              t           j                  D             S )znStripped non-blank entries of ``env_var``, so a value of only separators and whitespace falls back like unset.c                @    g | ]}|                                 xS r   )r   )r!   r   strippeds     r   r#   z!_xdg_dir_list.<locals>.<listcomp>   s1    mmm_c_i_i_k_kSkS[mHmmmr   r   )r   r   r   splitr+   )rt   rw   s    @r   r%   r%      s=    mmmm!<!<!B!B2:!N!Nmmmmr   )rt   r	   r   r   )	rq   
__future__r   r   apir   r   r%   __all__r   r   r   <module>r|      s    8 8 " " " " " " 				            \D \D \D \D \D \D \D \D~n n n n r   