Ë
    Ñ—Ä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  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)Ú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     €úVC:\Users\pivot\Documents\cueki\casual-preloader\Lib\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   sD   ø€ ä$ _Ó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*   sE   ø€ ä$Ð%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_dir0   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   r/   zXDGMixin.user_cache_dir5   ó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   r3   zXDGMixin.user_state_dir<   r0   r   c                óX   •— t        d«      x}r| j                  |d¬«      S t        ‰| �  S )z\Runtime directory tied to the user, from ``$XDG_RUNTIME_DIR`` if set, else platform default.ÚXDG_RUNTIME_DIRTr   )r   r   r   Úuser_runtime_dirr   s     €r   r6   zXDGMixin.user_runtime_dirC   s7   ø€ ô Ð-Ó.Ð.ˆ4Ð.Ø×4Ñ4°TÀ4Ð4ÓHÐHÜ‰wÑ'Ð'r   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.r5   Fr   )r   r   r   Úsite_runtime_dirr   s     €r   r8   zXDGMixin.site_runtime_dirJ   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   r<   zXDGMixin.user_documents_dirQ   ó!   ø€ ð ×"Ñ"Ð#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)r;   r   Úuser_downloads_dirr=   s    €r   rA   zXDGMixin.user_downloads_dirV   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)r;   r   Úuser_pictures_dirr=   s    €r   rD   zXDGMixin.user_pictures_dir[   ó!   ø€ ð ×"Ñ"Ð#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)r;   r   Úuser_videos_dirr=   s    €r   rH   zXDGMixin.user_videos_dir`   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)r;   r   Úuser_music_dirr=   s    €r   rK   zXDGMixin.user_music_dire   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)r;   r   Úuser_desktop_dirr=   s    €r   rN   zXDGMixin.user_desktop_dirj   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)r;   r   Úuser_projects_dirr=   s    €r   rQ   zXDGMixin.user_projects_diro   rE   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)r;   r   Úuser_publicshare_dirr=   s    €r   rT   zXDGMixin.user_publicshare_dirt   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)r;   r   Úuser_templates_dirr=   s    €r   rW   zXDGMixin.user_templates_diry   r>   r   c                óB   — t        |«      x}r| j                  |«       |S )N)r   Ú"_optionally_create_media_directory)r   Úenv_varr   s      r   r;   zXDGMixin._xdg_media_dir~   s%   € Ü˜GÓ$Ð$ˆ4Ð$Ø×3Ñ3°DÔ9Øˆr   c                óv   •— t        d«      x}r"t        j                  j                  |«      › d�S t        ‰| �  S )z^Fonts directory tied to the user, from ``$XDG_DATA_HOME/fonts`` if set, else platform default.r   z/fonts)r   Úosr   Ú
expanduserr   Úuser_fonts_dirr   s     €r   r^   zXDGMixin.user_fonts_dirƒ   s=   ø€ ô ˜OÓ,Ð,ˆ4Ð,Ü—g‘g×(Ñ(¨Ó.Ð/¨vÐ6Ð6Ü‰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   r\   r   Újoinr]   r   Úuser_applications_dirr   s     €r   rb   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   r`   )r   r\   r   ra   r   Ú_site_applications_dirsr   s      €r   rd   z XDGMixin._site_applications_dirs‘   sH   ø€ ä$ _Ó5Ð5ˆ8Ð5Ù=EÓF¹X¸”B—G‘G—L‘L  NÕ3¸XÑ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   )rd   Ú	multipathr\   Úpathsepra   )r   Údirss     r   Úsite_applications_dirzXDGMixin.site_applications_dir—   s1   € ð ×+Ñ+ˆØ(,¯ªŒr�z‰z�‰˜tÓ$ÐC¸DÀ¹GÐCr   )ÚreturnÚstr)rj   ú	list[str]©rZ   rk   rj   ú
str | None)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   r$   r'   r*   r,   r/   r3   r6   r8   r<   rA   rD   rH   rK   rN   rQ   rT   rW   r;   r^   rb   rd   ri   Ú__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         j                  j                  | d«      j                  «       }t	        j
                  |«      r|S d S ©NÚ )r\   ÚenvironÚgetÚstripÚ	posixpathÚisabs)rZ   r   s     r   r   r   ž   s5   € Ü—*‘*—.‘. ¨"Ó-×3Ñ3Ó5€DÜ—?‘? 4Ô(ˆ4Ð2¨dÐ2r   c                óî   — t         j                  j                  | d«      j                  t         j                  «      D �cg c]*  }t        j                  |j                  «       x}«      sŒ)|‘Œ, c}S c c}w rv   )r\   rx   ry   Úsplitrg   r{   r|   rz   )rZ   r   Ústrippeds      r   r   r   £   s]   € äŸZ™ZŸ^™^¨G°RÓ8×>Ñ>¼r¿z¹zÔJóÙJ�TÌiÏoÉoÐjn×jtÑjtÓjvÐ^vÐ^fÕNwŠÐJñð ùò s   Á *A2Á+A2c                ó&  — dt         j                  v r=t         j                  d   s*t        «       x}€| n|j                  d«      | dd z   xs d}nt         j                  j                  | «      }|j                  d«      rd| ›d�}t        |«      ‚|S )zÑExpand the leading ``~`` of ``path`` like :func:`os.path.expanduser`, treating an empty ``HOME`` as unset.

    :raises RuntimeError: if neither ``HOME`` nor the password database gives a home directory.

    ÚHOMENÚ/r   Ú~z+could not determine the home directory for z&, set HOME or an absolute XDG variable)r\   rx   Ú_passwd_homeÚrstripr   r]   Ú
startswithÚRuntimeError)r   ÚhomeÚexpandedÚmsgs       r   Ú_expand_userr‹   ©   s�   € ð ”—‘Ñ¤B§J¡J¨vÒ$6ä$0£NÐ2˜DÐ;‘4À$Ç+Á+ÈcÓBRÐUYÐZ[ÐZ\ÐU]ÑB]ÒBdÐad‰ä—7‘7×%Ñ% dÓ+ˆØ×Ñ˜3ÔØ;¸D¸8ÐCiÐjˆÜ˜3ÓÐØ€Or   c                 óà   — t         j                  dk(  ry t        t        t        «      5  dd l} | j                  t        j                  «       «      j                  cd d d «       S # 1 sw Y   y xY w)NÚwin32r   )
ÚsysÚplatformr   ÚImportErrorÚKeyErrorÚpwdÚgetpwuidr\   ÚgetuidÚpw_dir)r’   s    r   r„   r„   º   sG   € Ü
‡|�|�wÒØÜ	”+œxÕ	(Ûà�|‰|œBŸI™I›KÓ(×/Ñ/÷ 
)×	(Ñ	(ð ús   ©1A$Á$A-)r	   r‹   r   rm   )rZ   rk   rj   rl   )r   rk   rj   rk   )rj   rn   )rr   Ú
__future__r   r\   r{   rŽ   Ú
contextlibr   Útypingr   Úapir   r	   r   r   r‹   r„   Ú__all__© r   r   Ú<module>rœ      sI   ðÙ 8å "ã 	Û Û 
Ý Ý å  ôMDˆô MDó`3ó
óó"ò�r   