File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/__pycache__/yamlloader.cpython-310.pyc
o
�N�g � @ sr d Z ddlZddlmZ ddlmZmZ ddlZe edej
�Zg d�ZG dd� de�Z
e
fd d
�Ze
fdd�ZdS )
z
Custom YAML loading in Salt
� N)�ConstructorError)�MappingNode�SequenceNodeZCSafeLoader)�SaltYamlSafeLoader�load� safe_loadc sZ e Zd ZdZef� fdd� Zdd� Zdd� Zdd d
�Z� fdd�Z d
d� Z
dd� Z� ZS )r z�
Create a custom YAML loader that uses the custom constructor. This allows
for the YAML loading defaults to be manipulated based on needs within salt
to make things like sls file more intuitive.
c sx t � �|� |tur| �dt| �j� | �dt| �j� | �dt| �j� | �dt| �j� | �dt| �j� || _ d S )Nztag:yaml.org,2002:mapztag:yaml.org,2002:omap�tag:yaml.org,2002:strz tag:yaml.org,2002:python/unicodeztag:yaml.org,2002:timestamp)
�super�__init__�dictZadd_constructor�type�construct_yaml_map�construct_yaml_str�construct_unicode�construct_scalar� dictclass)�self�streamr �� __class__� �I/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/yamlloader.pyr
s
�
�
zSaltYamlSafeLoader.__init__c c s( � | � � }|V | �|�}|�|� d S �N)r �construct_mapping�update)r �node�data�valuer r r r
) s
�
z%SaltYamlSafeLoader.construct_yaml_mapc C s |j S r �r �r r r r r r / s z$SaltYamlSafeLoader.construct_unicodeFc C s� t |t�stddd|j� �|j��| �|� d}| �� }|jD ]B\}}| j||d�}zt |� W n t
yD t||jd|j� �|j��w | j||d�}||v r]t||jd|� d�|j��|||<