
    .Ph                       d dl mZ d dlZd dlmZmZ d dlT d dlmZm	Z	m
Z
mZmZ 	 d	d
gZ G d d
e          Z G d d          Z G d d          Z G d d	          Z G d de          ZdS )    )annotationsN)	YAMLErrorYAMLStreamError)*)nprintdbg	DBG_EVENTcheck_anchorname_charnprintfF)AnyDictListUnionTextTupleOptional)
StreamTypeEmitterEmitterErrorc                      e Zd ZdS )r   N)__name__
__module____qualname__     S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/ruamel/yaml/emitter.pyr   r      s        Dr   c                      e Zd ZddZddZdS )ScalarAnalysisscalarr   empty	multilineallow_flow_plainboolallow_block_plainallow_single_quotedallow_double_quotedallow_blockreturnNonec	                v    || _         || _        || _        || _        || _        || _        || _        || _        d S Nr   r    r!   r"   r$   r%   r&   r'   )	selfr   r    r!   r"   r$   r%   r&   r'   s	            r   __init__zScalarAnalysis.__init__!   sG     
" 0!2#6 #6 &r   strc                    d| j         d| j         d| j         d| j         d| j         d| j         d| j         d| j         S )	Nzscalar=z, empty=z, multiline=z, allow_flow_plain=z, allow_block_plain=z, allow_single_quoted=z, allow_double_quoted=z, allow_block=r,   r-   s    r   __repr__zScalarAnalysis.__repr__5   s     o  o  o
  o  o  o  oko  lA  o  o  W[  Wm  o  o  EI  E]  o  o  uy  uM  o  o  ]a  ]m  o  o  	or   N)r   r   r    r   r!   r   r"   r#   r$   r#   r%   r#   r&   r#   r'   r#   r(   r)   )r(   r/   )r   r   r   r.   r2   r   r   r   r   r       sB        ' ' ' '(o o o o o or   r   c                  J    e Zd ZddZddZddZdd
ZddZ	 dddZddZ	dS )Indentsr(   r)   c                    g | _         d S r+   )valuesr1   s    r   r.   zIndents.__init__;   s    .0r   valr   seqc                >    | j                             ||f           d S r+   )r6   append)r-   r7   r8   s      r   r:   zIndents.append>   s"    C:&&&&&r   c                @    | j                                         d         S Nr   )r6   popr1   s    r   r=   zIndents.popA   s    {  ##r   r#   c                z    	 | j         d         d         r| j         d         d         rdS n# t          $ r Y nw xY wdS )N   TFr6   
IndexErrorr1   s    r   seq_seqzIndents.seq_seqD   sW    	{2q! dk"oa&8 t 	 	 	D	us   &+ 
88c                L    	 | j         d         d         S # t          $ r Y dS w xY w)Nr?   r@   FrB   r1   s    r   last_seqzIndents.last_seqL   s:    	;r?1%% 	 	 	55	s    
##F
seq_indentintcolumnpre_commentOptional[bool]c                   t          | j                  dk     s| j        d         d         st          | j                  dk    s|sdS | j        d         d         | j        d         d         nd}|r||z   S ||z   |z
  dz
  S )N   rA   r@   r   lenr6   )r-   rG   rI   rJ   bases        r   seq_flow_alignzIndents.seq_flow_alignT   s    
 t{at{2q'94;1$$K$q%)[_Q%7%Ct{2q!! 	%*$$ j 6)A--r   c                *    t          | j                  S r+   rN   r1   s    r   __len__zIndents.__len__c   s    4;r   Nr(   r)   )r7   r   r8   r   r(   r)   r(   r   r(   r#   F)rG   rH   rI   rH   rJ   rK   r(   rH   r(   rH   )
r   r   r   r.   r:   r=   rD   rF   rQ   rS   r   r   r   r4   r4   9   s        1 1 1 1' ' ' '$ $ $ $       KP. . . . .           r   r4   c                     e Zd ZddddZdZdZdZdZdZd	Z	dZ
	 	 	 	 	 	 	 	 	 	 dddZedd            Zej        dd            Zedd             Zedd"            Zdd#Zdd%Zdd'Zdd)Z	 ddd.Zdd/Zdd0Zdd1Zddd3Zdd4Zdd5Z	 	 	 	 ddd9Zdd:Zdd;Zddd=Zdd>Z dd?Z!	 dddAZ"ddBZ#ddCZ$ddDZ%ddEZ&ddFZ'ddGZ(dddHZ)ddIZ*ddJZ+dddKZ,ddLZ-ddMZ.ddNZ/ddOZ0ddPZ1ddQZ2ddSZ3ddTZ4ddUZ5ddVZ6ddXZ7ddZZ8dd\Z9dd^Z:dd`Z;ddbZ<ddcZ=dddZ>ddeZ?	 	 dddiZ@ddjZAdddlZBddnZCddqZDddduZEdvdwdxdydzd{d|d}d~dddddddZFdddZGddZHddZIdddZJdddZKdddZLddZMddZNd
S )r   !!!)rZ   ztag:yaml.org,2002:r[      [],{}Nstreamr   	canonicalr   indentOptional[int]widthallow_unicoderK   
line_breakblock_seq_indenttop_level_colon_alignprefix_colon+brace_single_entry_mapping_in_flow_sequencedumperr(   r)   c                   || _         | j         "t          | j         dd           | | j         _        || _        d | _        d | _        g | _        | j        | _        g | _	        d | _
        t                      | _        d | _        g | _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d | _        d| _        d| _        |	| j        n	|	| j        z   | _        |
| _        || _        || _        t@          j!        dk    | _"        |r|nd| _#        || _$        d| _%        || _&        |rd|cxk     rd	k     r
n n|| _%        | j%        | _'        d
| _(        |r|| j%        dz  k    r|| _(        d| _)        |dv r|| _)        d | _*        d | _+        d | _,        d | _-        d | _.        d| _/        d| _0        d S )N_emitterFr   T:i  rM   r@   
   P   
)rs   z
null)1rm   getattrro   rb   encodingallow_space_breakstatesexpect_stream_startstateeventseventr4   indentsrd   flow_contextroot_contextsequence_contextmapping_contextsimple_key_contextlinerI   
whitespace	indentioncompact_seq_seqcompact_seq_map
no_newline
open_endedcolonprefixed_colonrl   rc   rg   sys
maxunicodeunicode_supplementarysequence_dash_offsetrj   best_sequence_indentrequested_indentbest_map_indent
best_widthbest_line_breaktag_prefixesprepared_anchorprepared_taganalysisstylescalar_after_indicatoralt_null)r-   rb   rc   rd   rf   rg   rh   ri   rj   rk   rl   rm   s               r   r.   zEmitter.__init__x   s    ;"wt{J'M'M'U#'DK  )-!% "$2
 "$
 yy%) )+ " %$"' 	##*.   
,8,@djjlUYU_F_ 8 	8
 #*%(^f%<"8H$O$4$4a!%:"$%! & 	/a&oooo2ooooo(.D%#8  	$UT6:::#DO$(---#-D  "& %)!% "
