관리-도구
편집 파일: unix.cpython-311.pyc
� �܋f� � � � d dl mZ d dlZd dlZd dlmZ d dlmZ ddlm Z ej � d� � rd dlmZ ndd�Z G d� d e � � Z dd�Zd gZdS )� )�annotationsN)�ConfigParser)�Path� )�PlatformDirsABC�linux)�getuid�return�intc � � t d� � �)Nzshould only be used on Linux)�RuntimeError� � �^/opt/cloudlinux/venv/lib64/python3.11/site-packages/pkg_resources/_vendor/platformdirs/unix.pyr r s � ��9�:�:�:r c �* � e Zd ZdZedd�� � Zedd�� � Zdd�Zedd�� � Zedd �� � Z edd �� � Z edd�� � Zedd�� � Zedd �� � Z edd�� � Zedd�� � Zedd�� � Zdd�ZdS )�UnixaD 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>`. r �strc �� � t j � dd� � }|� � � st j � 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��selfr s r � user_data_dirzUnix.user_data_dir sS � � �z�~�~�o�r�2�2���z�z�|�|� 8��7�%�%�&6�7�7�D��0�0��6�6�6r c � � t j � dd� � }|� � � sdt j � 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_DIRSr z/usr/local/sharez /usr/share)r r r r �pathsep�_with_multi_pathr s r � site_data_dirzUnix.site_data_dir) sO � � �z�~�~�o�r�2�2���z�z�|�|� =�<�b�j�<�<�<�D��$�$�T�*�*�*r r c � � � |� t j � � }� j s |dd� }� fd�|D � � }t j � |� � S )Nr r c �t �� g | ]4}�� t j � |� � � � ��5S r )r r r r )�.0�pr s �r � <listcomp>z)Unix._with_multi_path.<locals>.<listcomp>: s8 �� �a�a�a�RS�T�6�6�r�w�7I�7I�!�7L�7L�M�M�a�a�ar )�splitr r$ � multipath�join)r r � path_lists ` r r% zUnix._with_multi_path6 s[ �� ��J�J�r�z�*�*� ��~� '�!�!�A�#��I�a�a�a�a�W`�a�a�a� ��z���y�)�)�)r c �� � t j � dd� � }|� � � st j � d� � }| � |� � S )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_dirzUnix.user_config_dir= sS � � �z�~�~�/��4�4���z�z�|�|� 3��7�%�%�k�2�2�D��0�0��6�6�6r c � � t j � 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_DIRSr z/etc/xdg)r r r r r% r s r �site_config_dirzUnix.site_config_dirH sC � � �z�~�~�/��4�4���z�z�|�|� ��D��$�$�T�*�*�*r c �� � t j � dd� � }|� � � st j � d� � }| � |� � S )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_dirzUnix.user_cache_dirU sS � � �z�~�~�.��3�3���z�z�|�|� 2��7�%�%�j�1�1�D��0�0��6�6�6r c �� � t j � dd� � }|� � � st j � d� � }| � |� � S )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_dirzUnix.user_state_dir` sT � � �z�~�~�.��3�3���z�z�|�|� 8��7�%�%�&6�7�7�D��0�0��6�6�6r c �b � | j }| j r t j � |d� � }|S )zy :return: log directory tied to the user, same as `user_state_dir` if not opinionated else ``log`` in it �log)r; �opinionr r r. r s r �user_log_dirzUnix.user_log_dirk s0 � � �"���<� -��7�<�<��e�,�,�D��r c �� � t d� � }|�St j � dd� � � � � }|st j � d� � }|S )zU :return: documents directory tied to the user, e.g. ``~/Documents`` �XDG_DOCUMENTS_DIRNr z~/Documents)�_get_user_dirs_folderr r r r r r )r � documents_dirs r �user_documents_dirzUnix.user_documents_diru s^ � � .�.A�B�B� �� ��J�N�N�+>��C�C�I�I�K�K�M� � B� "�� 2� 2�=� A� A� ��r c � � t j � dd� � }|� � � sdt � � � �}| � |� � S )z� :return: runtime directory tied to the user, e.g. ``/run/user/$(id -u)/$appname/$version`` or ``$XDG_RUNTIME_DIR/$appname/$version`` �XDG_RUNTIME_DIRr z /run/user/)r r r r r r r s r �user_runtime_dirzUnix.user_runtime_dir� sO � � �z�~�~�/��4�4���z�z�|�|� +�*����*�*�D��0�0��6�6�6r r c �6 � | � | 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&