File: //opt/saltstack/salt/lib/python3.10/site-packages/relenv/__pycache__/common.cpython-310.pyc
o
;j=� � @ s� d Z ddlmZ ddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlmZmZmZmZmZmZ er`ddlmZmZmZ dZe�e �Z!e�"e#��$� j%Z&dZ'dZ(d Z)d
Z*dZ+dZ,d�dd�Z-d�dd�Z.d�dd�Z/d�dd�Z0d�d d!�Z1d�d#d$�Z2d�d%d&�Z3d'd(e� �iZ4d)Z5e'd*e)d+e(d,iZ6ej dkr�ej"�7� d- d. d/ Z8n ej"�7� d0 d/ Z8e�"ej9�:d1e8���$� Z;e�<d2�Z=e�<d3�Z>ej dkr�e=Z?ne>Z?G d4d5� d5e@�ZAG d6d7� d7eA�ZBG d8d9� d9eB�ZCG d:d;� d;eB�ZDG d<d=� d=eA�ZEG d>d?� d?eA�ZFG d@dA� dAeA�ZGG dBdC� dCeA�ZHG dDdE� dEeA�ZIG dFdG� dGeA�ZJe?fd�dKdL�ZKd�dMdN�ZL d�d�dQdR�ZMd�d�dTdU�ZNG dVdW� dW�ZO d�d�dXdY�ZP d�d�d\d]�ZQd�d�d`da�ZRd�dbdc�ZSd�dedf�ZTd�d�dhdi�ZUd�dmdn�ZVd�dqdr�ZWd�d�dxdy�ZX z { d�d�d�d��ZYd�d�d�d��ZZ � z { d�d�d�d��Z[d�d�d��Z\d�d�d��Z]d�d�d��Z^d�d�d��Z_d�d�d��Z`G d�d�� d��ZadS )�z/
Common classes and values used around relenv.
� )�annotationsN)�IO�
TYPE_CHECKING�Any�BinaryIO�Literal�cast)�Callable�Iterable�Mappingz0.22.14�linux�win32�darwinz10.15ZRELENV_TOOLCHAIN_CACHEz.toolchain-manifest.json�path�pathlib.Path�return�dict[str, str | int]c C s | � � }t| �� �|j|jd�S )N)�archive�size�mtime)�stat�str�resolve�st_size�st_mtime_ns)r r � r �A/opt/saltstack/salt/lib/python3.10/site-packages/relenv/common.py�_archive_metadata/ s
�r �pathlib.Path | Nonec C sv t j�t�} | r| �� �� dkrd S t�| ��� S dt jv r d S t j�d�}|r.t�|�}ntj� � d }|d d S )NZnone�RELENV_DATAZXDG_CACHE_HOMEz.cache�relenvZ
toolchains)
�os�environ�get�TOOLCHAIN_CACHE_ENV�strip�lower�pathlib�Path�
expanduser�home)�overrideZ
cache_home�baser r r �_toolchain_cache_root8 s
r- �toolchain_pathc C s | t S �N)�_TOOLCHAIN_MANIFEST)r. r r r �_toolchain_manifest_pathI s r1 �Mapping[str, Any] | Nonec C st | � � sd S z| jdd��
}t�|�}W d � n1 sw Y W n
ttjfy0 Y d S w t|t�s8d S |S )N�utf-8��encoding)�exists�open�json�load�OSError�JSONDecodeError�
isinstance�dict)r �handle�datar r r �_load_toolchain_manifestM s ���
r@ �manifest�Mapping[str, Any]�metadata�boolc C s<