&*#r   c                L    	 | j         S # t          $ r t          d          w xY w)Nz#output stream needs to be specified)_streamAttributeErrorr   r1   s    r   rb   zEmitter.stream   s>    	I< 	I 	I 	I!"GHHH	Is   	 #r7   c                Z    |d S t          |d          st          d          || _        d S )Nwritez.stream argument needs to have a write() method)hasattrr   r   )r-   r7   s     r   rb   zEmitter.stream   s9    ;FsG$$ 	T!"RSSSr   c                    	 t          | j        d          r| j        j        S | j        j        S # t          $ r | cY S w xY w)Ntyp)r   rm   
serializer_serializerr   r1   s    r   r   zEmitter.serializer   sU    	t{E** .{--;** 	 	 	KKK	s    / / >>rH   c                *    t          | j                  S r+   )rO   r   r1   s    r   
flow_levelzEmitter.flow_level   s    4$%%%r   c                "    g | _         d | _        d S r+   )ry   r{   r1   s    r   disposezEmitter.dispose   s    


r   r}   c                H   t          t                    rt          |           | j                            |           |                                 sP| j                            d          | _        |                                  d | _        |                                 Nd S d S r<   )	r   r	   r   r|   r:   need_more_eventsr=   r}   r{   r-   r}   s     r   emitzEmitter.emit  s    y>> 	5MMM5!!!'')) 	++DJJJLLLDJ '')) 	 	 	 	 	r   r#   c                .   | j         sdS | j         d         }t          |t                    r|                     d          S t          |t                    r|                     d          S t          |t
                    r|                     d          S dS )NTr   r@   rM      F)r|   
isinstanceDocumentStartEventneed_eventsSequenceStartEventMappingStartEventr   s     r   r   zEmitter.need_more_events  s    { 	4Ae/00 	##A&&&122 	##A&&&011 	##A&&&5r   countc                (   d}| j         dd          D ]f}t          |t          t          f          r|dz  }n9t          |t          t
          f          r|dz  }nt          |t                    rd}|dk     r dS gt          | j                   |dz   k     S )Nr   r@   rA   F)r|   r   r   CollectionStartEventDocumentEndEventCollectionEndEventStreamEndEventrO   )r-   r   levelr}   s       r   r   zEmitter.need_events  s    [_ 	 	E%"46J!KLL 
E$46H#IJJ 
E>22 qyyuu 4;%!)++r   Fflowsequence
indentlessc                    | j                             | j        |           | j        |r| j        | _        d S d| _        d S |s7| xj        | j                                         r| j        n| j        z  c_        d S d S r<   )r~   r:   rd   r   rF   r   r   )r-   r   r   r   s       r   increase_indentzEmitter.increase_indent*  s     	DK222;   #3 	KK-1\-B-B-D-D^))$J^KKKK	 	r   c                   t          | j        t                    rT| j        j        r&t	          | j        d          s| j        j        | _        |                                  | j        | _        d S t          d| j                  )Nrw   z#expected StreamStartEvent, but got )
r   r}   StreamStartEventrw   r   rb   write_stream_startexpect_first_document_startr{   r   r1   s    r   rz   zEmitter.expect_stream_startF  s}    dj"233 	Uz" 474;
+K+K 4 $
 3##%%%9DJJJSTZSSTTTr   c                0    t          d| j                  )Nzexpected nothing, but got )r   r}   r1   s    r   expect_nothingzEmitter.expect_nothingO  s    F
FFGGGr   c                .    |                      d          S NT)first)expect_document_startr1   s    r   r   z#Emitter.expect_first_document_startT  s    )))555r   r   c                   t          | j        t                    r| j        j        s| j        j        r1| j        r*|                     dd           |                                  | j        j        r4|                     | j        j                  }| 	                    |           | j
                                        | _        | j        j        rt          | j        j                                                  }|D ]^}| j        j        |         }|| j        |<   |                     |          }|                     |          }|                     ||           _|oC| j        j         o6| j         o.| j        j         o!| j        j         o|                                  }|sE|                                  |                     dd           | j        r|                                  | j        | _        d S t          | j        t.                    rS| j        r*|                     dd           |                                  |                                  | j        | _        d S t5          d| j                  )N...T---z%expected DocumentStartEvent, but got )r   r}   r   versiontagsr   write_indicatorwrite_indentprepare_versionwrite_version_directiveDEFAULT_TAG_PREFIXEScopyr   sortedkeysprepare_tag_handleprepare_tag_prefixwrite_tag_directiveexplicitrc   check_empty_documentexpect_document_rootr{   r   write_stream_endr   r   )	r-   r   version_texthandleshandleprefixhandle_textprefix_textimplicits	            r   r   zEmitter.expect_document_startW  s   dj"455 %	W
" $djo $4? $$$UD111!!###z! ;#33DJ4FGG,,\::: $ 9 > > @ @Dz G !5!5!7!788% G GF!Z_V4F06D%f-"&"9"9&"A"AK"&"9"9&"A"AK,,[+FFFF 4
++4&4 
**4 
'	4
 11333   (!!###$$UD111> (%%'''2DJJJ
N33 	W $$$UD111!!###!!###,DJJJUtzUUVVVr   c                <   t          | j        t                    rl|                                  | j        j        r*|                     dd           |                                  |                                  | j        | _        d S t          d| j                  )Nr   Tz#expected DocumentEndEvent, but got )
r   r}   r   r   r   r   flush_streamr   r{   r   r1   s    r   expect_document_endzEmitter.expect_document_end  s    dj"233 	Uz" $$$UD111!!###3DJJJSTZSSTTTr   c                p    | j                             | j                   |                     d           d S )NT)root)ry   r:   r   expect_noder1   s    r   r   zEmitter.expect_document_root  s8    43444d#####r   r   mapping
simple_keyc                   || _         || _        d}|| _        || _        t	          | j        t                    r|                                  d S t	          | j        t          t          f          rD| 
                    d          r(t	          | j        t                    r| j        rd| _        |r5t	          | j        t                    r| j        s|                                  |                                  t	          | j        t                    r|                                  d S t	          | j        t                    rL| j        | j        }}| j        j        r| j        j        du r(|                     | j                  rd| _        d| _        | j        j        r| j        }|                     | j                  r9| j        j        r| j        j        d         d          }|| _        | j         | _        | j        j        r|| _        | j        s'| j        s | j        j        s|                                 r|                     |           n|                                  | j                                        rd| _        d| _        d S d S t	          | j        t>                    r| j        j        du r&| j        j        r|                     | j                   | j        j        r]| j        j        d         rK|                     | j                   | j        j        r%| j        j        r| j        j        d         d          }| j        s'| j        s | j        j        s|                                  r'| !                    | j        j"        dk    |           d S | #                                 d S d S tI          d| j                  )NF&TrA   r@   )singleforce_flow_indentzexpected NodeEvent, but got )%r   r   r   r   r   r}   
