o
    h!                     @   s   d dl mZ d dlmZmZmZmZ d dlmZ d dl	m
Z
mZmZmZmZmZmZmZmZmZ d dlmZmZmZ 	 d	d
gZG dd
 d
eZ G dd	 d	Z!dd Z"dS )    )	YAMLError)nprintDBG_NODEdbgnprintf)RegExp)
StreamStartEventStreamEndEventMappingStartEventMappingEndEventSequenceStartEventSequenceEndEvent
AliasEventScalarEventDocumentStartEventDocumentEndEvent)MappingNode
ScalarNodeSequenceNodeF)AnyDictUnionTextOptional)VersionType
SerializerSerializerErrorc                   @   s   e Zd ZdS )r   N)__name__
__module____qualname__ r    r    ^/var/www/html/magazine_api/magazine_env/lib/python3.10/site-packages/ruamel/yaml/serializer.pyr      s    c                   @   sv   e Zd ZdZedZ						dddZedd Ze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%03dzid(?!000$)\d{3,}Nc                 C   sz   || _ | j d ur| | j _|| _|| _|| _t|tr&ttt	|
d| _n|| _|| _i | _i | _d| _d | _d | _d S )N.r   )dumperZ_serializeruse_encodinguse_explicit_startuse_explicit_end
isinstancestrtuplemapintsplituse_versionuse_tagsserialized_nodesanchorslast_anchor_idclosedZ_templated_id)selfencodingZexplicit_startZexplicit_endversiontagsr#   r    r    r!   __init__&   s   



zSerializer.__init__c                 C   s   t | jdr
| jjS | jjS Ntyp)hasattrr#   emitterZ_emitterr3   r    r    r!   r;   A      zSerializer.emitterc                 C   s   t | jdr
| jj | jjS r8   )r:   r#   resolverZ	_resolverr<   r    r    r!   r>   H   r=   zSerializer.resolverc                 C   s>   | j d u r| jt| jd d| _ d S | j rtdtd)N)r4   Fserializer is closedzserializer is already opened)r2   r;   emitr   r$   r   r<   r    r    r!   openO   s   

zSerializer.openc                 C   s4   | j d u r	td| j s| jt  d| _ d S d S )Nserializer is not openedT)r2   r   r;   r@   r	   r<   r    r    r!   closeY   s   

zSerializer.closec                 C   s   t trtd |  | jd u rtd| jrtd| jt| j	| j
| jd | | | |d d  | jt| jd i | _i | _d| _d S )NzSerializing nodesrB   r?   )explicitr5   r6   )rD   r   )r   r   r   dumpr2   r   r;   r@   r   r%   r-   r.   anchor_nodeserialize_noder   r&   r/   r0   r1   )r3   noder    r    r!   	serialized   s$   


zSerializer.serializec                 C   s   || j v r| j | d u r| || j |< d S d S d }z
|jjr#|jj}W n   Y || j |< t|tr@|jD ]}| | q6d S t|trW|jD ]\}}| | | | qHd S d S N)	r0   generate_anchoranchorZalways_dumpvaluer'   r   rF   r   )r3   rH   rL   itemkeyrM   r    r    r!   rF   y   s,   





zSerializer.anchor_nodec                 C   s@   z|j j}W n   d }Y |d u r|  jd7  _| j| j S |S )N   )rL   rM   r1   ANCHOR_TEMPLATE)r3   rH   rL   r    r    r!   rK      s   zSerializer.generate_anchorc              
   C   sj  | j | }|| jv r"t|dd }|dkrd }| jt||d d S d| j|< | j|| t|t	rg| j
t	|jd}| j
t	|jd}|j|k|j|k|jdf}| jt||j||j|j|jd nt|tr|j| j
t|jdk}|j}	d }
d }|jdu r|	r|	d	 }|	rt|	d
kr|	d
 }
nd }
| jt||j||j|jd d	}|jD ]}| ||| |d7 }q| jt||
gd nft|tr.|j| j
t|jdk}|j}	d }
d }|jdu r|	r|	d	 }|	rt|	d
kr|	d
 }
| jt||j||j|jt|jd |jD ]\}}| ||d  | ||| q| jt||
gd | j  d S )Nstyle?)rR   T)TF)FTztag:yaml.org,2002:)rR   commentr      )
flow_stylerT   rP   )rT   )rV   rT   Znr_items)r0   r/   getattrr;   r@   r   r>   Zdescend_resolverr'   r   resolverM   tag
startswithr   rR   rT   r   rV   lenr   rG   r   r   r
   r   Zascend_resolver)r3   rH   parentindexaliasZ
node_styleZdetected_tagdefault_tagZimplicitrT   Zend_commentZseq_commentrN   Zmap_commentrO   rM   r    r    r!   rG      s   








	



zSerializer.serialize_node)NNNNNN)r   r   r   rQ   r   	ANCHOR_REr7   propertyr;   r>   rA   rC   rI   rF   rK   rG   r    r    r    r!   r       s(    



c                 C   s   t j| S rJ   )r   r`   match)sr    r    r!   templated_id   s   rd   N)#Zruamel.yaml.errorr   Zruamel.yaml.compatr   r   r   r   Zruamel.yaml.utilr   Zruamel.yaml.eventsr   r	   r
   r   r   r   r   r   r   r   Zruamel.yaml.nodesr   r   r   typingr   r   r   r   r   r   __all__r   r   rd   r    r    r    r!   <module>   s   0 P