
    0;ji                         d dl mZ 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mZmZ 	 ddgZ G d de          Z G d de          Z G d de          Z G d de          ZdS )    )absolute_import)print_functionN   )	YAMLErrorYAMLStreamError)*)utf8	text_typePY2nprintdbg	DBG_EVENTcheck_anchorname_charF)AnyDictListUnionTextTupleOptional)
StreamTypeEmitterEmitterErrorc                       e Zd ZdS )r   N)__name__
__module____qualname__     S/root/voice-cloning/.venv/lib/python3.11/site-packages/srsly/ruamel_yaml/emitter.pyr   r      s        Dr   c                       e Zd Zd ZdS )ScalarAnalysisc	                 v    || _         || _        || _        || _        || _        || _        || _        || _        d S Nscalarempty	multilineallow_flow_plainallow_block_plainallow_single_quotedallow_double_quotedallow_block)	selfr&   r'   r(   r)   r*   r+   r,   r-   s	            r    __init__zScalarAnalysis.__init__"   sG     
" 0!2#6 #6 &r   N)r   r   r   r/   r   r   r    r"   r"   !   s#        ' ' ' ' 'r   r"   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )Indentsc                     g | _         d S r$   )valuesr.   s    r    r/   zIndents.__init__:   s    r   c                 >    | j                             ||f           d S r$   )r3   append)r.   valseqs      r    r6   zIndents.append>   s"    C:&&&&&r   c                 @    | j                                         d         S Nr   )r3   popr4   s    r    r;   zIndents.popB   s    {  ##r   c                 L    	 | j         d         d         S # t          $ r Y dS w xY w)Nr   F)r3   
IndexErrorr4   s    r    last_seqzIndents.last_seqF   s:    	;r?1%% 	 	 	55	s    
##c                     t          | j                  dk     s| j        d         d         sdS | j        d         d         | j        d         d         nd}||z   |z
  dz
  S )N   r   r   lenr3   )r.   