AliasEventexpect_aliasScalarEventr   process_anchorr   r   process_tagexpect_scalarr   r   r   comment
flow_stylewrite_post_commentrI   write_pre_commentr~   r6   r   rc   check_empty_sequenceexpect_flow_sequenceexpect_block_sequencerD   r   check_empty_mappingexpect_flow_mappingnr_itemsexpect_block_mappingr   )	r-   r   r   r   r   r   i2n2rI   s	            r   r   zEmitter.expect_node  s    ! (!&",dj*-- D	N
[2F$GHH B	N##C((.tz;77. ).
 ).%$tz;77$ 3$
 !!###$*k22 20""$$$$$DJ(:;; /0B:% -z,55224:>> 3-2DN.2DOz, -!%--dj99 =:0 O48L4G4KA4N0N-)+.2n*<z, -&,O1~1 z,1 0022	1 --.?@@@@..000<'')) ,%)DN&+DOOO, , DJ(9:: 0:(E11dj6H1++DJ777:% K$**<Q*? K**4:666z, K1D K040CB0G0J,J)O
0~
0 z,
0 //11	
0 ,,#z2a7K\ -      --/////#0 0& LdjLLMMMr   c                    | j         j        t          d          |                     d           | j                                        | _        d S )Nz!anchor is not specified for aliasr   )r}   anchorr   r   ry   r=   r{   r1   s    r   r   zEmitter.expect_alias  sG    :$BCCCC   [__&&


r   c                    |                      d           |                                  | j                                        | _        | j                                        | _        d S )NT)r   )r   process_scalarr~   r=   rd   ry   r{   r1   s    r   r   zEmitter.expect_scalar  sW    $'''l&&(([__&&


r   r   c                H   |r|                      dd           | j                            | j        | j        |          }|                     d|z  | j        z   dd           |s|                      dd           | j                            d           | j	        | _
        d S )NTr   r    r   r]   )r   r~   rQ   r   rI   r   flow_seq_startr   r:   expect_first_flow_sequence_itemr{   )r-   r   inds      r   r   zEmitter.expect_flow_sequence  s     	;  dT :::l))%t{4E
 
 	S3Y)<<dtTTT  	;  dT :::  %%%9


r   c                   t          | j        t                    r| j                                        | _        | j                                        }|dk    sJ |                     | j        d           | j        j	        r-| j        j	        d         r| 
                    | j                   n| j        dk    r|                                  | j                                        | _        d S | j        s| j        | j        k    r|                                  | j                            | j                   |                     d           d S Nr]   Fr   Tr   )r   r}   SequenceEndEventr~   r=   rd   r   r   flow_seq_endr   r   r   write_line_breakry   r{   rc   rI   r   r   r:   expect_flow_sequence_itemr   r-   poppeds     r   r  z'Emitter.expect_first_flow_sequence_item  s3   dj"233 	,,**,,DK&**,,FS====  !2E:::z! (dj&8&; (''
3333A%%%%'''**DJJJ~ $t!>!>!!###Kt=>>>d+++++r   c                   t          | j        t                    r| j                                        | _        | j                                        }|dk    sJ | j        r/|                     | j	        d           | 
                                 |                     | j        d           | j        j        r-| j        j        d         r|                     | j                   nd| _        | j                                        | _        d S |                     | j	        d           | j        s| j        | j        k    r| 
                                 | j                            | j                   |                     d           d S r  )r   r}   r  r~   r=   rd   r   rc   r   flow_seq_separatorr   r  r   r   r   ry   r{   rI   r   r:   r  r   r  s     r   r  z!Emitter.expect_flow_sequence_item  sk   dj"233 	,,**,,DK&**,,FS====~ $ $$T%<eDDD!!###  !2E:::z! (dj&8&; (''
3333"'**DJJJ  !8%@@@~ $t!>!>!!###Kt=>>>d+++++r   r   c                   |r|                      dd           | j                            | j        | j        |          }| j        }|r(| j        r!| j        d         dk    r| j        s	| j	        sd}| 
                    d|z  |z   dd           | j                            |           |s|                      dd           | j        | _        d S )	NTFr  rA   r]    r  r  )r   r~   rQ   r   rI   flow_map_startr   r   rc   rl   r   r:   expect_first_flow_mapping_keyr{   )r-   r   r   r  map_inits        r   r  zEmitter.expect_flow_mapping)  s      	<  dU ;;;l))%t{4E
 
 &		 !"%,,N -D -
 HS3Y14DIII  ***  	<  dU ;;;7


r   c                p   t          | j        t                    r| j                                        | _        | j                                        }|dk    sJ |                     | j        d           | j        j	        r-| j        j	        d         r| 
                    | j                   n| j        dk    r|                                  | j                                        | _        d S | j        s| j        | j        k    r|                                  | j        sL|                                 r8| j                            | j                   |                     dd           d S |                     dd           | j                            | j                   |                     d           d S )Nr`   Fr   Tr   r   ?r   )r   r}   MappingEndEventr~   r=   rd   r   r   flow_map_endr   r   r   r  ry   r{   rc   rI   r   r   check_simple_keyr:    expect_flow_mapping_simple_valuer   expect_flow_mapping_valuer  s     r   r  z%Emitter.expect_first_flow_mapping_keyA  s   dj/22 	/,**,,DK&**,,FS====  !2E:::z! (dj&8&; (''
3333A%%%%'''**DJJJ~ $t!>!>!!###> /d&;&;&=&= /""4#HIII  $ ?????$$S$///""4#ABBB   .....r   c                   t          | j        t                    r| j                                        | _        | j                                        }|dv sJ | j        r/|                     | j	        d           | 
                                 |dk    r|                     | j        d           | j        j        r-| j        j        d         r|                     | j                   nd| _        | j                                        | _        d S |                     | j	        d           | j        s| j        | j        k    r| 
                                 | j        sL|                                 r8| j                            | j                   |                     dd           d S |                     dd           | j                            | j                   |                     d           d S )	N)r`   r  Fr  r   Tr"  r#  r$  )r   r}   r%  r~   r=   rd   r   rc   r   flow_map_separatorr   r&  r   r   r   ry   r{   rI   r   r'  r:   r(  r   r)  r  s     r   expect_flow_mapping_keyzEmitter.expect_flow_mapping_keyX  s   dj/22 	/ ,**,,DK&**,,FY&&&&~ $$$T%<eDDD!!###||$$T%6>>>z! (dj&8&; (''
3333"'**DJJJ  !8%@@@~ $t!>!>!!###> /d&;&;&=&= /""4#HIII  $ ?????$$S$///""4#ABBB   .....r   c                    t          | j        dd          dk    r|                     | j        d           | j                            | j                   |                     d           d S )Nr   r#  -FTr$  )rv   r}   r   r   ry   r:   r,  r   r1   s    r   r(  z(Emitter.expect_flow_mapping_simple_valuev  sj    4:w,,33  !4e<<<47888&&&&&r   c                    | j         s| j        | j        k    r|                                  |                     | j        d           | j                            | j                   | 	                    d           d S )NTr$  )
rc   rI   r   r   r   r   ry   r:   r,  r   r1   s    r   r)  z!Emitter.expect_flow_mapping_value|  s{    > 	 T[4?::T0$77747888&&&&&r   c                    | j         r	| j         }n(d}| j        s| j        dk    r|                                  |                     dd|           | j        | _        d S )NFr   T)r   r   r   )r   r   r   rI   r  r    expect_first_block_sequence_itemr{   )r-   r   s     r   r   zEmitter.expect_block_sequence  sp     	(!^+JJJ' (DK1,<,<%%'''%$:NNN:


r   c                .    |                      d          S r   )expect_block_sequence_itemr1   s    r   r1  z(Emitter.expect_first_block_sequence_item  s    ..T.:::r   c                   |st          | j        t                    r}| j        j        r,| j        j        d         r|                     | j                   | j                                        | _        | j                                        | _	        d| _
        d S | j        j        r,| j        j        d         r|                     | j                   | j        dk    r| j
        nd}|                                  | j        }|                     d|z  dz   dd           |s| j        dz   | j        k    rd| _
        | j                            | j                   |                     d	           d S )
