Ë
    hKêj†#  ã                  óš   — d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	 ddl
mZ ddlmZ  G d	„ d
e«      Zdd„Zdd„Zdd„Zdd„Zg d¢Zy)z2XDG environment variable mixin for Unix and macOS.é    )ÚannotationsN)Úsuppress)ÚPath)ÚFinalé   )Ú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d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                óX   •— t        d«      x}r| j                  |d¬«      S t        ‰| �  S )zWData directory tied to the user, from ``$XDG_DATA_HOME`` if set, else platform default.ÚXDG_DATA_HOMET©Úprivate)Ú_xdg_dirÚ_append_app_name_and_versionÚsuperÚuser_data_dir©ÚselfÚpathÚ	__class__s     €úV/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/platformdirs/_xdg.pyr   zXDGMixin.user_data_dir   s6   ø€ ô ˜OÓ,Ð,ˆ4Ð,Ø×4Ñ4°TÀ4Ð4ÓHÐHÜ‰wÑ$Ð$ó    c                óz   •— t        d«      x}r|D �cg c]  }| j                  |«      ‘Œ c}S t        ‰| �  S c c}w )NÚXDG_DATA_DIRS)Ú_xdg_dir_listÚ_join_app_name_and_versionr   Ú_site_data_dirs©r   Úxdg_dirsÚpr   s      €r   r   zXDGMixin._site_data_dirs   s@   ø€ ä$ _Ó5Ð5ˆ8Ð5Ø@HÖI¸1�D×3Ñ3°AÕ6ÒIÐIÜ‰wÑ&Ð&ùò Jó   “8c                ó8   — | j                  | j                  «      S )zXData directories shared by users, from ``$XDG_DATA_DIRS`` if set, else platform default.)Ú_select_site_dirsr   ©r   s    r   Úsite_data_dirzXDGMixin.site_data_dir   s   € ð ×%Ñ% d×&:Ñ&:Ó;Ð;r   c                óX   •— t        d«      x}r| j                  |d¬«      S t        ‰| �  S )z[Config directory tied to the user, from ``$XDG_CONFIG_HOME`` if set, else platform default.ÚXDG_CONFIG_HOMETr   )r   r   r   Úuser_config_dirr   s     €r   r(   zXDGMixin.user_config_dir$   s7   ø€ ô Ð-Ó.Ð.ˆ4Ð.Ø×4Ñ4°TÀ4Ð4ÓHÐHÜ‰wÑ&Ð&r   c                óz   •— t        d«      x}r|D �cg c]  }| j                  |«      ‘Œ c}S t        ‰| �  S c c}w )NÚXDG_CONFIG_DIRS)r   r   r   Ú_site_config_dirsr   s      €r   r+   zXDGMixin._site_config_dirs+   sA   ø€ ä$Ð%6Ó7Ð7ˆ8Ð7Ø@HÖI¸1�D×3Ñ3°AÕ6ÒIÐIÜ‰wÑ(Ð(ùò Jr!   c                ó8   — | j                  | j                  «      S )z\Config directories shared by users, from ``$XDG_CONFIG_DIRS`` if set, else platform default.)r#   r+   r$   s    r   Úsite_config_dirzXDGMixin.site_config_dir1   s   € ð ×%Ñ% d×&<Ñ&<Ó=Ð=r   c                óX   •— t        d«      x}r| j                  |d¬«      S t        ‰| �  S )zYCache directory tied to the user, from ``$XDG_CACHE_HOME`` if set, else platform default.ÚXDG_CACHE_HOMETr   )r   r   r   Úuser_cache_dirr   s     €r   r0   zXDGMixin.user_cache_dir6   ó7   ø€ ô Ð,Ó-Ð-ˆ4Ð-Ø×4Ñ4°TÀ4Ð4ÓHÐHÜ‰wÑ%Ð%r   c                óX   •— t        d«      x}r| j                  |d¬«      S t        ‰| �  S )zYState directory tied to the user, from ``$XDG_STATE_HOME`` if set, else platform default.ÚXDG_STATE_HOMETr   )r   r   r   Úuser_state_dirr   s     €r   r4   zXDGMixin.user_state_dir=   r1   r   c                ó  •— ddl m}m} t        d«      x}rat	        t
        «      5  | j                  |d¬«       ddd«        ||| j                   ¬«      x}s| j                  |d¬«      S  |d|› d	�«       t        ‰| �(  S # 1 sw Y   ŒIxY w)
zhRuntime directory tied to the user, from ``$XDG_RUNTIME_DIR`` if set and private, else platform default.r   )Ú_runtime_dir_problemÚ
_warn_onceÚXDG_RUNTIME_DIRTr   N)Ú
missing_okzXDG_RUNTIME_DIR z&, falling back to the platform default)Úunixr6   r7   r   r   ÚOSErrorÚ_optionally_create_directoryÚensure_existsr   r   Úuser_runtime_dir)r   r6   r7   r   Úproblemr   s        €r   r>   zXDGMixin.user_runtime_dirD   sž   ø€ ÷ 	;äÐ-Ó.Ð.ˆ4Ð.Üœ'Ó"ñ FØ×1Ñ1°$ÀÐ1ÔE÷Fñ  4°DÈ×I[ÑI[ÐE[Ô\Ð\�GÐ\Ø×8Ñ8¸ÀtÐ8ÓLÐLÙÐ)¨'¨Ð2XÐYÔZÜ‰wÑ'Ð'÷Fð Fús   ¦BÂBc                óX   •— t        d«      x}r| j                  |d¬«      S t        ‰| �  S )z[Runtime directory shared by users, from ``$XDG_RUNTIME_DIR`` if set, else platform default.r8   Fr   )r   r   r   Úsite_runtime_dirr   s     €r   rA   zXDGMixin.site_runtime_dirR   s7   ø€ ô Ð-Ó.Ð.ˆ4Ð.Ø×4Ñ4°TÀ5Ð4ÓIÐIÜ‰wÑ'Ð'r   c                ó>   •— | j                  d«      xs
 t        ‰| �  S )z`Documents directory tied to the user, from ``$XDG_DOCUMENTS_DIR`` if set, else platform default.ÚXDG_DOCUMENTS_DIR)Ú_xdg_media_dirr   Úuser_documents_dir©r   r   s    €r   rE   zXDGMixin.user_documents_dirY   ó!   ø€ ð ×"Ñ"Ð#6Ó7ÒU¼5¹7Ñ;UÐUr   c                ó>   •— | j                  d«      xs
 t        ‰| �  S )z_Downloads directory tied to the user, from ``$XDG_DOWNLOAD_DIR`` if set, else platform default.ÚXDG_DOWNLOAD_DIR)rD   r   Úuser_downloads_dirrF   s    €r   rJ   zXDGMixin.user_downloads_dir^   s!   ø€ ð ×"Ñ"Ð#5Ó6ÒT¼%¹'Ñ:TÐTr   c                ó>   •— | j                  d«      xs
 t        ‰| �  S )z^Pictures directory tied to the user, from ``$XDG_PICTURES_DIR`` if set, else platform default.ÚXDG_PICTURES_DIR)rD   r   Úuser_pictures_dirrF   s    €r   rM   zXDGMixin.user_pictures_dirc   ó!   ø€ ð ×"Ñ"Ð#5Ó6ÒS¼%¹'Ñ:SÐSr   c                ó>   •— | j                  d«      xs
 t        ‰| �  S )zZVideos directory tied to the user, from ``$XDG_VIDEOS_DIR`` if set, else platform default.ÚXDG_VIDEOS_DIR)rD   r   Úuser_videos_dirrF   s    €r   rQ   zXDGMixin.user_videos_dirh   s!   ø€ ð ×"Ñ"Ð#3Ó4ÒO¼¹Ñ8OÐOr   c                ó>   •— | j                  d«      xs
 t        ‰| �  S )zXMusic directory tied to the user, from ``$XDG_MUSIC_DIR`` if set, else platform default.ÚXDG_MUSIC_DIR)rD   r   Úuser_music_dirrF   s    €r   rT   zXDGMixin.user_music_dirm   s    ø€ ð ×"Ñ" ?Ó3ÒM´u±wÑ7MÐMr   c                ó>   •— | j                  d«      xs
 t        ‰| �  S )z\Desktop directory tied to the user, from ``$XDG_DESKTOP_DIR`` if set, else platform default.ÚXDG_DESKTOP_DIR)rD   r   Úuser_desktop_dirrF   s    €r   rW   zXDGMixin.user_desktop_dirr   s!   ø€ ð ×"Ñ"Ð#4Ó5ÒQ¼¹Ñ9QÐQr   c                ó>   •— | j                  d«      xs
 t        ‰| �  S )z^Projects directory tied to the user, from ``$XDG_PROJECTS_DIR`` if set, else platform default.ÚXDG_PROJECTS_DIR)rD   r   Úuser_projects_dirrF   s    €r   rZ   zXDGMixin.user_projects_dirw   rN   r   c                ó>   •— | j                  d«      xs
 t        ‰| �  S )zePublic share directory tied to the user, from ``$XDG_PUBLICSHARE_DIR`` if set, else platform default.ÚXDG_PUBLICSHARE_DIR)rD   r   Úuser_publicshare_dirrF   s    €r   r]   zXDGMixin.user_publicshare_dir|   s!   ø€ ð ×"Ñ"Ð#8Ó9ÒY¼U¹WÑ=YÐYr   c                ó>   •— | j                  d«      xs
 t        ‰| �  S )z`Templates directory tied to the user, from ``$XDG_TEMPLATES_DIR`` if set, else platform default.ÚXDG_TEMPLATES_DIR)rD   r   Úuser_templates_dirrF   s    €r   r`   zXDGMixin.user_templates_dir�   rG   r   c                óB   — t        |«      x}r| j                  |«       |S ©N)r   Ú"_optionally_create_media_directory)r   Úenv_varr   s      r   rD   zXDGMixin._xdg_media_dir†   s%   € Ü˜GÓ$Ð$ˆ4Ð$Ø×3Ñ3°DÔ9Øˆr   c                ó^   •— t        d«      x}rt        j                  |d«      S t        ‰| �  S )z^Fonts directory tied to the user, from ``$XDG_DATA_HOME/fonts`` if set, else platform default.r   Úfonts)r   Ú	posixpathÚjoinr   Úuser_fonts_dirr   s     €r   ri   zXDGMixin.user_fonts_dir‹   s1   ø€ ô ˜OÓ,Ð,ˆ4Ð,ä—>‘> $¨Ó0Ð0Ü‰wÑ%Ð%r   c                ó¬   •— t        d«      x}r=t        j                  j                  t        j                  j	                  |«      d«      S t
        ‰| �  S )z_Applications directory tied to the user, from ``$XDG_DATA_HOME`` if set, else platform default.r   Úapplications)r   Úosr   rh   Ú
expanduserr   Úuser_applications_dirr   s     €r   rn   zXDGMixin.user_applications_dir“   sD   ø€ ô ˜OÓ,Ð,ˆ4Ð,Ü—7‘7—<‘<¤§¡× 2Ñ 2°4Ó 8¸.ÓIÐIÜ‰wÑ,Ð,r   c                ó˜   •— t        d«      x}r.|D �cg c]"  }t        j                  j                  |d«      ‘Œ$ c}S t        ‰| �  S c c}w )Nr   rk   )r   rl   r   rh   r   Ú_site_applications_dirsr   s      €r   rp   z XDGMixin._site_applications_dirsš   sD   ø€ ä$ _Ó5Ð5ˆ8Ð5Ø=EÖF¸”B—G‘G—L‘L  NÕ3ÒFÐFÜ‰wÑ.Ð.ùò Gs   “'Ac                óz   — | j                   }| j                  rt        j                  j	                  |«      S |d   S )z`Applications directories shared by users, from ``$XDG_DATA_DIRS`` if set, else platform default.r   )rp   Ú	multipathrl   Úpathseprh   )r   Údirss     r   Úsite_applications_dirzXDGMixin.site_applications_dir    s1   € ð ×+Ñ+ˆØ(,¯ªŒr�z‰z�‰˜tÓ$ÐC¸DÀ¹GÐCr   )ÚreturnÚstr)rv   ú	list[str]©rd   rw   rv   z
str | None)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   r%   r(   r+   r-   r0   r4   r>   rA   rE   rJ   rM   rQ   rT   rW   rZ   r]   r`   rD   ri   rn   rp   ru   Ú__classcell__)r   s   @r   r
   r
      sé  ø„ Ùràô%ó ð%ð ô'ó ð'ð
 ò<ó ð<ð ô'ó ð'ð ô)ó ð)ð
 ò>ó ð>ð ô&ó ð&ð ô&ó ð&ð ô(ó ð(ð ô(ó ð(ð ôVó ðVð ôUó ðUð ôTó ðTð ôPó ðPð ôNó ðNð ôRó ðRð ôTó ðTð ôZó ðZð ôVó ðVóð
 ô&ó ð&ð ô-ó ð-ð ô/ó ð/ð
 òDó ôDr   r
   c                ót   — t         j                  j                  | d«      }t        j                  |«      r|S d S ©NÚ )rl   ÚenvironÚgetrg   Úisabs©rd   r   s     r   r   r   §   s,   € Ü—*‘*—.‘. ¨"Ó-€DÜ—?‘? 4Ô(ˆ4Ð2¨dÐ2r   c                óÎ   — t         j                  j                  | d«      j                  t         j                  «      D �cg c]  }t        j                  |«      sŒ|‘Œ c}S c c}w r�   )rl   rƒ   r„   Úsplitrs   rg   r…   r†   s     r   r   r   ¬   s@   € ÜŸZ™ZŸ^™^¨G°RÓ8×>Ñ>¼r¿z¹zÓJÖd�TÌiÏoÉoÐ^bÕNcŠDÒdÐdùÒds   Á A"ÁA"c                óê  — t         j                  dk7  r˜dt        j                  v r†t	        t        j                  d   «      sj| }t        t        t        «      5  ddl}|j                  t        j                  «       «      j                  j                  d«      | dd z   xs d}ddd«       nt        j                  j                  | «      }t	        |«      sd| ›d�}t        |«      ‚|S # 1 sw Y   Œ'xY w)	zÔExpand the leading ``~`` of ``path`` like :func:`os.path.expanduser`, treating a relative ``HOME`` as unset on POSIX.

    :raises RuntimeError: if the home directory cannot be resolved to an absolute path.

    Úwin32ÚHOMEr   Nú/r   z+could not determine the home directory for z&, set an absolute HOME or XDG variable)ÚsysÚplatformrl   rƒ   Ú_is_absoluter   ÚImportErrorÚKeyErrorÚpwdÚgetpwuidÚgetuidÚpw_dirÚrstripr   rm   ÚRuntimeError)r   Úexpandedr’   Úmsgs       r   Ú_expand_userrš   °   sÐ   € ô ‡|�|�wÒ 6¬R¯Z©ZÑ#7ÄÌRÏZÉZÐX^ÑM_Ô@`àˆÜ”k¤8Ó,ñ 	VÛà—|‘|¤B§I¡I£KÓ0×7Ñ7×>Ñ>¸sÓCÀdÈ1È2ÀhÑNÒUÐRUˆH÷	Vð 	Vô
 —7‘7×%Ñ% dÓ+ˆÜ˜Ô!Ø;¸D¸8ÐCiÐjˆÜ˜3ÓÐØ€O÷	Vð 	Vús   ÁAC)Ã)C2c                ób   — t        j                  | «      xs t        | «      j                  «       S rb   )rg   r…   r   Úis_absolute)r   s    r   r�   r�   Å   s#   € ä�?‰?˜4Ó Ò<¤D¨£J×$:Ñ$:Ó$<Ð<r   )r
   rš   r   ry   )rd   rw   rv   rx   )r   rw   rv   rw   )r   rw   rv   Úbool)r}   Ú
__future__r   rl   rg   r�   Ú
contextlibr   Úpathlibr   Útypingr   Úapir   r
   r   r   rš   r�   Ú__all__© r   r   ú<module>r¥      sM   ðÙ 8å "ã 	Û Û 
Ý Ý Ý å  ôUDˆô UDóp3ó
eóó*=ò
�r   