
    Be!                         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e      Z  G d	 d      Z!d
 Z"y)    )	YAMLError)nprintDBG_NODEdbgnprintf)RegExp)
StreamStartEventStreamEndEventMappingStartEventMappingEndEventSequenceStartEventSequenceEndEvent
AliasEventScalarEventDocumentStartEventDocumentEndEvent)MappingNode
ScalarNodeSequenceNode
SerializerSerializerErrorc                       e Zd Zy)r   N)__name__
__module____qualname__     6lib/python3.12/site-packages/ruamel/yaml/serializer.pyr   r      s    r   c                   x    e Zd ZdZ ed      Z	 	 	 	 	 	 ddZed        Zed        Z	d Z
d Zd	 Zd
 Zd Zd Zy)r   zid%03dzid(?!000$)\d{3,}Nc                 T   || _         | j                   | | j                   _        || _        || _        || _        t        |t              r.t        t        t        |j                  d                  | _        n|| _        || _        i | _        i | _        d| _        d | _        d | _        y )N.r   )dumper_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closed_templated_id)selfencodingexplicit_startexplicit_endversiontagsr"   s          r   __init__zSerializer.__init__&   s     ;;"&*DKK#$"0 ,gs#$SgmmC.@%ABD&D "!r   c                     t        | j                  d      r| j                  j                  S | j                  j                  S Ntyp)hasattrr"   emitter_emitterr4   s    r   r?   zSerializer.emitterA   s2     4;;&;;&&&{{###r   c                     t        | j                  d      r| j                  j                   | j                  j                  S r<   )r>   r"   resolver	_resolverrA   s    r   rC   zSerializer.resolverH   s/     4;;&KK  {{$$$r   c                     | j                   7| j                  j                  t        | j                               d| _         y | j                   rt        d      t        d      )N)r5   Fserializer is closedzserializer is already opened)r2   r?   emitr	   r$   r   rA   s    r   openzSerializer.openO   sP    ;;LL.8I8IJKDK[[!"899!"@AAr   c                     | j                   t        d      | j                   s+| j                  j                  t	                      d| _         y y )Nserializer is not openedT)r2   r   r?   rG   r
   rA   s    r   closezSerializer.closeY   s@    ;;!"<==LLn./DK r   c                    t        t              rt        d       |j                          | j                  t        d      | j                  rt        d      | j                  j                  t        | j                  | j                  | j                               | j                  |       | j                  |d d        | j                  j                  t        | j                               i | _        i | _        d| _        y )NzSerializing nodesrJ   rF   )explicitr8   r9   )rM   r   )r   r   r   dumpr2   r   r?   rG   r   r%   r-   r.   anchor_nodeserialize_noder   r&   r/   r0   r1   )r4   nodes     r   	serializezSerializer.serialized   s    x=&'IIK;;!"<==[[!"89900$:J:JQUQ^Q^	

 	D$-*D4I4IJK "r   c                    || j                   v r/| j                   |   | j                  |      | j                   |<   y y d }	 |j                  j                  r|j                  j                  }|| j                   |<   t        |t              r#|j                  D ]  }| j                  |        y t        |t              r7|j                  D ]'  \  }}| j                  |       | j                  |       ) y y #  Y xY wN)	r0   generate_anchoranchoralways_dumpvaluer'   r   rO   r   )r4   rQ   rV   itemkeyrX   s         r   rO   zSerializer.anchor_nodey   s    4<<||D!)%)%9%9$%?T" * F;;**![[..F "(DLL$- JJ +D$$T*+D+."&** ,JC$$S)$$U+, /s   ,C7 7C;c                     	 |j                   j                  }|.| xj                  dz  c_        | j                  | j                  z  S |S #  d }Y 8xY w)N   )rV   rX   r1   ANCHOR_TEMPLATE)r4   rQ   rV   s      r   rU   zSerializer.generate_anchor   sV    	[[&&F >1$''$*=*===	Fs   A
 
Ac                    | j                   |   }|| j                  v r;t        |dd       }|dk7  rd }| j                  j	                  t        ||             y d| j                  |<   | j                  j                  ||       t        |t              r| j                  j                  t        |j                  d      }| j                  j                  t        |j                  d      }|j                  |k(  |j                  |k(  |j                  j                  d      f}| j                  j	                  t        ||j                  ||j                  |j                  |j                                n`t        |t"              r|j                  | j                  j                  t"        |j                  d      k(  }|j                   }	d }
d }|j$                  du r|	r|	d	   }|	rt'        |	      d
kD  r|	d
   }
nd }
| j                  j	                  t)        ||j                  ||j$                  |j                                d	}|j                  D ]  }| j+                  |||       |dz  } | j                  j	                  t-        ||
g             n?t        |t.              r.|j                  | j                  j                  t.        |j                  d      k(  }|j                   }	d }
d }|j$                  du r|	r|	d	   }|	rt'        |	      d
kD  r|	d
   }
| j                  j	                  t1        ||j                  ||j$                  |j                   t'        |j                                     |j                  D ]+  \  }}| j+                  ||d        | j+                  |||       - | j                  j	                  t3        ||
g             | j                  j5                          y )Nstyle?)r_   T)TF)FTztag:yaml.org,2002:)r_   commentr      )
flow_stylera   r\   )ra   )rc   ra   nr_items)r0   r/   getattrr?   rG   r   rC   descend_resolverr'   r   resolverX   tag
startswithr   r_   ra   r   rc   lenr   rP   r   r   r   r   ascend_resolver)r4   rQ   parentindexalias
node_styledetected_tagdefault_tagimplicitra   end_commentseq_commentrY   map_commentrZ   rX   s                   r   rP   zSerializer.serialize_node   sI   T"4((( w5JS !
LLjjAB*.D!!$'MM**659$
+  $}}44Z]["mm33J

MZXX-XX,HH''(<=
 !! 

"jj $	 D,/88t}}'<'<\4::W['\\,,""??d*&-ajs7|a/")!*K"&K!!& #'?? $  JJ D''dE:QJE !!"2K;U"VWD+.88t}}'<'<[$**VZ'[[,,""??d*&-ajs7|a/")!*K!!% #'?? $!$TZZ	 #'** :JC''T48''tS9: !!/;:T"UVMM))+r   )NNNNNN)r   r   r   r]   r   	ANCHOR_REr:   propertyr?   rC   rH   rK   rR   rO   rU   rP   r   r   r   r   r       su     O*+I "6 $ $ % %B *,*	S,r   c                 @    t         j                  j                  |       S rT   )r   rv   match)ss    r   templated_idr{      s    %%a((r   N)#ruamel.yaml.errorr   ruamel.yaml.compatr   r   r   r   ruamel.yaml.utilr   ruamel.yaml.eventsr	   r
   r   r   r   r   r   r   r   r   ruamel.yaml.nodesr   r   r   typingAnyDictUnionTextOptionalVersionType__all__r   r   r{   r   r   r   <module>r      sY    ( = = #   D C *
+	i 	L, L,^)r   