seq_indentcolumnbases       r    seq_flow_alignzIndents.seq_flow_alignO   sh     t{at{2q'91%)[_Q%7%Ct{2q!!j 6)A--r   c                 *    t          | j                  S r$   rC   r4   s    r    __len__zIndents.__len__X   s    4;r   N)	r   r   r   r/   r6   r;   r?   rH   rJ   r   r   r    r1   r1   8   sn          ' ' '$ $ $  . . .         r   r1   c                   H   e Zd ZdddZdZ	 	 	 	 	 	 	 	 	 	 dZdZed             Zej        d             Zed	             Z	ed
             Z
d Zd Zd Zd Zd[dZd Zd Zd Zd\dZd Zd Zd]dZd Zd Zd Zd Zd Zd\dZd Zd Zd  Zd! Z d" Z!d# Z"d\d$Z#d% Z$d& Z%d\d'Z&d( Z'd) Z(d* Z)d+ Z*d, Z+d- Z,d. Z-d/ Z.d0 Z/d1 Z0d2 Z1d3 Z2d4 Z3d5 Z4d6 Z5d7 Z6d8 Z7d9 Z8d: Z9	 d^d;Z:d< Z;d_d=Z<d> Z=d? Z>d`dAZ?dBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQZ@d`dRZAdS ZBdT ZCd_dUZDd`dVZEd\dWZFdX ZGdY ZHdS )ar   !z!!)rL   ztag:yaml.org,2002:   Nc                    || _         | 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 S )N_emitterFr   T:i  rA   r   
   P   
)rS   z
)0dumpergetattrrO   streamencodingallow_space_breakstatesexpect_stream_startstateeventseventr1   indentsindentflow_contextroot_contextsequence_contextmapping_contextsimple_key_contextlinerF   
whitespace	indentioncompact_seq_seqcompact_seq_map
no_newline
open_endedcolonprefixed_colon+brace_single_entry_mapping_in_flow_sequence	canonicalallow_unicodesys
maxunicodeunicode_supplementarysequence_dash_offsettop_level_colon_alignbest_sequence_indentrequested_indentbest_map_indent
best_widthbest_line_breaktag_prefixesprepared_anchorprepared_taganalysisstylescalar_after_indicator)r.   rW   rp   r`   widthrq   
line_breakblock_seq_indentrv   prefix_colonro   rU   s               r    r/   zEmitter.__init__g   s    ;"wt{J'M'M'U#'DK  !% -
 
 yy  " %$"' 	##   
&.DJJL4:4M 	
 8 	8
 #*%(^f%<"8H$O$4$4a!%:"$%! & 	/a&oooo2ooooo(.D%#8  	$UT6:::#DO$000#-D  !  $  
&*###r   c                 L    	 | j         S # t          $ r t          d          w xY w)Nz output stream needs to specified)_streamAttributeErrorr   r4   s    r    rW   zEmitter.stream   s>    	F< 	F 	F 	F!"DEEE	Fs   	 #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    rW   zEmitter.stream   s;     ;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   rU   
serializer_serializerr   r4   s    r    r   zEmitter.serializer   sU    	t{E** .{--;** 	 	 	KKK	s    / / >>c                 *    t          | j                  S r$   )rD   ra   r4   s    r    
flow_levelzEmitter.flow_level   s     4$%%%r   c                 "    g | _         d | _        d S r$   )rZ   r\   r4   s    r    disposezEmitter.dispose   s     


r   c                 H   t          t                    rt          |           | j                            |           |                                 sP| j                            d          | _        |                                  d | _        |                                 Nd S d S r:   )	r   r   r   r]   r6   need_more_eventsr;   r^   r\   r.   r^   s     r    emitzEmitter.emit   s    y>> 	5MMM5!!!'')) 	++DJJJLLLDJ '')) 	 	 	 	 	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   rA      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   c                 (   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   rB   F)r]   r   r   CollectionStartEventDocumentEndEventCollectionEndEventStreamEndEventrD   )r.   count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   Fc                     | 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_   r6   r`   rx   r?   rw   ry   )r.   flowsequence
indentlesss       r    increase_indentzEmitter.increase_indent!  s    DK222;   #3 	KK<((***)))KKKK	 	r   c                    t          | j        t                    rt          r4| j        j        r't          | j        dd           s| j        j        | _        n2| j        j        r&t          | j        d          s| j        j        | _        |                                  | j	        | _
        d S t          d| j                  )NrX   z#expected StreamStartEvent, but got )r   r^   StreamStartEventr   rX   rV   rW   r   write_stream_startexpect_first_document_startr\   r   r4   s    r    r[   zEmitter.expect_stream_start>  s    dj"233 
	X 8:& 8wt{JPT/U/U 8$(J$7DM:& 8wt{J/O/O 8$(J$7DM##%%%9DJJJ,$**VWWWr   c                 0    t          d| j                  )Nzexpected nothing, but got )r   r^   r4   s    r    expect_nothingzEmitter.expect_nothingL  s    lTZZIJJJr   c                 .    |                      d          S NT)first)expect_document_startr4   s    r    r   z#Emitter.expect_first_document_startR  s    )))555r   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tagsrl   write_indicatorwrite_indentprepare_versionwrite_version_directiveDEFAULT_TAG_PREFIXEScopyr|   sortedkeysprepare_tag_handleprepare_tag_prefixwrite_tag_directiveexplicitrp   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_startV  s   dj"455 '	
" $djo $4? $$$VT222!!###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   (!!###$$VT222> (%%'''2DJJJ
N33 		 $$$VT222!!###!!###,DJJJ,=AZZI  r   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   r4   s    r    expect_document_endzEmitter.expect_document_end  s    dj"233 	Xz" $$$VT222!!###3DJJJ,$**VWWWr   c                 p    | j                             | j                   |                     d           d S )NT)root)rZ   r6   r   expect_noder4   s    r    r   zEmitter.expect_document_root  s8    43444d#####r   c                 \   || _         || _        || _        || _        t	          | j        t                    r|                                  d S t	          | j        t          t          f          r| 
                    d          r(t	          | j        t                    r| j        rd| _        |r5t	          | j        t                    r| j        s|                                  |                                  t	          | j        t                    r|                                  d S t	          | j        t                    r| j        | j        }}| j        j        rp| j        j        du r4| j        j        r(|                     | j                  rd| _        d| _        |                     | j                  r|| _        | j         | _        | j        s'| j        s | j        j        s|                                 r|                                  d S |                                  d S t	          | j        t6                    r| j        j        du r&| j        j        r|                     | j                   | j        j        r,| j        j        d         r|                     | j                   | j        s'| j        s | j        j        s|                                 r&|                     | j        j        dk               d S |                                  d S d S tA          d| j                  )N&FTr   )singlezexpected NodeEvent, but got )!rb   rc   rd   re   r   r^   
AliasEventexpect_aliasScalarEventr   process_anchorr   r   process_tagexpect_scalarr   rh   rk   comment
flow_stylewrite_post_commentwrite_pre_commentr   rp   check_empty_sequenceexpect_flow_sequenceexpect_block_sequencer   check_empty_mappingexpect_flow_mappingnr_itemsexpect_block_mappingr   )r.   r   r   mapping
simple_keyi2n2s          r    r   zEmitter.expect_node  sA     (&",dj*-- 6	Q
[2F$GHH 4	Q##D)).tz;77. ).
 ).%$tz;77$ 3$
 !!###$*k22 $0""$$$$$DJ(:;; !0B:% =z,55$*:L5224:>> 3-2DN.2DO--dj99 =)+.2n*<O1~1 z,1 0022	1 --/////..00000DJ(9:: 0:(E11dj6H1++DJ777:% 7$**<Q*? 7**4:666O0~0 z,0 //11	0 ,,DJ4G14L,MMMMM--/////0 0 ,4::OPPPr   c                     | j         j        t          d          |                     d           | j                                        | _        d S )Nz!anchor is not specified for aliasr   )r^   anchorr   r   rZ   r;   r\   r4   s    r    r   zEmitter.expect_alias  sG    :$BCCCD!!![__&&


r   c                     |                      d           |                                  | j                                        | _        | j                                        | _        d S )NT)r   )r   process_scalarr_   r;   r`   rZ   r\   r4   s    r    r   zEmitter.expect_scalar  sW    $'''l&&(([__&&


r   c                    | j                             | j        | j                  }|                     d|z  dz   dd           |                     dd           | j                            d           | j        | _	        d S )N [Trg   r   r   )
r_   rH   rw   rF   r   r   ra   r6   expect_first_flow_sequence_itemr\   )r.   inds     r    r   zEmitter.expect_flow_sequence  s    l))$*CT[QQTCZ$.FFF$666  %%%9


r   c                    t          | j        t                    r| j                                        | _        | j                                        }|dk    sJ |                     d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;   r`   ra   r   r   r   r   write_line_breakrZ   r\   rp   rF   rz   r   r6   expect_flow_sequence_itemr   r.   poppeds     r    r   z'Emitter.expect_first_flow_sequence_item  s0   dj"233 	,,**,,DK&**,,FS====  u---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*|                     dd           | 	                                 |                     dd           | j        j
        r-| j        j
        d         r|                     | j                   nd| _        | j                                        | _        d S |                     dd           | j        s| j        | j        k    r| 	                                 | j                            | j                   |                     d           d S )Nr   ,Fr   r   Tr   )r   r^   r   r_   r;   r`   ra   rp   r   r   r   r   rk   rZ   r\   rF   rz   r6   r   r   r   s     r    r   z!Emitter.expect_flow_sequence_item  s`   dj"233 	,,**,,DK&**,,FS====~ $$$T5111!!###  u---z! (dj&8&; (''
