File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/serializers/__pycache__/yaml.cpython-310.pyc
o
�N�g� � @ sR d Z ddlZddlZddlZddlmZ ddlmZ ddlm Z m
Z
ddlmZ g d�Z
e�e�ZdZeed ej�Zeed
ej�ZddiZd
d� Zdd� ZG dd� de�ZG dd� de�Ze�ejej� e�dej � e�dej!� e�dej"� e�dej#� e�dej$� e�dej%� e�dej&� e�dej'� e�dej(� e�dej)� e�dej*� e�d ej+� G d!d"� d"e�Z,e,�-eej.� e,�-e/d�e,j0� e,�-ee,j1� e,�-e2e,j3� e,�-e4e,j5� e,�-e6e,j7� e,�-e8e,j9� e,�-e:e,j9� e,�-e;e,j<� e,�-e=e,j>� e,�-ej?e,j@� e,�-eje,jA� e,�-de,jB� e,�-ee,j<� dS )#z�
salt.serializers.yaml
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Implements YAML serializer.
Underneath, it is based on pyyaml and use the safe dumper and loader.
It also use C bindings if they are available.
� N)�ConstructorError)�ScannerError)�DeserializationError�SerializationError)�OrderedDict)�deserialize� serialize� availableTZCSafeLoaderZCSafeDumperz0found character '\t' that cannot start any tokenzIllegal tab characterc
K s� |� dt� z
tj| fi |��W S ty6 } zt�d� t�|j d�}|j
jd }t|||j
j
��d}~w tyJ } z t�d� t|��d}~w ty^ } z t�d� t|��d}~ww )z�
Deserialize any string of stream like object into a Python data structure.
:param stream_or_string: stream or string to deserialize.
:param options: options given to lower yaml module.
�Loaderz%Error encountered while deserializingzUnknown yaml render error� N)�
setdefaultr
�yaml�loadr �log� exception� ERROR_MAP�getZproblemZproblem_mark�liner �bufferr � Exception)Zstream_or_string�options�errorZerr_typeZline_num� r �I/opt/saltstack/salt/lib/python3.10/site-packages/salt/serializers/yaml.pyr $ s$
�
�
��r c
K s� |� dt� |� dd� z$tj| fi |��}|�d�r"|dd� W S |�d�r.|dd� W S |W S tyE } z t�d� t|��d}~ww ) z�
Serialize Python data to YAML.
:param obj: the data structure to serialize
:param options: options given to lower yaml module.
�DumperZdefault_flow_styleNz
...
����
���z#Error encountered while serializing) r r r
�dump�endswithr r r r )�objr �responser r r r r <