HEX
Server: Apache
System: Linux p3plzcpnl506847.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: slfopp7cb1df (5698090)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/python38/lib/python3.8/site-packages/pip/_vendor/platformdirs/__pycache__/unix.cpython-38.pyc
U

�{�ei"�@s�dZddlmZddlZddlZddlmZddlmZddl	m
Z
ejdkr^d	d
�dd�Zndd
lmZGdd�de
�Z
dddd�dd�Zddd�dd�ZdgZdS)zUnix.�)�annotationsN)�ConfigParser)�Path�)�PlatformDirsABC�win32�int��returncCsd}t|��dS)Nzshould only be used on Unix)�RuntimeError)�msg�r
�A/tmp/pip-unpacked-wheel-_0scjqea/pip/_vendor/platformdirs/unix.py�getuid
sr)rc@sbeZdZdZedd�dd��Zedd�dd��Zddd�d	d
�Zedd�dd��Zedd�d
d��Z	edd�dd��Z
edd�dd��Zedd�dd��Zedd�dd��Z
edd�dd��Zedd�dd��Zedd�dd��Zedd�dd��Zedd�dd ��Zedd�d!d"��Zed#d�d$d%��Zed#d�d&d'��Zed#d�d(d)��Zdd#d*�d+d,�Zd-S).�Unixa�
    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 show 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>`.
    �strr	cCs,tj�dd�}|��s"tj�d�}|�|�S)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��selfrr
r
r�
user_data_dir"szUnix.user_data_dircCs.tj�dd�}|��s$dtj�d�}|�|�S)aY
        :return: data directories shared by users (if `multipath <platformdirs.api.PlatformDirsABC.multipath>` is
         enabled and ``XDG_DATA_DIR`` 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``
        �
XDG_DATA_DIRSrz/usr/local/sharez
/usr/share)rrrr�pathsep�_with_multi_pathrr
r
r�
site_data_dir-szUnix.site_data_dir)rr
cs<|�tj�}�js|dd�}�fdd�|D�}tj�|�S)Nrrcsg|]}��tj�|���qSr
)rrrr)�.0�p�rr
r�
<listcomp>>sz)Unix._with_multi_path.<locals>.<listcomp>)�splitrr �	multipath�join)rr�	path_listr
r%rr!:s
zUnix._with_multi_pathcCs,tj�dd�}|��s"tj�d�}|�|�S)z�
        :return: config directory tied to the user, e.g. ``~/.config/$appname/$version`` or
         ``$XDG_CONFIG_HOME/$appname/$version``
        �XDG_CONFIG_HOMErz	~/.configrrr
r
r�user_config_dirAszUnix.user_config_dircCs$tj�dd�}|��sd}|�|�S)a/
        :return: config directories shared by users (if `multipath <platformdirs.api.PlatformDirsABC.multipath>`
         is enabled and ``XDG_DATA_DIR`` 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``
        �XDG_CONFIG_DIRSrz/etc/xdg)rrrrr!rr
r
r�site_config_dirLszUnix.site_config_dircCs,tj�dd�}|��s"tj�d�}|�|�S)z�
        :return: cache directory tied to the user, e.g. ``~/.cache/$appname/$version`` or
         ``~/$XDG_CACHE_HOME/$appname/$version``
        �XDG_CACHE_HOMErz~/.cacherrr
r
r�user_cache_dirYszUnix.user_cache_dircCs
|�d�S)zM:return: cache directory shared by users, e.g. ``/var/tmp/$appname/$version``z/var/tmp)rr%r
r
r�site_cache_dirdszUnix.site_cache_dircCs,tj�dd�}|��s"tj�d�}|�|�S)z�
        :return: state directory tied to the user, e.g. ``~/.local/state/$appname/$version`` or
         ``$XDG_STATE_HOME/$appname/$version``
        �XDG_STATE_HOMErz~/.local/staterrr
r
r�user_state_diriszUnix.user_state_dircCs|j}|jrtj�|d�}|S)zg:return: log directory tied to the user, same as `user_state_dir` if not opinionated else ``log`` in it�log)r3�opinionrrr)rr
r
r�user_log_dirtszUnix.user_log_dircCs
tdd�S)zC:return: documents directory tied to the user, e.g. ``~/Documents``ZXDG_DOCUMENTS_DIRz~/Documents��_get_user_media_dirr%r
r
r�user_documents_dir|szUnix.user_documents_dircCs
tdd�S)zC:return: downloads directory tied to the user, e.g. ``~/Downloads``ZXDG_DOWNLOAD_DIRz~/Downloadsr7r%r
r
r�user_downloads_dir�szUnix.user_downloads_dircCs
tdd�S)zA:return: pictures directory tied to the user, e.g. ``~/Pictures``ZXDG_PICTURES_DIRz
~/Picturesr7r%r
r
r�user_pictures_dir�szUnix.user_pictures_dircCs
tdd�S)z=:return: videos directory tied to the user, e.g. ``~/Videos``ZXDG_VIDEOS_DIRz~/Videosr7r%r
r
r�user_videos_dir�szUnix.user_videos_dircCs
tdd�S)z;:return: music directory tied to the user, e.g. ``~/Music``Z
XDG_MUSIC_DIRz~/Musicr7r%r
r
r�user_music_dir�szUnix.user_music_dircCs^tj�dd�}|��sTtj�d�rHdt���}t|��	�sTdt���}ndt���}|�
|�S)az
        :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.
        ZXDG_RUNTIME_DIRr)ZfreebsdZopenbsdZnetbsdz/var/run/user/z
/tmp/runtime-z
/run/user/)rrrr�sys�platform�
startswithrr�existsrrr
r
r�user_runtime_dir�s
zUnix.user_runtime_dirrcCs|�|j�S)zd:return: data path shared by users. Only return first item, even if ``multipath`` is set to ``True``)� _first_item_as_path_if_multipathr"r%r
r
r�site_data_path�szUnix.site_data_pathcCs|�|j�S)zj:return: config path shared by the users. Only return first item, even if ``multipath`` is set to ``True``)rCr.r%r
r
r�site_config_path�szUnix.site_config_pathcCs|�|j�S)ze:return: cache path shared by users. Only return first item, even if ``multipath`` is set to ``True``)rCr1r%r
r
r�site_cache_path�szUnix.site_cache_path)�	directoryr
cCs|jr|�tj�d}t|�S)Nr)r(r'rr r)rrGr
r
rrC�sz%Unix._first_item_as_path_if_multipathN)�__name__�
__module__�__qualname__�__doc__�propertyrr"r!r,r.r0r1r3r6r9r:r;r<r=rBrDrErFrCr
r
r
rrsJ



rr)�env_var�fallback_tilde_pathr
cCs6t|�}|dkr2tj�|d���}|s2tj�|�}|S)Nr)�_get_user_dirs_folderrrrrrr)rMrNZ	media_dirr
r
rr8�sr8z
str | None)�keyr
c	Cs�tt�j�d}|��r|t�}|���}|�d|�����W5QRX||dkrVdS|d|�d�}|�	dt
j�d��SdS)zkReturn directory from user-dirs.dirs config file. See https://freedesktop.org/wiki/Software/xdg-user-dirs/.zuser-dirs.dirsz[top]
�topN�"z$HOME�~)
rrr,rAr�open�read_string�readr�replacerrr)rPZuser_dirs_config_path�parser�streamrr
r
rrO�s
rO)rK�
__future__rrr>�configparserr�pathlibr�apirr?rrr8rO�__all__r
r
r
r�<module>s
+