3333"'**DJJJ  u---~ $t!>!>!!###Kt=>>>d+++++r   c                 ^   | j                             | j        | j                  }d}|r(| j        r!| j        d         dk    r| j        s	| j        sd}|                     d|z  |z   dd           | j        	                    |           | 
                    dd	           | j        | _        d S )
N{rB   r    r   Tr   Fr   )r_   rH   rw   rF   r   ra   rp   ro   r   r6   r   expect_first_flow_mapping_keyr\   )r.   r   r   map_inits       r    r   zEmitter.expect_flow_mapping  s    l))$*CT[QQ		 !"%,,N -D -
 HTCZ(2DTJJJ  ***$7777


r   c                 f   t          | j        t                    r| j                                        | _        | j                                        }|dk    sJ |                     d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;   r`   ra   r   r   r   r   r   rZ   r\   rp   rF   rz   r   check_simple_keyr6    expect_flow_mapping_simple_valuer   expect_flow_mapping_valuer   s     r    r  z%Emitter.expect_first_flow_mapping_key(  s   dj/22 	/,**,,DK&**,,FS====  u---z! (dj&8&; (''
3333A%%%%'''**DJJJ~ $t!>!>!!###> /d&;&;&=&= /""4#HIII  $ ?????$$T4000""4#ABBB   .....r   c                    t          | j        t                    r| j                                        | _        | j                                        }|dv sJ | j        r*|                     dd           | 	                                 |dk    r|                     dd           | j        j
        r-| j        j
        d         r|                     | j                   nd| _        | j                                        | _        d S |                     d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  r  Fr  r	  r   Tr
  r  r  )r   r^   r  r_   r;   r`   ra   rp   r   r   r   r   rk   rZ   r\   rF   rz   r  r6   r  r   r  r   s     r    expect_flow_mapping_keyzEmitter.expect_flow_mapping_key@  s   dj/22 	/ ,**,,DK&**,,F[((((~ $$$T5111!!###}}$$T5111z! (dj&8&; (''
3333"'**DJJJ  u---~ $t!>!>!!###> /d&;&;&=&= /""4#HIII  $ ?????$$T4000""4#ABBB   .....r   c                     |                      | j        d           | j                            | j                   |                     d           d S )NFTr  )r   rn   rZ   r6   r  r   r4   s    r    r  z(Emitter.expect_flow_mapping_simple_value_  sQ    T0%88847888&&&&&r   c                     | j         s| j        | j        k    r|                                  |                     | j        d           | j                            | j                   | 	                    d           d S )NTr  )
rp   rF   rz   r   r   rn   rZ   r6   r  r   r4   s    r    r  z!Emitter.expect_flow_mapping_valuee  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   )rd   rh   ri   rF   r   r    expect_first_block_sequence_itemr\   )r.   r   s     r    r   zEmitter.expect_block_sequenceo  sp     	(!^+JJJ' (DK1,<,<%%'''%$:NNN:


r   c                 .    |                      d          S r   )expect_block_sequence_itemr4   s    r    r  z(Emitter.expect_first_block_sequence_itemz  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   -Trh   rA   r   )r   r^   r   r   r   r_   r;   r`   rZ   r\   rk   rF   r   ru   r   rw   r6   r  r   )r.   r   nonlr   s       r    r  z"Emitter.expect_block_sequence_item~  sh    	,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  d!2DD III '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   )rd   rj   rF   r   r   expect_first_block_mapping_keyr\   r4   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_keyr4   s    r    r  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                            d           d S d S |                     ddd           | j                            | j                   |                     d           d S )Nr   r  Tr  r
  r   r  )r   r^   r  r   r   r_   r;   r`   rZ   r\   r   r  r   r   r   r   r   r6   !expect_block_mapping_simple_valuer   r   rW   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tt0LLL)   ""4#IJJJ  $ ???dj*55 ,K%%d+++++, , $$T44$@@@""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^   r`   rv   rF   rm   rn   r   rZ   r6   r   r   )r.   cs     r    r"  z)Emitter.expect_block_mapping_simple_value  s    4:w--44{aD$>$JD6DE
R'  E***48999&&&&&r   c                     |                                   |                     | j        dd           | j                            | j                   |                     d           d S )NTr  r  )r   r   rn   rZ   r6   r   r   r4   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   boolr]   r   r4   s    r    r   zEmitter.check_empty_sequence  sD     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  r4   s    r    r   zEmitter.check_empty_mapping  sC     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_anchorrD   r   r   r+  r~   prepare_tagr   analyze_scalarr,  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^$D$D!c$+,,,Fdj+.. 	0}$ $ 3 3DJ4D E Ec$-.///F22 
tz:.. *4:'9:: 2J)T1* 4:'899 2J)T1* 4:{33 0,WW
RW@WX0 //* ((***  ''))#	
r   c                     | j         j        	d | _        dS | j        $|                     | j         j                  | _        | j        r%|                     || j        z   d           d| _        d | _        dS )NFT)r^   r   r}   r/  r   rk   )r.   	indicators     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        |                                 | _        | 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        rJ|                     | j        d           | j        r(| j        s!t          | j         t                    rd| _        d | _        d S )Nr  r   r   rL   ztag is not specifiedT)r^   r+  r   r   r   choose_scalar_stylerp   r   r~   r   r0  r   rc   r   rk   )r.   r+  s     r    r   zEmitter.process_tag(  sn   jndj+.. 	z!!5577
N ckr!!dj&9!&<!J"$$)<Q)?$$(!z"1% )#+$(!N cktz7Jk$(!;5666$ $ 0 0 5 5D 	'  !2D999%'' tz;77'
 #' r   c                    | j         $|                     | j        j                  | _         | j        j        dk    s| j        rdS | j        j        r| j        j        dk    rk| j        j        d         s| j        j        d         sG| j        r| j         j        s4| j         j	        s(| j
        r| j         j        s| j
        s| j         j        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 )
