+
    i(                        R t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
Ht ^RIHt ]
'       d   ^ RIHt ]P                   R8X  d   R	 R
 ltM^ RIHt  ! R R]4      tR R ltR R ltR.tR# )zUnix.)annotationsN)ConfigParser)Path)TYPE_CHECKINGNoReturn)PlatformDirsABC)Iteratorwin32c                   V ^8  d   QhRR/# )   returnr    )formats   "d/home/wkmabra/.openclaw/workspace/venv/lib/python3.14/site-packages/pip/_vendor/platformdirs/unix.py__annotate__r      s        H      c                     R p \        V 4      h)zshould only be used on Unix)RuntimeError)msgs    r   getuidr      s    +3r   )r   c                      ] tR t^tRt]R R l4       t]R R l4       t]R R l4       t]R R	 l4       t	]R
 R l4       t
]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R  R! l4       t]R" R# l4       t]R$ R% l4       t]R& R' l4       t]R( R) l4       t]R* R+ l4       tR, R- ltR. R/ ltR0tR1# )2Unixaf  
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                   V ^8  d   QhRR/# r   r   strr   )r   s   "r   r   Unix.__annotate__(   s     7 7s 7r   c                    \         P                  P                  RR4      pVP                  4       '       g    \         P                  P                  R4      pV P                  V4      # )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     zz~~or2zz||77%%&67D0066r   c                   V ^8  d   QhRR/# r   r   z	list[str]r   )r   s   "r   r   r   3   s     V V Vr   c                	   \         P                  P                  R R4      pVP                  4       '       g   R\         P                   R2pVP                  \         P                  4       Uu. uF  q P                  V4      NK  	  up# u upi )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    zz~~or2zz||%bjj\<D>Bjj>TU>T11!4>TUUUs   ,Bc                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   :   s     
% 
%s 
%r   c                    V P                   pV P                  '       g
   V^ ,          # \        P                  P	                  V4      # )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``
)r3   	multipathr    r/   joinr(   dirss   & r   site_data_dirUnix.site_data_dir9   s4     ##~~~7Nzzt$$r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   G   s     7 7 7r   c                    \         P                  P                  RR4      pVP                  4       '       g    \         P                  P                  R4      pV P                  V4      # )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     zz~~/4zz||77%%k2D0066r   c                   V ^8  d   QhRR/# r,   r   )r   s   "r   r   r   R   s     V V9 Vr   c                	    \         P                  P                  R R4      pVP                  4       '       g   RpVP	                  \         P
                  4       Uu. uF  q P                  V4      NK  	  up# u upi )XDG_CONFIG_DIRSr   z/etc/xdg)r    r!   r"   r#   r0   r/   r&   r1   s   &  r   _site_config_dirsUnix._site_config_dirsQ   sW    zz~~/4zz||D>Bjj>TU>T11!4>TUUUs   A6c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   Y   s     
% 
% 
%r   c                    V P                   pV P                  '       g
   V^ ,          # \        P                  P	                  V4      # )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``
)rE   r7   r    r/   r8   r9   s   & r   site_config_dirUnix.site_config_dirX   s4     %%~~~7Nzzt$$r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   f        7 7 7r   c                    \         P                  P                  RR4      pVP                  4       '       g    \         P                  P                  R4      pV P                  V4      # )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     zz~~.3zz||77%%j1D0066r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   q        ? ? ?r   c                $    V P                  R4      # )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                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   v   rL   r   c                    \         P                  P                  RR4      pVP                  4       '       g    \         P                  P                  R4      pV P                  V4      # )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     zz~~.3zz||77%%&67D0066r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s      c r   c                    V P                   pV P                  '       d2   \        P                  P	                  VR4      pV P                  V4       V# )zg:return: log directory tied to the user, same as `user_state_dir` if not opinionated else ``log`` in itlog)rZ   opinionr    r$   r8   _optionally_create_directoryr'   s   & r   user_log_dirUnix.user_log_dir   s?     ""<<<77<<e,D--d3r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s     G GC Gr   c                    \        RR4      # )zC:return: documents directory tied to the user, e.g. ``~/Documents``XDG_DOCUMENTS_DIRz~/Documents_get_user_media_dirrT   s   &r   user_documents_dirUnix.user_documents_dir   s     ##6FFr   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s     F FC Fr   c                    \        RR4      # )zC:return: downloads directory tied to the user, e.g. ``~/Downloads``XDG_DOWNLOAD_DIRz~/Downloadsrf   rT   s   &r   user_downloads_dirUnix.user_downloads_dir   s     ##5}EEr   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s     E E3 Er   c                    \        RR4      # )zA:return: pictures directory tied to the user, e.g. ``~/Pictures``XDG_PICTURES_DIRz
~/Picturesrf   rT   s   &r   user_pictures_dirUnix.user_pictures_dir   s     ##5|DDr   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s     A A Ar   c                    \        RR4      # )z=:return: videos directory tied to the user, e.g. ``~/Videos``XDG_VIDEOS_DIRz~/Videosrf   rT   s   &r   user_videos_dirUnix.user_videos_dir   s     ##3Z@@r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      rR   r   c                    \        RR4      # )z;:return: music directory tied to the user, e.g. ``~/Music``XDG_MUSIC_DIRz~/Musicrf   rT   s   &r   user_music_dirUnix.user_music_dir   s     #?I>>r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s     C C# Cr   c                    \        RR4      # )z?:return: desktop directory tied to the user, e.g. ``~/Desktop``XDG_DESKTOP_DIRz	~/Desktoprf   rT   s   &r   user_desktop_dirUnix.user_desktop_dir   s     ##4kBBr   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s     7 7# 7r   c                h   \         P                  P                  RR4      pVP                  4       '       gm   \        P
                  P                  R4      '       d;   R\        4        2p\        V4      P                  4       '       g   R\        4        2pMR\        4        2pV P                  V4      # )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   z/var/run/user/z/tmp/runtime-z
