
    hS!                         S SK Jr  SSKJr  SSKJrJrJrJrJ	r	  SSK
Jr  SSKJrJrJrJrJrJrJrJrJrJr  SSKJrJrJr   SS	/r" " S
 S	\5      r# " S S\$5      r%S r&g)    )absolute_import   )	YAMLError)nprintDBG_NODEdbgstring_typesnprintf)RegExp)
StreamStartEventStreamEndEventMappingStartEventMappingEndEventSequenceStartEventSequenceEndEvent
AliasEventScalarEventDocumentStartEventDocumentEndEvent)MappingNode
ScalarNodeSequenceNode
SerializerSerializerErrorc                       \ rS rSrSrg)r       N)__name__
__module____qualname____firstlineno____static_attributes__r       V/home/james-whalen/.local/lib/python3.13/site-packages/srsly/ruamel_yaml/serializer.pyr   r      s    r#   c                       \ rS rSrSr\" S5      r      SS jr\S 5       r	\S 5       r
S rS	 rS
 rS rS rS rSrg)r   "   zid%03dzid(?!000$)\d{3,}Nc                 R   X`l         U R                   b  X R                   l        Xl        X l        X0l        [        U[        5      (       a.  [        [        [        UR                  S5      5      5      U l        OX@l        XPl        0 U l        0 U l        SU l        S U l        S U l        g )N.r   )dumper_serializeruse_encodinguse_explicit_startuse_explicit_end
isinstancer	   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__Serializer.__init__(   s     ;;"&*KK#$"0 ,g|,,$SgmmC.@%ABD& "!r#   c                     [        U R                  S5      (       a  U R                  R                  $ U R                  R                  $ Ntyp)hasattrr)   emitter_emitterr:   s    r$   rF   Serializer.emitterC   s5     4;;&&;;&&&{{###r#   c                     [        U R                  S5      (       a  U R                  R                    U R                  R                  $ rC   )rE   r)   resolver	_resolverrH   s    r$   rK   Serializer.resolverJ   s2     4;;&&KK  {{$$$r#   c                     U R                   c4  U R                  R                  [        U R                  S95        SU l         g U R                   (       a  [        S5      e[        S5      e)N)r;   Fserializer is closedzserializer is already opened)r8   rF   emitr   r+   r   rH   s    r$   openSerializer.openQ   sP    ;;LL.8I8IJKDK[[!"899!"@AAr#   c                     U R                   c  [        S5      eU R                   (       d+  U R                  R                  [	        5       5        SU l         g g )Nserializer is not openedT)r8   r   rF   rP   r   rH   s    r$   closeSerializer.close[   s@    ;;!"<==LLn./DK r#   c                    [        [        5      (       a  [        S5        UR                  5         U R                  c  [        S5      eU R                  (       a  [        S5      eU R                  R                  [        U R                  U R                  U R                  S95        U R                  U5        U R                  US S 5        U R                  R                  [        U R                  S95        0 U l        0 U l        SU l        g )NzSerializing nodesrT   rO   )explicitr>   r?   )rX   r   )r   r   r   dumpr8   r   rF   rP   r   r,   r3   r4   anchor_nodeserialize_noder   r-   r5   r6   r7   )r:   nodes     r$   	serializeSerializer.serializef   s    x==&'IIK;;!"<==[[!"89900((]]	
 	D$-*D4I4IJK "r#   c                 "   XR                   ;   a0  U R                   U   c  U R                  U5      U R                   U'   g g S n UR                  R                  (       a  UR                  R                  nX R                   U'   [        U[        5      (       a%  UR                   H  nU R                  U5        M     g [        U[        5      (       a8  UR                   H'  u  pEU R                  U5        U R                  U5        M)     g g !    N= fN)	r6   generate_anchoranchoralways_dumpvaluer.   r   rZ   r   )r:   r\   rb   itemkeyrd   s         r$   rZ   Serializer.anchor_node}   s    <<||D!)%)%9%9$%?T" * F;;**![[..F "(LL$-- JJD$$T* 'D+.."&**JC$$S)$$U+ #- /s   1D
 
Dc                      UR                   R                  nUc.  U =R                  S-  sl        U R                  U R                  -  $ U$ !   S n N9= f)Nr   )rb   rd   r7   ANCHOR_TEMPLATE)r:   r\   rb   s      r$   ra   Serializer.generate_anchor   sV    	[[&&F >1$''$*=*===	Fs   A Ac                    U R                   U   nXR                  ;   a%  U R                  R                  [	        U5      5        g SU R                  U'   U R
                  R                  X#5        [        U[        5      (       a  U R
                  R                  [        UR                  S5      nU R
                  R                  [        UR                  S5      nUR                  U:H  UR                  U:H  UR                  R                  S5      4nU R                  R                  [        UUR                  UUR                  UR                  UR                  S95        GOt[        U[         5      (       Ga  UR                  U R
                  R                  [         UR                  S5      :H  nUR                  nS n	S n
UR"                  SL a  U(       a  US   n
U(       a  [%        U5      S:  a  US   n	OS n	U R                  R                  ['        UUR                  UUR"                  UR                  S95        SnUR                   H  nU R)                  XU5        US	-  nM     U R                  R                  [+        X/S
95        GOH[        U[,        5      (       Ga2  UR                  U R
                  R                  [,        UR                  S5      :H  nUR                  nS n	S nUR"                  SL a  U(       a  US   nU(       a  [%        U5      S:  a  US   n	U R                  R                  [/        UUR                  UUR"                  UR                  [%        UR                  5      S95        UR                   H)  u  pU R)                  XS 5        U R)                  XU5        M+     U R                  R                  [1        X/S
95        U R
                  R3                  5         g )NT)TF)FTztag:yaml.org,2002:)stylecommentr      )
flow_stylerm   r   )rm   )ro   rm   nr_items)r6   r5   rF   rP   r   rK   descend_resolverr.   r   resolverd   tag
startswithr   rl   rm   r   ro   lenr   r[   r   r   r   r   ascend_resolver)r:   r\   parentindexaliasdetected_tagdefault_tagimplicitrm   end_commentseq_commentre   map_commentrf   rd   s                  r$   r[   Serializer.serialize_node   s1   T"(((LLj/0*.D!!$'MM**69$
++  $}}44

M  #mm33

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

"jj $	 D,//88t}}'<'< $**d(  ,,""??d*&-ajs7|a/")!*K"&K!!& #'?? $  JJD''E:QJE ' !!"2K;U"VWD+..88t}}'<'<T(  ,,""??d*&-ajs7|a/")!*K!!% #'?? $!$TZZ	 #'**JC''48''S9 #- !!/;:T"UVMM))+r#   )r9   r6   r8   r)   r7   r5   r+   r-   r,   r4   r3   )NNNNNN)r   r   r    r!   ri   r   	ANCHOR_REr@   propertyrF   rK   rQ   rU   r]   rZ   ra   r[   r"   r   r#   r$   r   r   "   su      O+,I "6 $ $ % %B .,*	X,r#   c                 @    [         R                  R                  U 5      $ r`   )r   r   match)ss    r$   templated_idr      s    %%a((r#   N)'
__future__r   errorr   compatr   r   r   r	   r
   utilr   eventsr   r   r   r   r   r   r   r   r   r   nodesr   r   r   typingAnyDictUnionTextOptionalVersionType__all__r   objectr   r   r   r#   r$   <module>r      s]    '  @ @    9 8 *
+	i 	S, S,l)r#   