o
    jqi                      @  s   d dl mZ 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dZ$dS )    )annotations)	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!   ]/home/app/PaddleOCR-VL/.venv_paddleocr/lib/python3.10/site-packages/ruamel/yaml/serializer.pyr      s    c                   @  s   e Zd ZdZedZ						d$d%ddZed&ddZed&ddZ	d'ddZ
d'ddZd(ddZd(ddZd)ddZd*d"d#ZdS )+r   zid{:03d}zid(?!000$)\d{3,}Nencodingr   explicit_startOptional[bool]explicit_endversionOptional[VersionType]tagsdumperreturnNonec                 C  sz   || _ | j d ur| | j _|| _|| _|| _t|tr&ttt	|
d| _n|| _|| _i | _i | _d| _d | _d | _d S )N.r   )r*   Z_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)selfr#   r$   r&   r'   r)   r*   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r=   r!   r!   r"   rB   B      zSerializer.emitterc                 C  s   t | jdr
| jj | jjS r?   )rA   r*   resolverZ	_resolverrC   r!   r!   r"   rE   H   rD   zSerializer.resolverc                 C  s>   | j d u r| jt| jd d| _ d S | j rtdtd)N)r#   Fserializer is closedzserializer is already opened)r<   rB   emitr	   r.   r   rC   r!   r!   r"   openN   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)r<   r   rB   rG   r
   rC   r!   r!   r"   closeW   s   

zSerializer.closenodec                 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 nodesrI   rF   )explicitr'   r)   )rL   r   )r   r   r   dumpr<   r   rB   rG   r   r/   r7   r8   anchor_nodeserialize_noder   r0   r9   r:   r;   )r=   rK   r!   r!   r"   	serializea   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)	r:   generate_anchoranchorZalways_dumpvaluer1   r   rN   r   )r=   rK   rS   itemkeyrT   r!   r!   r"   rN   u   s,   





zSerializer.anchor_nodec                 C  sB   z|j j}W n   d }Y |d u r|  jd7  _| j| jS |S )N   )rS   rT   r;   ANCHOR_TEMPLATEformat)r=   rK   rS   r!   r!   r"   rR      s   zSerializer.generate_anchorparentindexc              
   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?)r\   T)TF)FTztag:yaml.org,2002:)r\   commentr      )
flow_styler^   rW   )r^   )r`   r^   Znr_items)r:   r9   getattrrB   rG   r   rE   Zdescend_resolverr1   r   resolverT   Zctagtag
startswithr   r\   r^   r   r`   lenr   rO   r   r   r   r   Zascend_resolver)r=   rK   rZ   r[   aliasZ
node_styleZdetected_tagdefault_tagZimplicitr^   Zend_commentZseq_commentrU   Zmap_commentrV   rT   r!   r!   r"   rO      s   








	



zSerializer.serialize_node)NNNNNN)r#   r   r$   r%   r&   r%   r'   r(   r)   r   r*   r   r+   r,   )r+   r   )r+   r,   )rK   r   r+   r,   )rK   r   r+   r   )rK   r   rZ   r   r[   r   r+   r,   )r   r   r    rX   r   	ANCHOR_REr>   propertyrB   rE   rH   rJ   rP   rN   rR   rO   r!   r!   r!   r"   r   !   s(    

	




sr   r+   r   c                 C  s   t j| S rQ   )r   rh   match)rj   r!   r!   r"   templated_id   s   rl   N)rj   r   r+   r   )%
__future__r   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   rl   r!   r!   r!   r"   <module>   s   0 H