/run/user/freebsdopenbsdnetbsd)r    r!   r"   r#   sysplatform
startswithr   r   existsr&   r'   s   & r   user_runtime_dirUnix.user_runtime_dir   s     zz~~/4zz||||&&'GHH'z2Dz((***68*5D#FH:.0066r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s     7 7# 7r   c                    \         P                  P                  RR4      pVP                  4       '       g+   \        P
                  P                  R4      '       d   RpMRpV P                  V4      # )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.
r   r   z/var/runz/runr   )r    r!   r"   r#   r   r   r   r&   r'   s   & r   site_runtime_dirUnix.site_runtime_dir   sU     zz~~/4zz||||&&'GHH!0066r   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r      s     I I Ir   c                8    V P                  V P                  4      # )zh:return: data path shared by users. Only return the first item, even if ``multipath`` is set to ``True``) _first_item_as_path_if_multipathr;   rT   s   &r   site_data_pathUnix.site_data_path   s     44T5G5GHHr   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s     K K$ Kr   c                8    V P                  V P                  4      # )zj:return: config path shared by the users, returns the first item, even if ``multipath`` is set to ``True``)r   rI   rT   s   &r   site_config_pathUnix.site_config_path   s     44T5I5IJJr   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s     J J Jr   c                8    V P                  V P                  4      # )zi:return: cache path shared by users. Only return the first item, even if ``multipath`` is set to ``True``)r   rU   rT   s   &r   site_cache_pathUnix.site_cache_path   s     44T5H5HIIr   c                   V ^8  d   QhRR/# r   r   zIterator[str]r   )r   s   "r   r   r      s     * *- *r   c              #  V   "   V P                   x  V P                   Rj  xL
  R#  L5i)z4:yield: all user and site configuration directories.N)r@   rE   rT   s   &r   iter_config_dirsUnix.iter_config_dirs   s      """))))   )')c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s     ( ( (r   c              #  V   "   V P                   x  V P                   Rj  xL
  R#  L5i)z+:yield: all user and site data directories.N)r)   r3   rT   s   &r   iter_data_dirsUnix.iter_data_dirs   s         ''''r   r   N)__name__
__module____qualname____firstlineno____doc__propertyr)   r3   r;   r@   rE   rI   rO   rU   rZ   ra   rh   rm   rr   rw   r|   r   r   r   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               $    V ^8  d   QhRRRRRR/# )r   env_varr   fallback_tilde_pathr   r   )r   s   "r   r   r      s!       3 3 r   c                    \        V 4      pVfV   \        P                  P                  V R4      P	                  4       pV'       g    \        P
                  P                  V4      pV# )Nr   )_get_user_dirs_folderr    r!   r"   r#   r$   r%   )r   r   	media_dirs   && r   rg   rg      sM    %g.IJJNN7B/557	**+>?Ir   c                    V ^8  d   QhRRRR/# )r   keyr   r   z
str | Noner   )r   s   "r   r   r      s      s z r   c                   \        \        4       P                  4      R,          pVP                  4       '       d   \	        4       pVP                  4       ;_uu_ 4       pVP                  RVP                  4        24       RRR4       WR,          9  d   R# VR,          V ,          P                  R4      pVP                  R\        P                  P                  R4      4      # R#   + '       g   i     Lo; i)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   r@   r   r   openread_stringreadr#   replacer    r$   r%   )r   user_dirs_config_pathparserstreamr$   s   &    r   r   r      s     !!7!78;KK##%%"''))V89 * Um#e}S!'',||GRWW%7%7%<== *)s   #C''C7	)r   
__future__r   r    r   configparserr   pathlibr   typingr   r   apir   collections.abcr   r   r   r   rg   r   __all__r   r   r   <module>r      s^     " 	 
 %  *  (<<7 
 N(? N(b4 r   