Nr@   Fr   r  r.  Tr   rM   r  )r   r}   r  r   r   r~   r=   rd   ry   r{   r   rI   r   r   r   r   r:   r3  r   )r-   r   nonlr  s       r   r3  z"Emitter.expect_block_sequence_item  sg    	,DJ0@AA 	,z! 3dj&8&; 3&&tz222,**,,DK**DJ#DOOOz! 3dj&8&; 3&&tz222&*kQ&6&64??ED+C  sS$$ GGG 't014t7PPP"&Kt>???d+++++r   c                    | j         s&| j        s| j        dk    s|                                  |                     dd           | j        | _        d S )Nr   Fr  )r   r   rI   r  r   expect_first_block_mapping_keyr{   r1   s    r   r  zEmitter.expect_block_mapping  s]    # 	$T-A 	$T[TUEUEU!!###%%8888


r   c                .    |                      d          S r   )expect_block_mapping_keyr1   s    r   r8  z&Emitter.expect_first_block_mapping_key  s    ,,4,888r   c                :   |st          | j        t                    rv| j        j        r,| j        j        d         r|                     | j                   | j                                        | _        | j                                        | _	        d S | j        j        r,| j        j        d         r|                     | j                   | 
                                 |                                 rt          | j        t          t          f          s:	 | j        j        dk    r|                     ddd           n# t           $ r Y nw xY w| j                            | j                   |                     dd           t          | j        t(                    r,| j        j        dk    s| j                            d           d S d S d S |                     ddd           | j                            | j                   |                     d           d S )Nr@   r#  Tr5  r"  r  r$  )r   r}   r%  r   r   r~   r=   rd   ry   r{   r   r'  r   r   r   r   r   r:   !expect_block_mapping_simple_valuer   r   rb   r   expect_block_mapping_value)r-   r   s     r   r:  z Emitter.expect_block_mapping_key  s    	/DJ@@ 	/z! 3dj&8&; 3&&tz222,**,,DK**DJJJz! 3dj&8&; 3&&tz222$$&& /!J!35F G  :+s22 00dd0KKK)   ""4#IJJJ  $ ???dj*55 +dj>NRU>U>UK%%c*****+ +>U>U $$S$$$???""4#BCCC   .....s   (D> >
E
Ec                8   t          | j        dd           dk    rJ| j        dk    r"| j        d| j        | j        z
  z  | j        z   }n| j        }|                     |d           | j        	                    | j
                   |                     d           d S )Nr   r#  r   r  FTr$  )rv   r}   rd   rj   rI   r   r   r   ry   r:   r:  r   )r-   cs     r   r<  z)Emitter.expect_block_mapping_simple_value  s    4:w--44{aD$>$J45CDtzQ'  E***48999&&&&&r   c                    |                                   |                     | j        dd           | j                            | j                   |                     d           d S )NTr5  r$  )r   r   r   ry   r:   r:  r   r1   s    r   r=  z"Emitter.expect_block_mapping_value  sh    T0$$GGG48999&&&&&r   c                    t          | j        t                    o3t          | j                  ot          | j        d         t
                    S r<   )r   r}   r   r#   r|   r  r1   s    r   r   zEmitter.check_empty_sequence  sB    tz#566 =T[!!=4;q>+;<<	
r   c                    t          | j        t                    o3t          | j                  ot          | j        d         t
                    S r<   )r   r}   r   r#   r|   r%  r1   s    r   r   zEmitter.check_empty_mapping  sA    tz#455 <T[!!<4;q>?;;	
r   c                    t          | j        t                    r| j        sdS | j        d         }t          |t                    o#|j        d u o|j        d u o|j        o
|j        dk    S )NFr   r  )	r   r}   r   r|   r   r  tagr   valuer   s     r   r   zEmitter.check_empty_document  s}    $*&899 	 	5Auk** "$"	T!" " r!	
r   c                8   d}t          | j        t                    rN| j        j        B| j        $|                     | j        j                  | _        |t          | j                  z  }t          | j        t          t          f          rN| j        j	        B| j
        $|                     | j        j                  | _
        |t          | j
                  z  }t          | j        t                    rG| j        $|                     | j        j                  | _        |t          | j        j                  z  }|| j        k     ot          | j        t$                    pt          | j        t&                    o| j        j        du pt          | j        t*                    o| j        j        du pkt          | j        t                    o)| j        j        o| j        o| j        dv o| j        j         p'|                                 p|                                 S )Nr   Tz'")r   r}   	NodeEventr  r   prepare_anchorrO   r   r   rD  r   prepare_tagctagr   analyze_scalarrE  r   MAX_SIMPLE_KEY_LENGTHr   r   r   r   r    r   r!   r   r   )r-   lengths     r   r'  zEmitter.check_simple_key  s   dj),, 	01B1N#+'+':':4:;L'M'M$c$.///FtzK1E#FGG	-