N"r  r   rA   r  Tz|>'rS   )r   r1  r^   r,  r   rp   r   re   r'   r(   r   r)   r*   r-   r,   r+   r4   s    r    r7  zEmitter.choose_scalar_styleI  s   =  //
0@AADM:s""dn"3
  	DJ$4$;$;J" %<*.**=a*@ %< '](,0M,C 	
 M2  -1M,K r$(!: 	(
 0D 8 8O(/( M-(
 z''z 	DM$E 	dj&&&$$*2B*B*Bsz 	4:#3s#:#:}0 ',0M,C ssr   c                    | 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                   nV| j        dk    r+|                     | j         j        | j        j                   n |                     | j         j        |           d | _         d | _        | j        j        r|                     | j                   d S d S )Nr9  r:  >|)r   r1  r^   r,  r   r7  re   rc   r   r   write_double_quotedr&   write_single_quotedwrite_foldedwrite_literalr   write_plainr   )r.   splits     r    r   zEmitter.process_scalarm  s}   =  //
0@AADM:1133DJ++
   	  	 :$$T]%95AAAAZ3$$T]%95AAAAZ3dm23333Z3t}3TZ5GHHHHT]15999
: 	0##DJ/////	0 	0r   c                 N    |\  }}|dk    rt          d||fz            d||fz  S )Nr   zunsupported YAML version: %d.%dz%d.%d)r   )r.   r   majorminors       r    r   zEmitter.prepare_version  s;    uA::@E5>QRRR5%.((r   c           	      p   |st          d          |d         dk    s|d         dk    rt          dt          |          z            |dd         D ]b}d|cxk    rdk    sSn d	|cxk    rd
k    sDn d|cxk    rdk    s5n |dv s/t          dt          |          dt          |                    c|S )Nztag handle must not be emptyr   rL   rB   z*tag handle must start and end with '!': %rr   09AZazz-_invalid character z in the tag handle: )r   r	   )r.   r   chs      r    r   zEmitter.prepare_tag_handle  s    	?=>>>!9r
d 2 2<VM   2, 
	 
	B""""d""""2%%%%%%%%2%%%%%%%%;;"lBxxxxf/   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  }nc||k     r|                    |||                    |dz   x}}t          |          }|D ]'}|                    dt          |          z             (|t          |          k     ||k     r|                    |||                    d                    |          S )Nztag prefix must not be emptyr   rL   r   -;/?:@&=+$,_.~*'()[]r   r   rA   #rH  rI  rJ  rK  rL  rM  %%%02Xr  )r   rU   rV   rD   r6   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""""d""""2%%%%%%%%2%%%%%%%%<<q3;;MM&s"3444!Ag%Bxx 7 7BMM)c"gg"56666 CKK  3;;MM&s+,,,wwvr   c                    |st          d          |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  }nc||k     r|                    |||                    |dz   x}}t          |          }|D ]'}|                    dt          |          z             (|t          |          k     ||k     r|                    |||                    d                    |          }|r||S d|z  S )Nztag must not be emptyrL   r   rQ  r   rR  rS  rH  rI  rJ  rK  rL  rM  r   rT  r  z!<%s>)r   r   r|   r   
