§
    ¤	Ê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dS )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()``.ÚreturnÚstrc                óz   •— t          d¦  «        x}r|                      |d¬¦  «        S t          ¦   «         j        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     €úAC:\Projects\Muse2API\.venv\Lib\site-packages\platformdirs/_xdg.pyr   zXDGMixin.user_data_dir   sA   ø€ õ ˜OÑ,Ô,Ð,ˆ4ð 	IØ×4Ò4°TÀ4Ð4ÑHÔHÐHÝ‰wŒwÔ$Ð$ó    ú	list[str]c                ój   •‡ — t          d¦  «        x}rˆ fd„|D ¦   «         S t          ¦   «         j        S )NÚXDG_DATA_DIRSc                ó:   •— g | ]}‰                      |¦  «        ‘ŒS © ©Ú_join_app_name_and_version©Ú.0Úpr   s     €r   ú
<listcomp>z,XDGMixin._site_data_dirs.<locals>.<listcomp>   ó'   ø€ ÐIÐIÐI¸1�D×3Ò3°AÑ6Ô6ÐIÐIÐIr   )Ú_xdg_dir_listr   Ú_site_data_dirs©r   Úxdg_dirsr   s   ` €r   r'   zXDGMixin._site_data_dirs   sA   øø€ å$ _Ñ5Ô5Ð5ˆ8ð 	JØIÐIÐIÐIÀÐIÑIÔIÐIÝ‰wŒwÔ&Ð&r   c                ó6   — |                       | 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                óz   •— t          d¦  «        x}r|                      |d¬¦  «        S t          ¦   «         j        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   r0   zXDGMixin.user_config_dir#   sB   ø€ õ Ð-Ñ.Ô.Ð.ˆ4ð 	IØ×4Ò4°TÀ4Ð4ÑHÔHÐHÝ‰wŒwÔ&Ð&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   r4   zXDGMixin._site_config_dirs*   sB   øø€ å$Ð%6Ñ7Ô7Ð7ˆ8ð 	JØIÐIÐIÐIÀÐIÑIÔIÐIÝ‰wŒwÔ(Ð(r   c                ó6   — |                       | j        ¦  «        S )z\Config directories shared by users, from ``$XDG_CONFIG_DIRS`` if set, else platform default.)r+   r4   r,   s    r   Úsite_config_dirzXDGMixin.site_config_dir0   s   € ð ×%Ò% dÔ&<Ñ=Ô=Ð=r   c                óz   •— t          d¦  «        x}r|                      |d¬¦  «        S t          ¦   «         j        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   r9   zXDGMixin.user_cache_dir5   óB   ø€ õ Ð,Ñ-Ô-Ð-ˆ4ð 	IØ×4Ò4°TÀ4Ð4ÑHÔHÐHÝ‰wŒwÔ%Ð%r   c                óz   •— t          d¦  «        x}r|                      |d¬¦  «        S t          ¦   «         j        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   r=   zXDGMixin.user_state_dir<   r:   r   c                óz   •— t          d¦  «        x}r|                      |d¬¦  «        S t          ¦   «         j        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   r@   zXDGMixin.user_runtime_dirC   sB   ø€ õ Ð-Ñ.Ô.Ð.ˆ4ð 	IØ×4Ò4°TÀ4Ð4ÑHÔHÐHÝ‰wŒwÔ'Ð'r   c                óz   •— t          d¦  «        x}r|                      |d¬¦  «        S t          ¦   «         j        S )z[Runtime directory shared by users, from ``$XDG_RUNTIME_DIR`` if set, else platform default.r?   Fr   )r   r   r   Úsite_runtime_dirr   s     €r   rB   zXDGMixin.site_runtime_dirJ   sB   ø€ õ Ð-Ñ.Ô.Ð.ˆ4ð 	JØ×4Ò4°TÀ5Ð4ÑIÔIÐIÝ‰wŒwÔ'Ð'r   c                óT   •— |                       d¦  «        pt          ¦   «         j        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   rF   zXDGMixin.user_documents_dirQ   ó&   ø€ ð ×"Ò"Ð#6Ñ7Ô7ÐU½5¹7¼7Ô;UÐUr   c                óT   •— |                       d¦  «        pt          ¦   «         j        S )z_Downloads directory tied to the user, from ``$XDG_DOWNLOAD_DIR`` if set, else platform default.ÚXDG_DOWNLOAD_DIR)rE   r   Úuser_downloads_dirrG   s    €r   rK   zXDGMixin.user_downloads_dirV   s&   ø€ ð ×"Ò"Ð#5Ñ6Ô6ÐT½%¹'¼'Ô:TÐTr   c                óT   •— |                       d¦  «        pt          ¦   «         j        S )z^Pictures directory tied to the user, from ``$XDG_PICTURES_DIR`` if set, else platform default.ÚXDG_PICTURES_DIR)rE   r   Úuser_pictures_dirrG   s    €r   rN   zXDGMixin.user_pictures_dir[   ó&   ø€ ð ×"Ò"Ð#5Ñ6Ô6ÐS½%¹'¼'Ô:SÐSr   c                óT   •— |                       d¦  «        pt          ¦   «         j        S )zZVideos directory tied to the user, from ``$XDG_VIDEOS_DIR`` if set, else platform default.ÚXDG_VIDEOS_DIR)rE   r   Úuser_videos_dirrG   s    €r   rR   zXDGMixin.user_videos_dir`   s&   ø€ ð ×"Ò"Ð#3Ñ4Ô4ÐO½¹¼Ô8OÐOr   c                óT   •— |                       d¦  «        pt          ¦   «         j        S )zXMusic directory tied to the user, from ``$XDG_MUSIC_DIR`` if set, else platform default.ÚXDG_MUSIC_DIR)rE   r   Úuser_music_dirrG   s    €r   rU   zXDGMixin.user_music_dire   s%   ø€ ð ×"Ò" ?Ñ3Ô3ÐMµu±w´wÔ7MÐMr   c                óT   •— |                       d¦  «        pt          ¦   «         j        S )z\Desktop directory tied to the user, from ``$XDG_DESKTOP_DIR`` if set, else platform default.ÚXDG_DESKTOP_DIR)rE   r   Úuser_desktop_dirrG   s    €r   rX   zXDGMixin.user_desktop_dirj   s&   ø€ ð ×"Ò"Ð#4Ñ5Ô5ÐQ½¹¼Ô9QÐQr   c                óT   •— |                       d¦  «        pt          ¦   «         j        S )z^Projects directory tied to the user, from ``$XDG_PROJECTS_DIR`` if set, else platform default.ÚXDG_PROJECTS_DIR)rE   r   Úuser_projects_dirrG   s    €r   r[   zXDGMixin.user_projects_diro   rO   r   c                óT   •— |                       d¦  «        pt          ¦   «         j        S )zePublic share directory tied to the user, from ``$XDG_PUBLICSHARE_DIR`` if set, else platform default.ÚXDG_PUBLICSHARE_DIR)rE   r   Úuser_publicshare_dirrG   s    €r   r^   zXDGMixin.user_publicshare_dirt   s&   ø€ ð ×"Ò"Ð#8Ñ9Ô9ÐY½U¹W¼WÔ=YÐYr   c                óT   •— |                       d¦  «        pt          ¦   «         j        S )z`Templates directory tied to the user, from ``$XDG_TEMPLATES_DIR`` if set, else platform default.ÚXDG_TEMPLATES_DIR)rE   r   Úuser_templates_dirrG   s    €r   ra   zXDGMixin.user_templates_diry   rH   r   Úenv_varú
str | Nonec                óR   — t          |¦  «        x}r|                      |¦  «         |S )N)r   Ú"_optionally_create_media_directory)r   rb   r   s      r   rE   zXDGMixin._xdg_media_dir~   s0   € Ý˜GÑ$Ô$Ð$ˆ4ð 	:Ø×3Ò3°DÑ9Ô9Ð9Øˆr   c                ó�   •— t          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   z/fonts)r   Úosr   Ú
expanduserr   Úuser_fonts_dirr   s     €r   ri   zXDGMixin.user_fonts_dirƒ   sF   ø€ õ ˜OÑ,Ô,Ð,ˆ4ð 	7Ý”g×(Ò(¨Ñ.Ô.Ð6Ð6Ð6Ð6Ý‰wŒwÔ%Ð%r   c                óÆ   •— t          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   Úapplications)r   rg   r   Újoinrh   r   Úuser_applications_dirr   s     €r   rm   zXDGMixin.user_applications_dirŠ   sN   ø€ õ ˜OÑ,Ô,Ð,ˆ4ð 	JÝ”7—<’<¥¤× 2Ò 2°4Ñ 8Ô 8¸.ÑIÔIÐIÝ‰wŒwÔ,Ð,r   c                ód   •— t          d¦  «        x}rd„ |D ¦   «         S t          ¦   «         j        S )Nr   c                óN   — g | ]"}t           j                             |d ¦  «        ‘Œ#S )rk   )rg   r   rl   )r"   r#   s     r   r$   z4XDGMixin._site_applications_dirs.<locals>.<listcomp>”   s(   € ÐFÐFÐF¸•B”G—L’L  NÑ3Ô3ÐFÐFÐFr   )r&   r   Ú_site_applications_dirsr(   s     €r   rp   z XDGMixin._site_applications_dirs‘   s:   ø€ å$ _Ñ5Ô5Ð5ˆ8ð 	GØFÐF¸XÐFÑFÔFÐFÝ‰wŒwÔ.Ð.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   )rp   Ú	multipathrg   Úpathseprl   )r   Údirss     r   Úsite_applications_dirzXDGMixin.site_applications_dir—   s0   € ð Ô+ˆØ(,¬ÐC�rŒz�Š˜tÑ$Ô$Ð$¸DÀ¼GÐCr   )r
   r   )r
   r   ©rb   r   r
   rc   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r'   r-   r0   r4   r6   r9   r=   r@   rB   rF   rK   rN   rR   rU   rX   r[   r^   ra   rE   ri   rm   rp   ru   Ú__classcell__)r   s   @r   r	   r	      s  ø€ € € € € ØrÐràð%ð %ð %ð %ð %ñ „Xð%ð ð'ð 'ð 'ð 'ð 'ñ „Xð'ð
 ð<ð <ð <ñ „Xð<ð ð'ð 'ð 'ð 'ð 'ñ „Xð'ð ð)ð )ð )ð )ð )ñ „Xð)ð
 ð>ð >ð >ñ „Xð>ð ð&ð &ð &ð &ð &ñ „Xð&ð ð&ð &ð &ð &ð &ñ „Xð&ð ð(ð (ð (ð (ð (ñ „Xð(ð ð(ð (ð (ð (ð (ñ „Xð(ð ðVð Vð Vð Vð Vñ „XðVð ðUð Uð Uð Uð Uñ „XðUð ðTð Tð Tð Tð Tñ „XðTð ðPð Pð Pð Pð Pñ „XðPð ðNð Nð Nð Nð Nñ „XðNð ðRð Rð Rð Rð Rñ „XðRð ðTð Tð Tð Tð Tñ „XðTð ðZð Zð Zð Zð Zñ „XðZð ðVð Vð Vð Vð Vñ „XðVðð ð ð ð
 ð&ð &ð &ð &ð &ñ „Xð&ð ð-ð -ð -ð -ð -ñ „Xð-ð ð/ð /ð /ð /ð /ñ „Xð/ð
 ðDð Dð Dñ „XðDð Dð Dð Dð Dr   r	   rb   r   r
   rc   c                ó–   — t           j                             | d¦  «                             ¦   «         }t	          j        |¦  «        r|nd S )NÚ )rg   ÚenvironÚgetÚstripÚ	posixpathÚisabs)rb   r   s     r   r   r   ž   s<   € Ý”*—.’. ¨"Ñ-Ô-×3Ò3Ñ5Ô5€DÝ”? 4Ñ(Ô(Ð2ˆ4ˆ4¨dÐ2r   r   c                ó–   ‡— ˆfd„t           j                             | d¦  «                             t           j        ¦  «        D ¦   «         S )Nc                ód   •— g | ],}t          j        |                     ¦   «         xŠ¦  «        ¯*‰‘Œ-S r   )r‚   rƒ   r�   )r"   r   Ústrippeds     €r   r$   z!_xdg_dir_list.<locals>.<listcomp>¤   sK   ø€ ð ð ð ØÍiÌoÐjn×jtÒjtÑjvÔjvÐ^vÐ^fÑNwÔNwðØðð ð r   r~   )rg   r   r€   Úsplitrs   )rb   r†   s    @r   r&   r&   £   sN   ø€ ðð ð ð ÝœZŸ^š^¨G°RÑ8Ô8×>Ò>½r¼zÑJÔJðñ ô ð r   r   c                óB  — dt           j        v rGt           j        d         s5t          ¦   «         x}€| n!|                     d¦  «        | dd…         z   pd}nt           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)rg   r   Ú_passwd_homeÚrstripr   rh   Ú
startswithÚRuntimeError)r   ÚhomeÚexpandedÚmsgs       r   Ú_expand_userr“   ©   s¨   € ð •”ÐÐ¥B¤J¨vÔ$6Ðå$0¡N¤NÐ2˜DÐ;�4�4À$Ç+Â+ÈcÑBRÔBRÐUYÐZ[ÐZ\ÐZ\ÔU]ÑB]ÐBdÐadˆˆå”7×%Ò% dÑ+Ô+ˆØ×Ò˜3ÑÔð  Øj¸DÐjÐjÐjˆÝ˜3ÑÔÐØ€Or   c                 óì   — t           j        dk    rd S t          t          t          ¦  «        5  dd l} |                      t          j        ¦   «         ¦  «        j	        cd d d ¦  «         S # 1 swxY w Y   d S )NÚwin32r   )
ÚsysÚplatformr   ÚImportErrorÚKeyErrorÚpwdÚgetpwuidrg   ÚgetuidÚpw_dir)rš   s    r   rŒ   rŒ   º   s¦   € Ý
„|�wÒÐØˆtÝ	•+�xÑ	(Ô	(ð 0ð 0Øˆ
ˆ
ˆ
à�|Š|�BœI™KœKÑ(Ô(Ô/ð0ð 0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð ˆ4s   ­/A)Á)A-Á0A-)r	   r“   r   rv   )rb   r   r
   r   )r   r   r
   r   )r
   rc   )rz   Ú
__future__r   rg   r‚   r–   Ú
contextlibr   Útypingr   Úapir   r	   r   r&   r“   rŒ   Ú__all__r   r   r   ú<module>r£      s  ðØ 8Ð 8à "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à  Ð  Ð  Ð  Ð  Ð  ðMDð MDð MDð MDð MDˆñ MDô MDð MDð`3ð 3ð 3ð 3ð
ð ð ð ðð ð ð ð"ð ð ð ðð ð €€€r   