* ($($4$4TZ_$E$E!c$+,,,Fdj+.. 	0}$ $ 3 3DJ4D E Ec$-.///F22 
tz:.. 
*4:'9::\tz?TX\?\
*4:'899[dj>SW[>[
* 4:{33 0,WW
RW@WX0 //
* ((**
* ''))	
r   	indicatorc                    | j         j        	d | _        dS | j        $|                     | j         j                  | _        | j        r%|                     || j        z   d           d| _        d | _        dS )NFT)r}   r  r   rH  r   r   )r-   rN  s     r   r   zEmitter.process_anchor  s{    :$#'D 5'#'#6#6tz7H#I#ID  	$  T-A!A4HHH#DO#tr   c                |   | j         j        }t          | j         t                    r| j        r|                                 | _        | j         j        dk    rI| j        dk    r>|dk    r8| j        1| j        | j         _        d | _        |                                 | _        | j	        r|C| j        dk    r| j         j
        d         s| j        dk    r| j         j
        d         r	d | _        d S | j         j
        d         r|	d}d | _        n| j	        r|| j         j
        r	d | _        d S |t          d          | j        $|                     | j         j                  | _        | j        rJ|                     | j        d           | j        r(| j        s!t          | j         t                    rd| _        d | _        d S )	Nr  'ztag:yaml.org,2002:nullr   r@   rZ   ztag is not specifiedT)r}   rD  r   r   r   choose_scalar_stylerE  r   r   rc   r   r   r   rI  rJ  r   r   r   r   )r-   rD  s     r   r   zEmitter.process_tag,  s   jndj+.. 	z!!5577
J$**
c))7771'+}DJ$$(DM!%!9!9!;!;DJN ckr!!dj&9!&<!J"$$)<Q)?$$(!z"1% )#+$(!N cktz7Jk$(!;5666$ $ 0 0 A AD 	'  !2D999%'' tz;77'
 #' r   c                   | j         j        dk    r| j         j        j        dk    rd S | j        $|                     | j         j                  | _        | j         j        dk    s| j        rdS | j         j        r | j         j        dk    s| j         j        dk    r}| j         j        d         s| j         j        d         sY| j	        r| j        j
        s4| j        j        s(| j        r| j        j        s| j        s| j        j        rdS | j         j        dk    rdS d| j        _        | j         j        r4| j         j        d	v r&| j        s| j	        s| j        j        r| j         j        S | j         j        s*| j        j        rd
| j         j        v sd| j         j        v rdS | j         j        r| j         j        d
k    r!| j        j        r| j	        r| j        j        sd
S dS )Nr  r[   "r#  r.  r   rM   Tz|>rQ  rs   )r}   rE  rJ  r   r   rK  r   rc   r   r   r    r!   r   r"   r$   r'   r&   r%   r1   s    r   rR  zEmitter.choose_scalar_styleU  s   :r!!djo&<&D&D4=  //
0@AADM:s""dn"3
  	DJ$4$;$;tz?OSV?V?VJ" @W*.**=a*@ @W '-1]-@DHMD[  M2	
 
 -1M,K rz3&&r$(!: 	(
 0D 8 8O(/( M-(
 z''z 	DM$E 	dj&&&$$*2B*B*Bsz 	4:#3s#:#:}0 ',0M,C ssr   c                N   | j         $|                     | j        j                  | _         | j        |                                 | _        | j         }| j        r| j        s| 	                                 | j        dk    r"| 
                    | j         j        |           n| j        dk    r"|                     | j         j        |           n| j        dk    r	 | j        j        d         d         }n # t          t          f$ r}d}Y d }~nd }~ww xY w|                     | j         j        |           | j        j        rQ| j        j        d         r?| j        j        d         j        | j        k    r| j        dz
  | j        j        d         _        n| j        dk    r	 | j        j        d         d         }n# t          t          f$ r d}Y nw xY w|                     | j         j        |           | j        j        rQ| j        j        d         r?| j        j        d         j        | j        k    r| j        dz
  | j        j        d         _        n |                     | j         j        |           d | _         d | _        | j        j        r|                     | j                   d S d S )NrT  rQ  >r@   r   r  |)r   rK  r}   rE  r   rR  r   r   r   r   write_double_quotedr   write_single_quotedr   rC   	TypeErrorwrite_foldedrI   rd   write_literalwrite_plainr   )r-   splitcmxes       r   r	  zEmitter.process_scalar|  s   =  //
0@AADM:1133DJ++
   	  	 :$$T]%95AAAAZ3$$T]%95AAAAZ3j(+A.	*   dm2C888
"?J&q)? J&q)0DK?? 04{Q
"1%,Z3j(+A.	*   t}3S999
"?J&q)? J&q)0DK?? 04{Q
"1%,T]15999
: 	0##DJ/////	0 	0s*   C5 5DDDF8 8GGr   c                X    |\  }}|dk    rt          d|dd|d          |dd|dS )Nr@   zunsupported YAML version: d.r   )r-   r   majorminors       r   r   zEmitter.prepare_version  sS    uA::OEOOOeOOOPPP%%%E%%%%r   r   c                "   |st          d          |d         dk    s|d         dk    rt          d|          |dd         D ]H}d|cxk    rdk    s9n d	|cxk    rd
k    s*n d|cxk    rdk    sn |dv st          d|d|          I|S )Nztag handle must not be emptyr   rZ   rA   z(tag handle must start and end with '!': r@   09AZazz-_invalid character z in the tag handle: rd  )r-   r   chs      r   r   zEmitter.prepare_tag_handle  s     	?=>>>!9vbzS00T&TTUUU2, 	^ 	^B2$$$$$$$$r(8(8(8(8S(8(8(8(8C2<L<L<L<L<L<L<L<LPRVZPZPZ"#\#\#\RX#\#\]]]r   r   c                   |st          d          g }dx}}|d         dk    rd}d}| j        r#t          | j        dd          }||dk    r|dz  }|t          |          k     r||         }d	|cxk    rd
k    s$n d|cxk    rdk    sn d|cxk    rdk    sn ||v r|dz  }nW||k     r|                    |||                    |dz   x}}|}|D ](}|                    dt          |          d           )|t          |          k     ||k     r|                    |||                    d                    |          S )Nztag prefix must not be emptyr   rZ   r@   -;/?:@&=+$,_.~*'()[]r   r@   rM   #rh  ri  rj  rk  rl  rm  %02Xr  )r   rm   rv   rO   r:   ordjoin)	r-   r   chunksstartendch_setr   ro  datas	            r   r   zEmitter.prepare_tag_prefix  s    	?=>>>!9C'; 	dk9f==G'V"3"3#CKKBbC3"#3#3#3#3#3#3#3#3sb7G7G7G7GC7G7G7G7G2QW<<q3;;MM&s"3444!Ag% 5 5BMM"3c"gg"3"3"34444 CKK 3;;MM&s+,,,wwvr   rD  c                   |st          d          t          |          }|dk    s|dk    r|S d }|}t          | j                                                  }|D ]a}|                    |          rJ|dk    s t          |          t          |          k     r$| j        |         }|t          |          d          }bg }dx}}d}	| j        r#t          | j        dd          }
|
|
dk    r|	dz  }	|t          |          k     r||         }d	|cxk    rd
k    s0n d|cxk    rdk    s!n d|cxk    rdk    sn ||	v s|dk    r|dk    r|dz  }nW||k     r|	                    |||                    |dz   x}}|}|D ](}|	                    dt          |          d           )|t          |          k     ||k     r|	                    |||                    d                    |          }|r||S d|dS )Ntag must not be emptyrZ   r[   r   rq  r   rr  rs  rh  ri  rj  rk  rl  rm  r@   rt  ru  r  !<rV  )r   r/   r   r   r   
startswithrO   rm   rv   r:   rv  rw  )r-   rD  r   suffixprefixesr   rx  ry  rz  r{  r   ro  r|  suffix_texts                 r   rI  zEmitter.prepare_tag  s    	86777#hh#::J$+002233 	, 	,F~~f%% ,6S==CKK#c((<R<R*62S[[]]+'; 	dk9f==G'V"3"3#CKKBr    S    "########"########<<#II&C--q3;;MM&s"3444!Ag% 5 5BMM"3c"gg"3"3"34444! CKK" 3;;MM&s+,,,ggfoo 	)////(((((r   r  c                z    |st          d          |D ]&}t          |          st          d|d|          '|S )Nzanchor must not be emptyrn  z in the anchor: )r   r
   )r-   r  ro  s      r   rH  zEmitter.prepare_anchor  se     	;9::: 	Z 	ZB(,, Z"#X#X#Xf#X#XYYYZr   r   c           
        |st          |ddddddd          S d}d}d}d}d}d}d}d}	d}
