ó
    ‘RjÚ(  ã                  óÚ   • S r SSKJr  SSKrSSKrSSKJr  SSKJr  SSK	J
r
Jr  SSKJr  \
(       a  SS	KJr  \R                   S
:X  a  SS jrOSSKJr   " S S\5      rSS jrSS jrS/rg)zUnix.é    )ÚannotationsN)ÚConfigParser)ÚPath)ÚTYPE_CHECKINGÚNoReturné   )ÚPlatformDirsABC)ÚIteratorÚwin32c                 ó   • Sn [        U 5      e)Nzshould only be used on Unix)ÚRuntimeError)Úmsgs    ÚID:\diplom_project\venv\Lib\site-packages\pip/_vendor/platformdirs/unix.pyÚgetuidr      s   € Ø+ˆÜ˜3ÓÐó    )r   c                  óÐ  • \ rS rSrSr\SS j5       r\SS j5       r\SS j5       r\SS j5       r	\SS j5       r
\SS j5       r\SS	 j5       r\SS
 j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       rSS jrSS jrSrg) ÚUnixé   af  
On Unix/Linux, we follow the `XDG Basedir Spec <https://specifications.freedesktop.org/basedir-spec/basedir-spec-
latest.html>`_.

The spec allows overriding directories with environment variables. The examples shown are the default values,
alongside the name of the environment variable that overrides them. Makes use of the `appname
<platformdirs.api.PlatformDirsABC.appname>`, `version <platformdirs.api.PlatformDirsABC.version>`, `multipath
<platformdirs.api.PlatformDirsABC.multipath>`, `opinion <platformdirs.api.PlatformDirsABC.opinion>`, `ensure_exists
<platformdirs.api.PlatformDirsABC.ensure_exists>`.

c                óÌ   • [         R                  R                  SS5      nUR                  5       (       d  [         R                  R                  S5      nU R                  U5      $ )z~
:return: data directory tied to the user, e.g. ``~/.local/share/$appname/$version`` or
 ``$XDG_DATA_HOME/$appname/$version``
ÚXDG_DATA_HOMEÚ z~/.local/share©ÚosÚenvironÚgetÚstripÚpathÚ
expanduserÚ_append_app_name_and_version©Úselfr   s     r   Úuser_data_dirÚUnix.user_data_dir'   sI   € ô �z‰z�~‰~˜o¨rÓ2ˆØ�z‰z�|‰|Ü—7‘7×%Ñ%Ð&6Ó7ˆDØ×0Ñ0°Ó6Ð6r   c                ó  • [         R                  R                  SS5      nUR                  5       (       d  S[         R                   S3nUR                  [         R                  5       Vs/ s H  o R                  U5      PM     sn$ s  snf )NÚXDG_DATA_DIRSr   z/usr/local/sharez
/usr/share)r   r   r   r   ÚpathsepÚsplitr   ©r!   r   Úps      r   Ú_site_data_dirsÚUnix._site_data_dirs2   sc   € ä�z‰z�~‰~˜o¨rÓ2ˆØ�z‰z�|‰|Ø%¤b§j¡j \°Ð<ˆDØ>B¿j¹jÌÏÉÔ>TÓUÒ>T¸×1Ñ1°!Ö4Ñ>TÑUÐUùÒUs   Á+Bc                ó„   • U R                   nU R                  (       d  US   $ [        R                  R	                  U5      $ )a:  
:return: data directories shared by users (if `multipath <platformdirs.api.PlatformDirsABC.multipath>` is
 enabled and ``XDG_DATA_DIRS`` is set and a multi path the response is also a multi path separated by the
 OS path separator), e.g. ``/usr/local/share/$appname/$version`` or ``/usr/share/$appname/$version``
r   )r*   Ú	multipathr   r&   Újoin©r!   Údirss     r   Úsite_data_dirÚUnix.site_data_dir9   s2   € ð ×#Ñ#ˆØ�~�~Ø˜‘7ˆNÜ�z‰z�‰˜tÓ$Ð$r   c                óÌ   • [         R                  R                  SS5      nUR                  5       (       d  [         R                  R                  S5      nU R                  U5      $ )z}
:return: config directory tied to the user, e.g. ``~/.config/$appname/$version`` or
 ``$XDG_CONFIG_HOME/$appname/$version``
ÚXDG_CONFIG_HOMEr   z	~/.configr   r    s     r   Úuser_config_dirÚUnix.user_config_dirF   sI   € ô �z‰z�~‰~Ð/°Ó4ˆØ�z‰z�|‰|Ü—7‘7×%Ñ% kÓ2ˆDØ×0Ñ0°Ó6Ð6r   c                óö   • [         R                  R                  SS5      nUR                  5       (       d  SnUR	                  [         R
                  5       Vs/ s H  o R                  U5      PM     sn$ s  snf )NÚXDG_CONFIG_DIRSr   z/etc/xdg)r   r   r   r   r'   r&   r   r(   s      r   Ú_site_config_dirsÚUnix._site_config_dirsQ   sW   € ä�z‰z�~‰~Ð/°Ó4ˆØ�z‰z�|‰|ØˆDØ>B¿j¹jÌÏÉÔ>TÓUÒ>T¸×1Ñ1°!Ö4Ñ>TÑUÐUùÒUs   ÁA6c                ó„   • U R                   nU R                  (       d  US   $ [        R                  R	                  U5      $ )a  
:return: config directories shared by users (if `multipath <platformdirs.api.PlatformDirsABC.multipath>`
 is enabled and ``XDG_CONFIG_DIRS`` is set and a multi path the response is also a multi path separated by
 the OS path separator), e.g. ``/etc/xdg/$appname/$version``
r   )r9   r-   r   r&   r.   r/   s     r   Úsite_config_dirÚUnix.site_config_dirX   s2   € ð ×%Ñ%ˆØ�~�~Ø˜‘7ˆNÜ�z‰z�‰˜tÓ$Ð$r   c                óÌ   • [         R                  R                  SS5      nUR                  5       (       d  [         R                  R                  S5      nU R                  U5      $ )z|
:return: cache directory tied to the user, e.g. ``~/.cache/$appname/$version`` or
 ``~/$XDG_CACHE_HOME/$appname/$version``
ÚXDG_CACHE_HOMEr   z~/.cacher   r    s     r   Úuser_cache_dirÚUnix.user_cache_dire   sI   € ô �z‰z�~‰~Ð.°Ó3ˆØ�z‰z�|‰|Ü—7‘7×%Ñ% jÓ1ˆDØ×0Ñ0°Ó6Ð6r   c                ó$   • U R                  S5      $ )zO:return: cache directory shared by users, e.g. ``/var/cache/$appname/$version``z
/var/cache)r   ©r!   s    r   Úsite_cache_dirÚUnix.site_cache_dirp   s   € ð ×0Ñ0°Ó>Ð>r   c                óÌ   • [         R                  R                  SS5      nUR                  5       (       d  [         R                  R                  S5      nU R                  U5      $ )z€
:return: state directory tied to the user, e.g. ``~/.local/state/$appname/$version`` or
 ``$XDG_STATE_HOME/$appname/$version``
ÚXDG_STATE_HOMEr   z~/.local/stater   r    s     r   Úuser_state_dirÚUnix.user_state_diru   sJ   € ô �z‰z�~‰~Ð.°Ó3ˆØ�z‰z�|‰|Ü—7‘7×%Ñ%Ð&6Ó7ˆDØ×0Ñ0°Ó6Ð6r   c                ó¢   • U R                   nU R                  (       a1  [        R                  R	                  US5      nU R                  U5        U$ )zg:return: log directory tied to the user, same as `user_state_dir` if not opinionated else ``log`` in itÚlog)rH   Úopinionr   r   r.   Ú_optionally_create_directoryr    s     r   Úuser_log_dirÚUnix.user_log_dir€   s=   € ð ×"Ñ"ˆØ�<�<Ü—7‘7—<‘<  eÓ,ˆDØ×-Ñ-¨dÔ3Øˆr   c                ó   • [        SS5      $ )zC:return: documents directory tied to the user, e.g. ``~/Documents``ÚXDG_DOCUMENTS_DIRz~/Documents©Ú_get_user_media_dirrC   s    r   Úuser_documents_dirÚUnix.user_documents_dir‰   s   € ô #Ð#6¸ÓFÐFr   c                ó   • [        SS5      $ )zC:return: downloads directory tied to the user, e.g. ``~/Downloads``ÚXDG_DOWNLOAD_DIRz~/DownloadsrR   rC   s    r   Úuser_downloads_dirÚUnix.user_downloads_dirŽ   s   € ô #Ð#5°}ÓEÐEr   c                ó   • [        SS5      $ )zA:return: pictures directory tied to the user, e.g. ``~/Pictures``ÚXDG_PICTURES_DIRz
~/PicturesrR   rC   s    r   Úuser_pictures_dirÚUnix.user_pictures_dir“   s   € ô #Ð#5°|ÓDÐDr   c                ó   • [        SS5      $ )z=:return: videos directory tied to the user, e.g. ``~/Videos``ÚXDG_VIDEOS_DIRz~/VideosrR   rC   s    r   Úuser_videos_dirÚUnix.user_videos_dir˜   s   € ô #Ð#3°ZÓ@Ð@r   c                ó   • [        SS5      $ )z;:return: music directory tied to the user, e.g. ``~/Music``ÚXDG_MUSIC_DIRz~/MusicrR   rC   s    r   Úuser_music_dirÚUnix.user_music_dir�   s   € ô # ?°IÓ>Ð>r   c                ó   • [        SS5      $ )z?:return: desktop directory tied to the user, e.g. ``~/Desktop``ÚXDG_DESKTOP_DIRz	~/DesktoprR   rC   s    r   Úuser_desktop_dirÚUnix.user_desktop_dir¢   s   € ô #Ð#4°kÓBÐBr   c                ób  • [         R                  R                  SS5      nUR                  5       (       dj  [        R
                  R                  S5      (       a9  S[        5        3n[        U5      R                  5       (       d  S[        5        3nOS[        5        3nU R                  U5      $ )aJ  
:return: runtime directory tied to the user, e.g. ``/run/user/$(id -u)/$appname/$version`` or
 ``$XDG_RUNTIME_DIR/$appname/$version``.

 For FreeBSD/OpenBSD/NetBSD, it would return ``/var/run/user/$(id -u)/$appname/$version`` if
 exists, otherwise ``/tmp/runtime-$(id -u)/$appname/$version``, if``$XDG_RUNTIME_DIR``
 is not set.
ÚXDG_RUNTIME_DIRr   ©ÚfreebsdÚopenbsdÚnetbsdz/var/run/user/z/tmp/runtime-z
/run/user/)r   r   r   r   ÚsysÚplatformÚ
startswithr   r   Úexistsr   r    s     r   Úuser_runtime_dirÚUnix.user_runtime_dir§   s‰   € ô �z‰z�~‰~Ð/°Ó4ˆØ�z‰z�|‰|Ü�|‰|×&Ñ&Ð'G×HÑHØ'¬« zÐ2�Ü˜D“z×(Ñ(×*Ñ*Ø*¬6«8¨*Ð5�Døà#¤F£H :Ð.�Ø×0Ñ0°Ó6Ð6r   c                óà   • [         R                  R                  SS5      nUR                  5       (       d)  [        R
                  R                  S5      (       a  SnOSnU R                  U5      $ )a5  
:return: runtime directory shared by users, e.g. ``/run/$appname/$version`` or         ``$XDG_RUNTIME_DIR/$appname/$version``.

Note that this behaves almost exactly like `user_runtime_dir` if ``$XDG_RUNTIME_DIR`` is set, but will
fall back to paths associated to the root user instead of a regular logged-in user if it's not set.

If you wish to ensure that a logged-in root user path is returned e.g. ``/run/user/0``, use `user_runtime_dir`
instead.

For FreeBSD/OpenBSD/NetBSD, it would return ``/var/run/$appname/$version`` if ``$XDG_RUNTIME_DIR`` is not set.
rk   r   rl   z/var/runz/run)r   r   r   r   rp   rq   rr   r   r    s     r   Úsite_runtime_dirÚUnix.site_runtime_dir»   sU   € ô �z‰z�~‰~Ð/°Ó4ˆØ�z‰z�|‰|Ü�|‰|×&Ñ&Ð'G×HÑHØ!‘à�Ø×0Ñ0°Ó6Ð6r   c                ó8   • U R                  U R                  5      $ )zh:return: data path shared by users. Only return the first item, even if ``multipath`` is set to ``True``)Ú _first_item_as_path_if_multipathr1   rC   s    r   Úsite_data_pathÚUnix.site_data_pathÑ   s   € ð ×4Ñ4°T×5GÑ5GÓHÐHr   c                ó8   • U R                  U R                  5      $ )zj:return: config path shared by the users, returns the first item, even if ``multipath`` is set to ``True``)rz   r<   rC   s    r   Úsite_config_pathÚUnix.site_config_pathÖ   s   € ð ×4Ñ4°T×5IÑ5IÓJÐJr   c                ó8   • U R                  U R                  5      $ )zi:return: cache path shared by users. Only return the first item, even if ``multipath`` is set to ``True``)rz   rD   rC   s    r   Úsite_cache_pathÚUnix.site_cache_pathÛ   s   € ð ×4Ñ4°T×5HÑ5HÓIÐIr   c              #  óT   #   • U R                   v •  U R                   Sh  v•N   g N7f)z4:yield: all user and site configuration directories.N)r5   r9   rC   s    r   Úiter_config_dirsÚUnix.iter_config_dirsà   s    é € à×"Ñ"Ò"Ø×)Ñ)×)Ó)ùó   ‚( &¡(c              #  óT   #   • U R                   v •  U R                   Sh  v•N   g N7f)z+:yield: all user and site data directories.N)r"   r*   rC   s    r   Úiter_data_dirsÚUnix.iter_data_dirså   s    é € à× Ñ Ò Ø×'Ñ'×'Ó'ùr†   © N)ÚreturnÚstr)r‹   z	list[str])r‹   r   )r‹   zIterator[str])Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úpropertyr"   r*   r1   r5   r9   r<   r@   rD   rH   rN   rT   rX   r\   r`   rd   rh   rt   rw   r{   r~   r�   r„   rˆ   Ú__static_attributes__rŠ   r   r   r   r      sÉ  † ñ
ð ó7ó ð7ð óVó ðVð ó
%ó ð
%ð ó7ó ð7ð óVó ðVð ó
%ó ð
%ð ó7ó ð7ð ó?ó ð?ð ó7ó ð7ð óó ðð óGó ðGð óFó ðFð óEó ðEð óAó ðAð ó?ó ð?ð óCó ðCð ó7ó ð7ð& ó7ó ð7ð* óIó ðIð óKó ðKð óJó ðJô*÷
(r   r   c                óÊ   • [        U 5      nUcT  [        R                  R                  U S5      R	                  5       nU(       d  [        R
                  R                  U5      nU$ )Nr   )Ú_get_user_dirs_folderr   r   r   r   r   r   )Úenv_varÚfallback_tilde_pathÚ	media_dirs      r   rS   rS   ë   sM   € Ü% gÓ.€IØÑÜ—J‘J—N‘N 7¨BÓ/×5Ñ5Ó7ˆ	ÞÜŸ™×*Ñ*Ð+>Ó?ˆIàÐr   c                ó¸  • [        [        5       R                  5      S-  nUR                  5       (       a”  [	        5       nUR                  5        nUR                  SUR                  5        35        SSS5        XS   ;  a  gUS   U    R                  S5      nUR                  S[        R                  R                  S5      5      $ g! , (       d  f       N^= f)zo
Return directory from user-dirs.dirs config file.

See https://freedesktop.org/wiki/Software/xdg-user-dirs/.

zuser-dirs.dirsz[top]
NÚtopÚ"z$HOMEÚ~)r   r   r5   rs   r   ÚopenÚread_stringÚreadr   Úreplacer   r   r   )ÚkeyÚuser_dirs_config_pathÚparserÚstreamr   s        r   r•   r•   õ   sµ   € ô !¤£×!7Ñ!7Ó8Ð;KÑKÐØ×#Ñ#×%Ñ%Ü“ˆà"×'Ñ'Ô)¨Và×Ñ ¨¯©«¨Ð8Ô9÷ *ð ˜U‘mÓ#Øà�e‰}˜SÑ!×'Ñ'¨Ó,ˆà�|‰|˜G¤R§W¡W×%7Ñ%7¸Ó%<Ó=Ð=à÷ *Õ)ús   Á#CÃ
C)r‹   r   )r–   rŒ   r—   rŒ   r‹   rŒ   )r¡   rŒ   r‹   z
str | None)r‘   Ú
__future__r   r   rp   Úconfigparserr   Úpathlibr   Útypingr   r   Úapir	   Úcollections.abcr
   rq   r   r   rS   r•   Ú__all__rŠ   r   r   Ú<module>r¬      s^   ðÙ å "ã 	Û 
Ý %Ý ß *å  æÝ(à‡<�<�7Óõ õ
 ôN(ˆ?ô N(ôbôð4 ð�r   