startswithrD   rU   rV   r6   r	   rU  rV  )r.   r+  r   suffixprefixesr   rW  rX  rY  rZ  r   rO  r[  suffix_texts                 r    r0  zEmitter.prepare_tag  sj    	86777$;;J$+002233 	, 	,F~~f%% ,6T>>S[[3s88=S=S*62S[[]]+(; 	dk9f==G'V"3"3$CKKB""""d""""2%%%%%%%%2%%%%%%%%<<$JJ6T>>q3;;MM&s"3444!Ag%Bxx 7 7BMM)c"gg"56666! CKK" 3;;MM&s+,,,ggfoo 	*$fkk22k))r   c           	          |st          d          |D ]@}t          |          s/t          dt          |          dt          |                    A|S )Nzanchor must not be emptyrN  z in the anchor: )r   r   r	   )r.   r   rO  s      r    r/  zEmitter.prepare_anchor  sr     	;9::: 	 	B(,, "l@DR$v,,,W   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   ~          ퟿      �u   𐀀u   􏿿   ﻿)r"   r]  rD   r   use_versionrt   rq   rY   )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    r1  zEmitter.analyze_scalar   s     
	!!&"&$($(!	 	 	 	 !"  V$$ 	#(9(9&(A(A 	##"O #' KK1Iq	-I I 	
  c&kk!!B zz---&*O'+$;;2f<<*.V))*.- 0+/(::"8:&*O'+$ >>&*O::$/"="G"G&*O::- 0*.+/(::"9:&*O'+$ ***"%KK7b#;#;#;#;G#;#;#;#;'MM"1111	1111 B3333)33332 4 +bAAAAMAAAAAIoo- 2-1*)-& TzzA::$(MCKK!O++%)N! '"&K!%!&,,,A::$(MCKK!O++%)N! '"&K!&!%!&!& QJE&(,H&H#	S[[( E%!)$(DD #] c&kk!!h   ""  	9M 	9^ 	9~ 	93880  	 K  	OINNN03F  	$ 5:: :!:#kk 	$INNN03F) $#  	93880  	%$  	& %!-/ 3 3#	
 	
 	
 		
r   c                 f    t          | j        d          r| j                                         d S d S )Nflush)r   rW   r|  r4   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-16rj  )rX   r]  rW   r   encoder4   s    r    r   zEmitter.write_stream_start  se     = 	?T]55h?? 	?Ki..t}==>>>>>	? 	? 	? 	?r   c                 .    |                                   d S r$   )r   r4   s    r    r   zEmitter.write_stream_end  s    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)
rg   rh   rF   rD   rl   r(  rX   r~  rW   r   )r.   r5  need_whitespacerg   rh   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   )r`   rh   rF   rg   r(  rk   r   rX   r~  rW   r   )r.   r`   r[  s      r    r   zEmitter.write_indent  s    !	({V##v%%do%DO$$ ("'%%''';"DO6DK/0D DK} 2{{4=11Kd#####  r   c                     || j         }d| _        d| _        | xj        dz  c_        d| _        t          | j                  r|                    | j                  }| j        	                    |           d S )NTr   r   )
r{   rg   rh   rf   rF   r(  rX   r~  rW   r   )r.   r[  s     r    r   zEmitter.write_line_break  st    <'D		Q		 	.;;t}--D$r   c                     d|z  }| j         r|                    | j                   }| j                            |           |                                  d S )Nz	%%YAML %srX   r~  rW   r   r   )r.   r   r[  s      r    r   zEmitter.write_version_directive  sW    l*= 	.;;t}--D$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  s_     !,kk:= 	.;;t}--D$r   Tc                    | 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   r:  TFr   r   rc  rS   
    
  z''rA   )rb   rx   r   r   r   rD   rF   rz   r(  rX   r~  rW   r   )
r.   textrC  spacesbreaksrX  rY  rO  r[  brs
             r    r?  zEmitter.write_single_quoted  sE    	($0%%'''(A--%%'''T4(((SYYBSYY#Y $$:t	S(( K$/99! :!QJJ3t99,,))++++#E#Is4yy0.. >#';;t}#=#=D))$///E $:+@!@!@E{e++--///"59o 6 6;; 113333 11"5555%%'''E:'=!=!=ts{{#E#Is4yy0.. >#';;t}#=#=D))$/// #Tzzq && 6;;t}55D!!$'''a~t441HCg SYYh 	T5)))))r   rH  rL  btnvfrer9  \N_LP) 	rS   rT   r9  r  re  rf  u    u    c                 (   | j         r:| j        3|                                  | j        dk    r|                                  |                     dd           dx}}|t          |          k    rd }|t          |          k     r||         }|;|dv s7d|cxk    rdk    sjn | j        r 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 n6|dk    s||k    r)| j        ||z
  z   | j        k    r|r|||         dz   }||k     r|}| xj        t          |          z  c_        t          | j	                  r|
                    | j	                  }| j                            |           |                                  d| _        d| _        ||         dk    rgd}| xj        t          |          z  c_        t          | j	                  r|
                    | j	                  }| j                            |           |dz  }|t          |          k    |                     dd           d S )Nr   r9  Tu   "\  ﻿r   rd  rf  rg  rh  ri  r     ÿz\x%02Xu   ￿z\u%04Xz\U%08Xr   F)rb   rx   r   r   r   rD   rq   rF   r(  rX   r~  rW   r   ESCAPE_REPLACEMENTSrU  rz   rg   rh   )r.   r  rC  rX  rY  rO  r[  s          r    r>  zEmitter.write_double_quoteda  s    	($0%%'''(A--%%'''T4(((SYYBSYY#Y
555r,,,,W,,,,* - %7777i77779;W;W;W;Wi;W;W;W;W 3;;c	?DKK3t99,KKDM** :#{{4=99K%%d+++E>T555$t'?'CCw)CGG3y)CGG3)CGG3KK3t99,KKDM** :#{{4=99K%%d+++!GEC''''#d))a-'''''4ZZ5C<<K3;/$/AA B E#I.3;;Es4yy(&& 6;;t}55D!!$'''!!###"'!&;$&& DKK3t99,KKDM** :#{{4=99K%%d+++1HCu SYYv 	T5)))))r   c                    d}d}d}|r|d         dv r| j         }|t          |          z  }ng| 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| j         }|d         d
vrd}nt          |          d	k    s
|d         d
v rd}||z  }|||fS )Nr   r  r  )z
---z
...TrB      z 
r   rc  r  r=   +)rw   r
   rb   findr>   rD   )r.   r  r`   r5  hintsrY  poss          r    determine_block_hintszEmitter.determine_block_hints  sM   	 	!Aw00026***" 7-  CC	!"iiS11"99!!#C!G}77 %  8) ! ! ! D!q	! Rxx  77!6FBx444 		Ta48/D#D#D 	fi''s   A((
A54A5c                    |                      |          \  }}}|                     d|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<  Tr  Fr   u
   
  r   rS   r   u    
  r  rA   z*unexcpected fold indicator \a before spacerc  )r  r   rl   r   rD   r   rF   rz   r(  rX   r~  rW   r   isspacer   )r.   r  r  _indent
_indicatorrp  r  r  rX  rY  rO  r  r[  s                r    r@  zEmitter.write_folded  sQ   %)%?%?%E%E"w
TE\4000"DOSYYBSYY#Y / :+B!B!B)0N$JJ K500--///$&$JM"59o 6 6;; 113333 11"5555~))+++E  ::qyC''DK$/,I,I))++++#E#Is4yy0.. >#';;t}#=#=D))$///E:'?!?!?c	?DKK3t99,KKDM** :#{{4=99K%%d+++U{{#d))a-00cAg9N9N9P9P0 11333 --///1HCC". M# #  z--///E~44t1HCo SYYr   c                    |                      |          \  }}}|                     d|z   d           	 |d         d         }|r| j                            |           n# t          t
          f$ r Y nw xY w|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=  Tr   r   r  rc  rS   r   )r  r   rW   r   	TypeErrorr>   rl   r   rD   rb   r`   r   r(  rX   r~  )r.   r  r   r  r  r  r  rX  rY  rO  r  idnxr[  s                r    rA  zEmitter.write_literal  sX   %)%?%?%E%E"w