d}|                    d          s|                    d          rd}d}d}t          |          dk    p	|d         dv }d}d}d}|t          |          k     r||         }|dk    rE|d	v rd}d}|d
v r,| j        j        dk    rd}nt          |          dk    rd}|rd}|dk    r|rd}d}n6|dv rd}|dk    r| j        j        dk    rd}|dk    r|rd}d}|dk    r|rd}d}|dv rd}|dk    s\d|cxk    rdk    sOn |dk    s5d|cxk    rdk    s(n d|cxk    rdk    sn | j        r d|cxk    rdk    rn n|dk    r
| j        sd}nd}|dk    r)|dk    rd}|t          |          dz
  k    rd}|rd}
d}d}n1|dv r)|dk    rd}|t          |          dz
  k    rd}	|rd}d}d}nd}d}|dz  }|dv }|dz   t          |          k    p||dz            dv }|t          |          k     d}d}d}d}d}|s|s|s|	rdx}}|rd}|
rdx}x}}|r	dx}x}x}}n|rdx}x}}| j        sd}|rdx}}|rd}|rd}t          |d||||||          S )NTFr,   r   r   r@   u     	
  r   z#,[]{}&*!|>'"%@`z?:)r@   r@   r.  z,[]{}r#  rp   rs  	   
  rs   r  ~          ퟿      �   𐀀   􏿿   ﻿)r   r  rO   r   use_versionr   rg   rx   )r-   r   block_indicatorsflow_indicatorsline_breaksspecial_charactersleading_spaceleading_breaktrailing_spacetrailing_breakbreak_spacespace_breakpreceeded_by_whitespacefollowed_by_whitespaceprevious_spaceprevious_breakindexro  r"   r$   r%   r&   r'   s                          r   rK  zEmitter.analyze_scalar  s    
	!!&"&$($(!	 	 	 	 !"  U## 	#v'8'8'?'? 	##"O #' "%V!1!]VAYB]5]  c&kk!!B zz,,,&*O'+$::2f<<*.V))*.- 0+/(99!79&*O'+$ ==&*O99!<!F!F&*O99- 0*.+/(99!89&*O'+$ )))"$JJ&B"8"8"8"8&"8"8"8"8&LL////x////2111111112 28D8Z8Z8Z8Zl8Z8Z8Z8Z8ZHnn- 2-1*)-& SyyA::$(MCKK!O++%)N! '"&K!%!&+++A::$(MCKK!O++%)N! '"&K!&!%!&!& QJE&(,G&G#	S[[(\F519,=A\,\ #W c&kk!!`   ""  	9M 	9^ 	9~ 	93880  	 K  	OINNN03F  	$W\\\0\3F 	$INNN03F) $#  	93880  	%$  	& %!-/ 3 3#	
 	
 	
 		
r   c                f    t          | j        d          r| j                                         d S d S )Nflush)r   rb   r  r1   s    r   r   zEmitter.flush_stream  s:    4;(( 	 K	  	 r   c                    | j         rN| j                             d          r6| j                            d                    | j                              d S d S d S )Nzutf-16r  )rw   r  rb   r   encoder1   s    r   r   zEmitter.write_stream_start  sa    = 	>T]55h?? 	>Khoodm<<=====	> 	> 	> 	>r   c                .    |                                   d S r+   )r   r1   s    r   r   zEmitter.write_stream_end  s    r   need_whitespacer   r   c                *   | j         s|s|}nd|z   }|| _         | j        o|| _        | xj        t          |          z  c_        d| _        t          | j                  r|                    | j                  }| j        	                    |           d S )Nr  F)
r   r   rI   rO   r   r#   rw   r  rb   r   )r-   rN  r  r   r   r|  s         r   r   zEmitter.write_indicator  s     ? 	#/ 	#DD?D$5Is4yy  	.;;t}--D$r   c                   | j         pd}| j        r| j        |k    s| j        |k    r7| j        s0t	          | j                  rd| _        n|                                  | j        |k     rXd| _        d|| j        z
  z  }|| _        | j        r|                    | j                  }| j	        
                    |           d S d S )Nr   FTr  )rd   r   rI   r   r#   r   r  rw   r  rb   r   )r-   rd   r|  s      r   r   zEmitter.write_indent  s    !	({V##v%%do%DO$$ ("'%%''';"DO&4;./D DK} 2{{4=11Kd#####  r   r|  c                    || j         }d| _        d| _        | xj        dz  c_        d| _        t          | j                  r|                    | j                  }| j        	                    |           d S )NTr@   r   )
r   r   r   r   rI   r#   rw   r  rb   r   )r-   r|  s     r   r  zEmitter.write_line_break  st    <'D		Q		 	.;;t}--D$r   r   c                    d|}| j         r|                    | j                   }| j                            |           |                                  d S )Nz%YAML rw   r  rb   r   r  )r-   r   r|  s      r   r   zEmitter.write_version_directive  sZ    -\--= 	.;;t}--D$r   r   r   c                    d|d|}| j         r|                    | j                   }| j                            |           |                                  d S )Nz%TAG r  r  )r-   r   r   r|  s       r   r   zEmitter.write_tag_directive  sb    ;K;;K;;= 	.;;t}--D$r   Ttextr^  c                   | j         r:| j        3|                                  | j        dk    r|                                  |                     dd           d}d}dx}}|t          |          k    rkd }|t          |          k     r||         }|r||dk    r|dz   |k    r@| j        | j        k    r0|r.|dk    r(|t          |          k    r|                                  no|||         }| xj        t          |          z  c_        t          | j	                  r|
                    | j	                  }| j                            |           |}n|rz||dvrs||         dk    r|                                  |||         D ]2}	|	dk    r|                                  |                     |	           3|                                  |}n|
|d	v s|dk    rw||k     rq|||         }| xj        t          |          z  c_        t          | j	                  r|
                    | j	                  }| j                            |           |}|dk    r_d
}| xj        dz  c_        t          | j	                  r|
                    | j	                  }| j                            |           |dz   }|
|dk    }|dv }|dz  }|t          |          k    k|                     dd           d S )Nr   rQ  TFr  r@   r  rs   
    
  z''rM   )r   r   r  r   r   rO   rI   r   r#   rw   r  rb   r   )
r-   r  r^  spacesbreaksry  rz  ro  r|  brs
             r   rY  zEmitter.write_single_quoted  sE    	($0%%'''(A--%%'''S$'''SYYBSYY#Y $$:s	S(( K$/99! :!QJJ3t99,,))++++#E#Is4yy0.. >#';;t}#=#=D))$///E $:+?!?!?E{d**--///"59o 6 6:: 113333 11"5555%%'''E:'<!<!<c		s{{#E#Is4yy0.. >#';;t}#=#=D))$/// #Syyq && 6;;t}55D!!$'''a~s331HCg SYYh 	S%(((((r   rh  rl  btnvfrr`  rT  \N_LP) 	rs   rt   rT  r  r  r  u    u    c                	   | j         r:| j        3|                                  | j        dk    r|                                  |                     dd           dx}}|t          |          k    rd}|t          |          k     r||         }|K|dv sGd|cxk    rdk    szn | j        r0d|cxk    rd	k    scn d
