a
    њhE                     @   sF   d dgZ ddlmZ ddlT ddlT G dd deZG dd  d ZdS )
SerializerSerializerError   )	YAMLError)*c                   @   s   e Zd ZdS )r   N)__name__
__module____qualname__ r	   r	   J/wd/webapps/venvs/v2025_4um/lib/python3.9/site-packages/yaml/serializer.pyr      s   c                   @   sJ   e Zd ZdZdddZdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )r   zid%03dNc                 C   s:   || _ || _|| _|| _|| _i | _i | _d| _d | _d S )N    )	use_encodinguse_explicit_startuse_explicit_enduse_versionuse_tagsserialized_nodesanchorslast_anchor_idclosed)selfencodingZexplicit_startZexplicit_endversiontagsr	   r	   r
   __init__   s    zSerializer.__init__c                 C   s@   | j d u r$| t| jd d| _ n| j r4tdntdd S )N)r   Fserializer is closedzserializer is already opened)r   emitZStreamStartEventr   r   r   r	   r	   r
   open   s    

zSerializer.openc                 C   s0   | j d u rtdn| j s,| t  d| _ d S )Nserializer is not openedT)r   r   r   ZStreamEndEventr   r	   r	   r
   close$   s
    

zSerializer.closec                 C   s|   | j d u rtdn| j r"td| t| j| j| jd | | | |d d  | t	| j
d i | _i | _d| _d S )Nr   r   )explicitr   r   )r    r   )r   r   r   ZDocumentStartEventr   r   r   anchor_nodeserialize_nodeZDocumentEndEventr   r   r   r   r   noder	   r	   r
   	serialize.   s    



zSerializer.serializec                 C   s   || j v r*| j | d u r| || j |< nZd | j |< t|trV|jD ]}| | qDn.t|tr|jD ]\}}| | | | qfd S )N)r   generate_anchor
isinstanceSequenceNodevaluer!   MappingNode)r   r$   itemkeyr)   r	   r	   r
   r!   <   s    





zSerializer.anchor_nodec                 C   s   |  j d7  _ | j| j  S )Nr   )r   ANCHOR_TEMPLATEr#   r	   r	   r
   r&   J   s    zSerializer.generate_anchorc              	   C   s  | j | }|| jv r&| t| nbd| j|< | || t|tr| t|jd}| t|jd}|j	|k|j	|kf}| t
||j	||j|jd nt|tr
|j	| t|jdk}| t||j	||jd d}|jD ]}| ||| |d7 }q| t  nvt|tr|j	| t|jdk}| t||j	||jd |jD ]&\}	}
| |	|d  | |
||	 qL| t  |   d S )NT)TF)FT)style)
flow_styler   r   )r   r   r   Z
AliasEventZdescend_resolverr'   Z
ScalarNoderesolver)   tagZScalarEventr.   r(   ZSequenceStartEventr/   r"   ZSequenceEndEventr*   ZMappingStartEventZMappingEndEventZascend_resolver)r   r$   parentindexaliasZdetected_tagdefault_tagZimplicitr+   r,   r)   r	   r	   r
   r"   N   sH    






zSerializer.serialize_node)NNNNN)r   r   r   r-   r   r   r   r%   r!   r&   r"   r	   r	   r	   r
   r      s     
	
N)__all__errorr   eventsnodesr   r   r	   r	   r	   r
   <module>   s
   