TE\4000	ajmG +!!'***:& 	 	 	D	"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--dgn.EFFFF --///E:'<!<!<c	?DDM** :#{{4=99K%%d+++z--///E~441HC; SYYs   *A A32A3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    rd }|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
                            |           |}n)|r|dvr||         dk    r|                                  |||         D ]2}	|	dk    r|                                  |                     |	           3|                                  d| _        d| _        |}n||dv 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    d S d S )	Nr   Tr   Fr   rc  rS   r  )rb   rx   r   r   rl   rg   rF   rD   rX   r~  rW   r   rh   rz   rr   stdoutrepr)
r.   r  rC  r[  r  r  rX  rY  rO  r  s
             r    rB  zEmitter.write_plain:  s>    	'$0%%'''(A--%%'''"& 	F 	$DKK3t99$KK} 2{{4=11Kd###SYYBSYY#Y % ::qyC''DK$/,I,Ie,I))+++*/).#E#Is4yy0= >#';;t}#=#=D))$///E  222E{e++--///"59o 6 6;; 113333 11"5555%%'''&+DO%*DNE:'=!=!=c	?DKK3t99,KK} :#{{4=99))$////
((dd):;;;E~t441HC[ SYYs   9J 2Kc                    |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 )NrB   rS   r   r   r   )r,  
start_markrF   r]  
ValueErrorstripr(  rX   r~  UnicodeDecodeErrorrW   r   r  r   )r.   r   prer,  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         }|dS 	 t          t          f}|D ]q}t          ||          rt	          |dd           r$| j        dk    r|                                  |                     |d           t          ||          rd|_        rnO# t          $ rB t          j                            d                    t          |          |                      w xY wdS )Nr   Fpre_doner   T)r  zeventtt {} {})r   r   r   r   rV   rF   r   r  r  r  rr   r  r   formattype)r.   r^   commentsstart_eventsr   s        r    r   zEmitter.write_pre_comment  s   =#5	-/ABL# 	, 	,e\22 wZ8 8  ;!##))+++""7"555e\22 ,'+G$	,  	 	 	J_33DKKGGHHH	 ts   BB A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)FNF)F)FFFF)FFr$   )T)Ir   r   r   r   r2  r/   propertyrW   setterr   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  r   r  r   r"  r#  r   r   r   r  r   r   r7  r   r   r   r   r0  r/  r1  r   r   r   r   r   r   r   r   r?  r  r>  r  r@  rA  rB  r  r   r   r   r   r    r   r   ]   s        $   
 "48j+ j+ j+ j+X F F XF ]  ]   X & & X&      , , ,   :X X XK K K6 6 6) ) ) )V
X 
X 
X$ $ $<Q <Q <Q <Q|' ' '' ' ': : :, , ,&, , ,28 8 8 8$/ / /0/ / />' ' '' ' '	; 	; 	;; ; ;, , , ,.9 9 99 9 9/ / / />' ' '' ' '
 
 

 
 

 
 
$
 $
 $
P  ! ! !B" " "H0 0 0<) ) )  *  B+* +* +*Z	 	 	y
 y
 y
z     
? ? ?  
 GL        $ $ $(
  
  
  
           ?* ?* ?* ?*D  $D* D* D* D*L( ( (BB B BH, , , ,\C C C CJ"$ "$ "$ "$H  ,    r   )
__future__r   r   rr   errorr   r   r]   compatr	   r
   r   r   r   r   r   typingr   r   r   r   r   r   r   r   __all__r   objectr"   r1   r   r   r   r    <module>r     s   ' & & & & & % % % % % % 


 - - - - - - - -                     # n
%	 	 	 	 	9 	 	 	' ' ' ' 'V ' ' '."  "  "  "  " f "  "  " Jb b b b bf b b b b br   