|cxk    rdk    sSn d|cxk    rdk    sCn ||k     rq|||         }| xj        t          |          z  c_        t          | j	                  r|
                    | j	                  }| j                            |           |}||| j        v rd| j        |         z   }nD|dk    rdt          |          z  }n+|dk    rdt          |          z  }ndt          |          z  }| xj        t          |          z  c_        t          | j	                  r|
                    | j	                  }| j                            |           |dz   }d|cxk     rt          |          dz
  k     rn n|dk    s||k    r	| j        ||z
  z   | j        k    r|rd}t          |          |k    r	 |                    d|          }	 |                    d||          }n# t"          t$          f$ r Y nw xY w||         dk    r||dz            dk    rnAd|||         vr5d|||         vr)||dz            dvr||dz
  |dz            dk    r||k    rd}n# t"          t$          f$ r Y nw xY w|||         |rdndz   }||k     r|}| xj        t          |          z  c_        t          | j	                  r|
                    | j	                  }| j                            |           |                                  d| _        d| _        ||         dk    rr|s|dz  }|rdnd}| xj        t          |          z  c_        t          | j	                  r|
                    | j	                  }| j                            |           |dz  }|t          |          k    |                     dd           dS )z
        a newline, as written by self.write_indent(), might need to be escaped with a backslash
        as on reading this will produce a possibly unwanted space.
        Nr   rT  Tu   "\  ﻿r  r  r  r  r  r  r  r  r     ÿz\x%02Xu   ￿z\u%04Xz\U%08Xr@   rs   rQ  z 
z  Fr  )r   r   r  r   r   rO   rg   rI   r#   rw   r  rb   r   ESCAPE_REPLACEMENTSrv  r   r  
ValueErrorrC   r   r   )	r-   r  r^  ry  rz  ro  r|  need_backslash	space_poss	            r   rX  zEmitter.write_double_quotedc  s<   
  	($0%%'''(A--%%'''S$'''SYYBSYY#Y
444b****F***** + $r5555X5555 (B : : : :( : : : : , B B B Bl B B B B
 3;;c	?DKK3t99,KKDM** :#{{4=99K%%d+++E>T555#d&>r&BBv(3r772x(3r772(3r772KK3t99,KKDM** :#{{4=99K%%d+++!GEC''''#d))a-'''''3YY%3,,K3;/$/AA B
 "&t99s??$(JJsC$8$8	!(,

4i(H(HII *J7 ! ! ! D! !Ot33Y]8Ks8R8R tC	M'::: #4I+> > > $Y] 35 @ @ $S1WsQw%6 74 ? ? %-2N&
3   E#I.*H$$bI3;;Es4yy(&& 6;;t}55D!!$'''!!###"'!&;#%%) #
#1944rDKK3t99,KKDM** :#{{4=99K%%d+++1HCu SYYv 	S%(((((s7   :L J) (L )J=:L <J==A L L21L2c                   d}d}d}|r|d         dv rd}|t          |          z  }nb| j        r[dD ]P}d}	 |                    ||          }|dk    rn&	 ||dz            d	v rnn# t          $ r Y nw xY w|d
z  }C|dk    r nQ|dk    rd}|d         dvrd}nt	          |          d
k    s
|d         dv rd}||z  }|||fS )Nr   r  r  rM   )z
---z
...TrA      z 
r@   r  r.  r?   +)r/   r   findrC   rO   )r-   r  rd   rN  hintsrz  poss          r   determine_block_hintszEmitter.determine_block_hints  sE   	 	 Aw///V$" -  CC	!"iiS11"99!!#C!G}77 %  8) ! ! ! D!q	! Rxx  77FBx333		Ta48/C#C#C	fi''s   A##
A0/A0r   c                   |                      |          \  }}}t          |t                    sd}|                     d|z   |z   d           |dk    rd| _        |                                  d}d}d}dx}	}
|
t          |          k    rd }|
t          |          k     r||
         }|r||dvr|s(|&|dk    r ||	         d	k    r|                                  |dk    }||	|
         D ]2}|d	k    r|                                  |                     |           3||                                  |
}	n|r|dk    r|	d
z   |
k    r%| j        | j	        k    r|                                  no||	|
         }| xj        t          |          z  c_        t          | j                  r|                    | j                  }| j                            |           |
}	n||dv r||	|
         }| xj        t          |          z  c_        t          | j                  r|                    | j                  }| j                            |           |dk    rp|
t          |          d
z
  k     rK||
dz                                            s.|                                  |                                  |
dz  }
nt!          d          ||                                  |
}	|
|dv }|dk    }|
d
z  }
|
t          |          k    }d S d S )Nr  rV  Tr  Fr   u
   
  r  rs   r@   u    
  r  rM   z*unexcpected fold indicator \a before spacer  )r  r   r/   r   r   r  rO   r   rI   r   r#   rw   r  rb   r   isspacer   )r-   r  r   r  _indent
_indicatorr  r  r  ry  rz  ro  r  r|  s                 r   r[  zEmitter.write_folded  se   %)%?%?%E%E"w
'3'' 	GS5[72D999"DOSYYBSYY#Y - :+A!A!A)0N#II K4//--///$&#IM"59o 6 6:: 113333 11"5555~))+++E  99qyC''DK$/,I,I))++++#E#Is4yy0.. >#';;t}#=#=D))$///E:'>!>!>c	?DKK3t99,KKDM** :#{{4=99K%%d+++Tzz#d))a-00cAg9N9N9P9P0 11333 --///1HCC"./\"]"]]z--///E~33s1HCk SYYr   c                   |                      |          \  }}}t          |t                    sd}|                     d|z   |z   d           |dk    rd| _        |                                  d}dx}}|t          |          k    rDd }	|t          |          k     r||         }	|r|	|	dvr|||         D ]2}
|
dk    r|                                  |                     |
           3|	L| j        r1| j        | j        nd}| j	        
                    d||z   z             n|                                  |}np|	|	dv rj|||         }t          | j                  r|                    | j                  }| j	        
                    |           |	|                                  |}|	|	dv }|d	z  }|t          |          k    Bd S d S )
Nr  rW  Tr  r   r  rs   r  r@   )r  r   r/   r   r   r  rO   r   rd   rb   r   r   r#   rw   r  )r-   r  r   r  r  r  r  ry  rz  ro  r  idnxr|  s                r   r\  zEmitter.write_literal/  s"   %)%?%?%E%E"w
 '3'' 	GS5[72D999 "DOSYYBSYY#Y  :+?!?!?"59o 6 6:: 113333 11"5555~, 026+2I4;;qD K--cWt^.DEEEE --///E:';!;!;c	?DDM** :#{{4=99K%%d+++z--///E~331HC; SYYr   c                ~   | j         rB| j        4|                                  | j        dk    r|                                  nd| _        |sd S | j        sZd}| xj        t          |          z  c_        | j        r|	                    | j                  }| j
                            |           d| _        d| _        d}d}dx}}|t          |          k    rdd }|t          |          k     r||         }|r|dk    r|dz   |k    r5| j        | j        k    r%|r#|                                  d| _        d| _        nb|||         }| xj        t          |          z  c_        | j        r|	                    | j                  }| j
                            |           |}nt|r|dvr||         dk    r|                                  |||         D ]2}	|	dk    r|                                  |                     |	           3|                                  d| _        d| _        |}n||dv r|||         }t          |          | j        z   | j        k    r+| j        $| j        | j        k    r|                                  | xj        t          |          z  c_        | j        r|	                    | j                  }	 | j
                            |           n5#  t          j                            t#          |          dz               xY w|}|
|dk    }|dv }|dz  }|t          |          k    bd S d S )	Nr   Tr  Fr@   r  rs   r  )r   r   r  r   r   r   rI   rO   rw   r  rb   r   r   r   rd   r   stdoutrepr)
r-   r  r^  r|  r  r  ry  rz  ro  r  s
             r   r]  zEmitter.write_plaind  s    	'$0%%'''(A--%%'''"& 	F 	$DKK3t99$KK} 2{{4=11Kd###SYY BSYY#Y , 99qyC''DK4?,J,Ju,J))+++*/).#E#Is4yy0= >#';;t}#=#=D))$///E  111E{d**--///"59o 6 6:: 113333 11"5555%%'''&+DO%*DNE:'<!<!<c	?DTT[0DOCC K3 K$+55 ))+++KK3t99,KK} :#{{4=99))$////
((dd):;;;E~s331HCm SYYs   K 2Lprec                   |j         }|s|d         dk    r
|d d         }	 |j        j        }|j         r"|j                             d          r| j        }n|| j        dz   k     rt           n# t          $ r | j        dz   }Y nw xY w	 || j        z
  }| j        r(|                                r|dk     r|d         dk    rd}d|z  |z   }	 t          | j                  r|                    | j                  }n# t          $ r Y nw xY w| j
                            |           n# t          $ r  w xY w|s|                                  d S d S )NrA   rs   r@   r   r  )rE  
start_markrI   r  r  stripr#   rw   r  UnicodeDecodeErrorrb   r   rZ  r  )r-   r   r  rE  col	nr_spacess         r   write_commentzEmitter.write_comment  s    	uRyD((#2#JE
	"$+C} !9!9$!?!?  kt{Q&&
 	" 	" 	"+/CCC	"	 dk)I{ u{{}} Q58tCSCS	)Oe+E&& 8!LL77E%   Ke$$$$ 	 	 		 	$!!#####	$ 	$sC   A
A, ,BBAD# 	.C8 7D# 8
DD# DD# #D/c                   |j         dS |j         d         }|dS 	 t          t          f}|D ]q}t          ||          rt	          |dd           r$| j        dk    r|                                  |                     |d           t          ||          rd|_        rnA# t          $ r4 t          j                            dt          |           d|             w xY wdS )	NFr@   pre_doner   T)r  zeventtt r  )r   r   r   r   rv   rI   r  r  r  rZ  r   r  r   type)r-   r}   commentsstart_eventsr   s        r   r   zEmitter.write_pre_comment  s   = 5=#5	-/ABL# , ,e\22 ww
TX7Y7Y ;!##))+++""7"555e\22 ,'+G$,  	 	 	J=U==e==>>>	 ts   BB >Cc                r    | j         j        d         dS |j        d         }|                     |           dS )Nr   FT)r}   r   r  )r-   r}   r   s      r   r   zEmitter.write_post_comment  s<    :a (5-"7###tr   )
NNNNNNNNNN)rb   r   rc   r   rd   re   rf   re   rg   rK   rh   r   ri   re   rj   rK   rk   r   rl   rK   rm   r   r(   r)   rU   )r7   r   r(   r)   rX   rT   )r}   r   r(   r)   rV   )r   rH   r(   r#   )FNF)r   r#   r   rK   r   r#   r(   r)   rW   )r   r#   r(   r)   )FFFF)
r   r#   r   r#   r   r#   r   r#   r(   r)   )r   rK   r(   r)   )FF)r   rK   r   rK   r(   r)   )r   r   r(   r)   )rN  r   r(   r#   )r   r   r(   r   )r   r   r(   r   )r   r   r(   r   )rD  r   r(   r   )r  r   r(   r   )r   r   r(   r   )
rN  r   r  r   r   r#   r   r#   r(   r)   r+   )r|  r   r(   r)   )r   r   r(   r)   )r   r   r   r   r(   r)   )T)r  r   r^  r   r(   r)   )r  r   r(   r   )r  r   r   r   r(   r)   )r   r   r  r#   r(   r)   )r}   r   r(   r#   )Or   r   r   r   rL  r  r  r  r  r&  r+  r.   propertyrb   setterr   r   r   r   r   r   r   rz   r   r   r   r   r   r   r   r   r   r  r  r  r  r,  r(  r)  r   r1  r3  r  r8  r:  r<  r=  r   r   r   r'  r   r   rR  r	  r   r   r   rI  rH  rK  r   r   r   r   r   r  r   r   rY  r  rX  r  r[  r\  r]  r  r   r   r   r   r   r   r   g   s        "   NLNL
  $#(,*.04 FJj j j j jX I I I XI ]   ]    X & & & X&   
      , , , , W\    8U U U UH H H H
6 6 6 6&W &W &W &W &WP	U 	U 	U 	U$ $ $ $  PN PN PN PN PNd' ' ' '' ' ' '
: 
: 
: 
: 
:, , , ,$, , , ,8 SX8 8 8 8 80/ / / /./ / / /<' ' ' '' ' ' '; ; ; ;; ; ; ;, , , , ,,9 9 9 99 9 9 9/ / / / />
' 
' 
' 
'' ' ' '
 
 
 

 
 
 


 

 

 


 
 
 
B   '! '! '! '!R% % % %N00 00 00 00h& & & &      6+) +) +) +)Z   p
 p
 p
 p
h       > > > >
    !         &$ $ $ $&	  	  	  	  	               >) >) >) >) >)B  $g) g) g) g) g)R( ( ( (@A A A AF3 3 3 3 3jK K K K KZ!$ !$ !$ !$ !$F   *     r   c                      e Zd ZddZdS )RoundTripEmitterrJ  r   r(   c                   |st          d          t          |          }|dk    s|dk    r|S |j        }|j        }t	          | j                                                  }|d|D ]a}|                    |          rJ|dk    s t          |          t          |          k     r$| j        |         }|t          |          d          }b|r||S d|dS )Nr~  rZ   r[   r  rV  )	r   r/   r   r  r   r   r   r  rO   )r-   rJ  rD  r   r  r  r   s          r   rI  zRoundTripEmitter.prepare_tag  s     	86777$ii#::J$+002233>" 3 3>>&)) 3v}}FcRUhh@V@V!.v6F#CKKMM2F 	$****#####r   N)rJ  r   r(   r   )r   r   r   rI  r   r   r   r  r    s(        $ $ $ $ $ $r   r  )
__future__r   r   ruamel.yaml.errorr   r   ruamel.yaml.eventsruamel.yaml.compatr   r   r	   r
   r   typingr   r   r   r   r   r   r   r   __all__r   r   r4   r   r  r   r   r   <module>r     s   " " " " " " 


 8 8 8 8 8 8 8 8        # # # # # # # # # # # # # #
. n
%	 	 	 	 	9 	 	 	o o o o o o o o2+  +  +  +  +  +  +  + \G G G G G G G GT4$ $ $ $ $w $ $ $ $ $r   