a
    Ä~´gþ§  ã                   @   sL   d dgZ ddlmZ ddlT G dd„ deƒZG dd„ dƒZG dd „ d ƒZd	S )
ÚEmitterÚEmitterErroré   )Ú	YAMLError)Ú*c                   @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r	   r	   úQ/var/www/html/emsaiapi.evdpl.com/venv/lib/python3.9/site-packages/yaml/emitter.pyr      s   c                   @   s   e Zd Zdd„ ZdS )ÚScalarAnalysisc	           	      C   s4   || _ || _|| _|| _|| _|| _|| _|| _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   r	   r	   r
   Ú__init__   s    zScalarAnalysis.__init__N)r   r   r   r   r	   r	   r	   r
   r      s   r   c                   @   s(  e Zd ZdddœZddd„Zdd„ Zd	d
„ Zdd„ Zdd„ ZdŽdd„Z	dd„ Z
dd„ Zdd„ Zddd„Zdd„ Zdd„ Zddd„Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd‘d8d9„Zd:d;„ Zd<d=„ Zd’d>d?„Z d@dA„ Z!dBdC„ Z"dDdE„ Z#dFdG„ Z$dHdI„ Z%dJdK„ Z&dLdM„ Z'dNdO„ Z(dPdQ„ Z)dRdS„ Z*dTdU„ Z+dVdW„ Z,dXdY„ Z-dZd[„ Z.d\d]„ Z/d^d_„ Z0d`da„ Z1dbdc„ Z2ddde„ Z3d“dfdg„Z4dhdi„ Z5d”djdk„Z6dldm„ Z7dndo„ Z8d•dqdr„Z9dsdtdudvdwdxdydzd{d|d}d~dd€dd‚œZ:d–dƒd„„Z;d…d†„ Z<d‡dˆ„ Z=d‰dŠ„ Z>d—d‹dŒ„Z?dS )˜r   ú!z!!)r   ztag:yaml.org,2002:Nc                 C   sö   || _ d | _g | _| j| _g | _d | _g | _d | _d| _	d| _
d| _d| _d| _d| _d| _d| _d| _d| _|| _|| _d| _|r¢d|  k r˜dk r¢n n|| _d| _|rÀ|| jd krÀ|| _d| _|d	v rÔ|| _d | _d | _d | _d | _d | _d S )
Né    FTé   r   é
   éP   Ú
)úr   z
)ÚstreamÚencodingÚstatesÚexpect_stream_startÚstateÚeventsÚeventÚindentsÚindentÚ
flow_levelÚroot_contextÚsequence_contextÚmapping_contextÚsimple_key_contextÚlineÚcolumnÚ
whitespaceÚ	indentionÚ
open_endedÚ	canonicalÚallow_unicodeÚbest_indentÚ
best_widthÚbest_line_breakÚtag_prefixesÚprepared_anchorÚprepared_tagÚanalysisÚstyle)r   r   r2   r'   Úwidthr3   Ú
line_breakr	   r	   r
   r   &   sD    zEmitter.__init__c                 C   s   g | _ d | _d S r   )r!   r#   ©r   r	   r	   r
   Údisposej   s    zEmitter.disposec                 C   s6   | j  |¡ |  ¡ s2| j  d¡| _|  ¡  d | _qd S ©Nr   )r$   ÚappendÚneed_more_eventsÚpopr%   r#   ©r   r%   r	   r	   r
   Úemito   s
    zEmitter.emitc                 C   sX   | j s
dS | j d }t|tƒr(|  d¡S t|tƒr<|  d¡S t|tƒrP|  d¡S dS d S )NTr   r   r   é   F)r$   Ú
isinstanceÚDocumentStartEventÚneed_eventsÚSequenceStartEventÚMappingStartEventrD   r	   r	   r
   rB   x   s    






zEmitter.need_more_eventsc                 C   sv   d}| j dd … D ]P}t|ttfƒr.|d7 }n&t|ttfƒrF|d8 }nt|tƒrTd}|dk r dS qt| j ƒ|d k S )Nr   r   éÿÿÿÿF)r$   rG   rH   ÚCollectionStartEventÚDocumentEndEventÚCollectionEndEventÚStreamEndEventÚlen)r   ÚcountÚlevelr%   r	   r	   r
   rI   …   s    


zEmitter.need_eventsFc                 C   sF   | j  | j¡ | jd u r.|r&| j| _qBd| _n|sB|  j| j7  _d S r@   )r&   rA   r'   r4   )r   ÚflowÚ
indentlessr	   r	   r
   Úincrease_indent’   s    

zEmitter.increase_indentc                 C   sN   t | jtƒr<| jjr*t| jdƒs*| jj| _|  ¡  | j| _nt	d| j ƒ‚d S )Nr    z%expected StreamStartEvent, but got %s)
rG   r%   ÚStreamStartEventr    Úhasattrr   Úwrite_stream_startÚexpect_first_document_startr#   r   r>   r	   r	   r
   r"       s    

ÿzEmitter.expect_stream_startc                 C   s   t d| j ƒ‚d S )Nzexpected nothing, but got %s)r   r%   r>   r	   r	   r
   Úexpect_nothingª   s    zEmitter.expect_nothingc                 C   s   | j ddS ©NT)Úfirst)Úexpect_document_startr>   r	   r	   r
   rZ   ¯   s    z#Emitter.expect_first_document_startc           	      C   sr  t | jtƒr$| jjs| jjr8| jr8|  dd¡ |  ¡  | jjrX|  | jj¡}|  	|¡ | j
 ¡ | _| jjr¼t| jj ¡ ƒ}|D ]:}| jj| }|| j|< |  |¡}|  |¡}|  ||¡ q€|oî| jj oî| j oî| jj oî| jj oî|  ¡  }|s|  ¡  |  dd¡ | jr|  ¡  | j| _nJt | jtƒr`| jrN|  dd¡ |  ¡  |  ¡  | j| _ntd| j ƒ‚d S )Nú...Tú---z'expected DocumentStartEvent, but got %s)rG   r%   rH   ÚversionÚtagsr1   Úwrite_indicatorÚwrite_indentÚprepare_versionÚwrite_version_directiveÚDEFAULT_TAG_PREFIXESÚcopyr7   ÚsortedÚkeysÚprepare_tag_handleÚprepare_tag_prefixÚwrite_tag_directiveÚexplicitr2   Úcheck_empty_documentÚexpect_document_rootr#   rP   Úwrite_stream_endr[   r   )	r   r]   Úversion_textZhandlesÚhandleÚprefixÚhandle_textÚprefix_textÚimplicitr	   r	   r
   r^   ²   sL    



ÿÿþ

ÿzEmitter.expect_document_startc                 C   sT   t | jtƒrB|  ¡  | jjr0|  dd¡ |  ¡  |  ¡  | j| _nt	d| j ƒ‚d S )Nr_   Tz%expected DocumentEndEvent, but got %s)
rG   r%   rN   rd   rn   rc   Úflush_streamr^   r#   r   r>   r	   r	   r
   Úexpect_document_endÖ   s    
ÿzEmitter.expect_document_endc                 C   s   | j  | j¡ | jdd d S )NT)Úroot)r!   rA   ry   Úexpect_noder>   r	   r	   r
   rp   â   s    zEmitter.expect_document_rootc                 C   sð   || _ || _|| _|| _t| jtƒr.|  ¡  n¾t| jtt	fƒrÞ|  
d¡ |  ¡  t| jtƒrf|  ¡  qìt| jtƒr¢| jsŽ| jsŽ| jjsŽ|  ¡ r˜|  ¡  qÜ|  ¡  qìt| jtƒrì| jsÊ| jsÊ| jjsÊ|  ¡ rÔ|  ¡  qì|  ¡  ntd| j ƒ‚d S )Nú&zexpected NodeEvent, but got %s)r)   r*   r+   r,   rG   r%   Ú
AliasEventÚexpect_aliasÚScalarEventrM   Úprocess_anchorÚprocess_tagÚexpect_scalarrJ   r(   r2   Ú
flow_styleÚcheck_empty_sequenceÚexpect_flow_sequenceÚexpect_block_sequencerK   Úcheck_empty_mappingÚexpect_flow_mappingÚexpect_block_mappingr   )r   rz   ÚsequenceÚmappingÚ
simple_keyr	   r	   r
   r{   è   s0    


ÿ

ÿ

zEmitter.expect_nodec                 C   s.   | j jd u rtdƒ‚|  d¡ | j ¡ | _d S )Nz!anchor is not specified for aliasr   )r%   Úanchorr   r€   r!   rC   r#   r>   r	   r	   r
   r~     s    
zEmitter.expect_aliasc                 C   s0   | j dd |  ¡  | j ¡ | _| j ¡ | _d S )NT©rT   )rV   Úprocess_scalarr&   rC   r'   r!   r#   r>   r	   r	   r
   r‚   
  s    zEmitter.expect_scalarc                 C   s6   | j dddd |  jd7  _| jdd | j| _d S )Nú[T©r/   r   rŽ   )rc   r(   rV   Úexpect_first_flow_sequence_itemr#   r>   r	   r	   r
   r…     s    zEmitter.expect_flow_sequencec                 C   sx   t | jtƒr@| j ¡ | _|  jd8  _|  dd¡ | j ¡ | _	n4| j
sR| j| jkrZ|  ¡  | j | j¡ | jdd d S )Nr   ú]FT©rŠ   )rG   r%   ÚSequenceEndEventr&   rC   r'   r(   rc   r!   r#   r2   r.   r5   rd   rA   Úexpect_flow_sequence_itemr{   r>   r	   r	   r
   r’     s    z'Emitter.expect_first_flow_sequence_itemc                 C   sž   t | jtƒrZ| j ¡ | _|  jd8  _| jr@|  dd¡ |  	¡  |  dd¡ | j
 ¡ | _n@|  dd¡ | jsx| j| jkr€|  	¡  | j
 | j¡ | jdd d S )Nr   ú,Fr“   Tr”   )rG   r%   r•   r&   rC   r'   r(   r2   rc   rd   r!   r#   r.   r5   rA   r–   r{   r>   r	   r	   r
   r–   $  s    z!Emitter.expect_flow_sequence_itemc                 C   s6   | j dddd |  jd7  _| jdd | j| _d S )NÚ{Tr‘   r   rŽ   )rc   r(   rV   Úexpect_first_flow_mapping_keyr#   r>   r	   r	   r
   rˆ   6  s    zEmitter.expect_flow_mappingc                 C   s°   t | jtƒr@| j ¡ | _|  jd8  _|  dd¡ | j ¡ | _	nl| j
sR| j| jkrZ|  ¡  | j
s†|  ¡ r†| j | j¡ | jddd n&|  dd¡ | j | j¡ | jdd d S )Nr   Ú}FT©r‹   rŒ   Ú?©r‹   )rG   r%   ÚMappingEndEventr&   rC   r'   r(   rc   r!   r#   r2   r.   r5   rd   Úcheck_simple_keyrA   Ú expect_flow_mapping_simple_valuer{   Úexpect_flow_mapping_valuer>   r	   r	   r
   r™   <  s    z%Emitter.expect_first_flow_mapping_keyc                 C   sÖ   t | jtƒrZ| j ¡ | _|  jd8  _| jr@|  dd¡ |  	¡  |  dd¡ | j
 ¡ | _nx|  dd¡ | jsx| j| jkr€|  	¡  | js¬|  ¡ r¬| j
 | j¡ | jddd n&|  dd¡ | j
 | j¡ | jdd d S )	Nr   r—   Frš   Tr›   rœ   r   )rG   r%   rž   r&   rC   r'   r(   r2   rc   rd   r!   r#   r.   r5   rŸ   rA   r    r{   r¡   r>   r	   r	   r
   Úexpect_flow_mapping_keyM  s"    zEmitter.expect_flow_mapping_keyc                 C   s*   |   dd¡ | j | j¡ | jdd d S ©Nú:FTr   )rc   r!   rA   r¢   r{   r>   r	   r	   r
   r    b  s    z(Emitter.expect_flow_mapping_simple_valuec                 C   sD   | j s| j| jkr|  ¡  |  dd¡ | j | j¡ | jdd d S )Nr¤   Tr   )	r2   r.   r5   rd   rc   r!   rA   r¢   r{   r>   r	   r	   r
   r¡   g  s
    z!Emitter.expect_flow_mapping_valuec                 C   s(   | j o| j }| jd|d | j| _d S )NF)rT   rU   )r+   r0   rV   Ú expect_first_block_sequence_itemr#   )r   rU   r	   r	   r
   r†   p  s    zEmitter.expect_block_sequencec                 C   s   | j ddS r\   )Úexpect_block_sequence_itemr>   r	   r	   r
   r¥   u  s    z(Emitter.expect_first_block_sequence_itemc                 C   s`   |s*t | jtƒr*| j ¡ | _| j ¡ | _n2|  ¡  | j	dddd | j 
| j¡ | jdd d S )NÚ-T©r0   r”   )rG   r%   r•   r&   rC   r'   r!   r#   rd   rc   rA   r¦   r{   ©r   r]   r	   r	   r
   r¦   x  s    z"Emitter.expect_block_sequence_itemc                 C   s   | j dd | j| _d S )NFrŽ   )rV   Úexpect_first_block_mapping_keyr#   r>   r	   r	   r
   r‰   „  s    zEmitter.expect_block_mappingc                 C   s   | j ddS r\   )Úexpect_block_mapping_keyr>   r	   r	   r
   rª   ˆ  s    z&Emitter.expect_first_block_mapping_keyc                 C   s†   |s*t | jtƒr*| j ¡ | _| j ¡ | _nX|  ¡  |  	¡ rX| j 
| j¡ | jddd n*| jdddd | j 
| j¡ | jdd d S )NTr›   rœ   r¨   r   )rG   r%   rž   r&   rC   r'   r!   r#   rd   rŸ   rA   Ú!expect_block_mapping_simple_valuer{   rc   Úexpect_block_mapping_valuer©   r	   r	   r
   r«   ‹  s    z Emitter.expect_block_mapping_keyc                 C   s*   |   dd¡ | j | j¡ | jdd d S r£   )rc   r!   rA   r«   r{   r>   r	   r	   r
   r¬   ™  s    z)Emitter.expect_block_mapping_simple_valuec                 C   s6   |   ¡  | jdddd | j | j¡ | jdd d S )Nr¤   Tr¨   r   )rd   rc   r!   rA   r«   r{   r>   r	   r	   r
   r­   ž  s    z"Emitter.expect_block_mapping_valuec                 C   s"   t | jtƒo | jo t | jd tƒS r@   )rG   r%   rJ   r$   r•   r>   r	   r	   r
   r„   ¦  s    ÿzEmitter.check_empty_sequencec                 C   s"   t | jtƒo | jo t | jd tƒS r@   )rG   r%   rK   r$   rž   r>   r	   r	   r
   r‡   ª  s    ÿzEmitter.check_empty_mappingc                 C   sN   t | jtƒr| jsdS | jd }t |tƒoL|jd u oL|jd u oL|joL|jdkS )NFr   Ú )	rG   r%   rH   r$   r   r   Útagrw   ÚvaluerD   r	   r	   r
   ro   ®  s    
ÿÿÿzEmitter.check_empty_documentc                 C   s
  d}t | jtƒrD| jjd urD| jd u r6|  | jj¡| _|t| jƒ7 }t | jttfƒrˆ| jj	d urˆ| j
d u rz|  | jj	¡| _
|t| j
ƒ7 }t | jtƒr¾| jd u r®|  | jj¡| _|t| jjƒ7 }|dk ot | jtƒpt | jtƒrø| jj rø| jj p|  ¡ p|  ¡ S )Nr   é€   )rG   r%   Ú	NodeEventr   r8   Úprepare_anchorrQ   r   rM   r¯   r9   Úprepare_tagr:   Úanalyze_scalarr°   r   r}   r   r   r„   r‡   )r   Úlengthr	   r	   r
   rŸ   µ  s2    

ÿ

ÿþýýzEmitter.check_simple_keyc                 C   sR   | j jd u rd | _d S | jd u r0|  | j j¡| _| jrH|  || j d¡ d | _d S )NT)r%   r   r8   r³   rc   )r   Ú	indicatorr	   r	   r
   r€   Ë  s    
zEmitter.process_anchorc                 C   sð   | j j}t| j tƒrŒ| jd u r(|  ¡ | _| jr6|d u rl| jdkrL| j jd sb| jdkrl| j jd rld | _d S | j jd r¬|d u r¬d}d | _n | jrš|d u r¬| j jr¬d | _d S |d u r¼t	dƒ‚| jd u rÒ|  
|¡| _| jræ|  | jd¡ d | _d S )Nr®   r   r   r   ztag is not specifiedT)r%   r¯   rG   r   r;   Úchoose_scalar_styler2   rw   r9   r   r´   rc   )r   r¯   r	   r	   r
   r   Õ  s8    

ÿ
ÿþ
þ
zEmitter.process_tagc                 C   sÜ   | j d u r|  | jj¡| _ | jjdks,| jr0dS | jjsz| jjd rz| jrZ| j jsz| j j	sz| j
rh| j jsv| j
sz| j jrzdS | jjrª| jjdv rª| j
sª| jsª| j jrª| jjS | jjr¾| jjdkrØ| j jrØ| jrÔ| j j	sØdS dS )Nú"r   r®   z|>ú')r:   rµ   r%   r°   r;   r2   rw   r,   r   r   r(   r   r   r   r   r>   r	   r	   r
   r¸   î  s@    
ÿÿþþýýÿÿÿzEmitter.choose_scalar_stylec                 C   sÂ   | j d u r|  | jj¡| _ | jd u r.|  ¡ | _| j }| jdkrR|  | j j|¡ n`| jdkrn|  	| j j|¡ nD| jdkrˆ|  
| j j¡ n*| jdkr¢|  | j j¡ n|  | j j|¡ d | _ d | _d S )Nr¹   rº   Ú>Ú|)r:   rµ   r%   r°   r;   r¸   r,   Úwrite_double_quotedr   Úwrite_single_quotedÚwrite_foldedÚwrite_literalÚwrite_plain)r   Úsplitr	   r	   r
   r     s     






zEmitter.process_scalarc                 C   s,   |\}}|dkr t d||f ƒ‚d||f S )Nr   zunsupported YAML version: %d.%dz%d.%d©r   )r   ra   ÚmajorÚminorr	   r	   r
   re     s    zEmitter.prepare_versionc                 C   s    |st dƒ‚|d dks$|d dkr0t d| ƒ‚|dd… D ]^}d|  krTdks<n d	|  krjd
ks<n d|  kr€dks<n |dv s<t d||f ƒ‚q<|S )Nztag handle must not be emptyr   r   rL   z*tag handle must start and end with '!': %rr   Ú0Ú9ÚAÚZÚaÚzú-_z*invalid character %r in the tag handle: %rrÃ   )r   rs   Úchr	   r	   r
   rk   !  s    BÿÿzEmitter.prepare_tag_handlec                 C   s  |st dƒ‚g }d }}|d dkr(d}|t|ƒk rÞ|| }d|  krPdks†n d|  krfdks†n d	|  kr|d
ks†n |dv r|d7 }q(||k rª| |||… ¡ |d  }}| d¡}|D ]}| dt|ƒ ¡ qÄq(||k rø| |||… ¡ d |¡S )Nztag prefix must not be emptyr   r   r   rÆ   rÇ   rÈ   rÉ   rÊ   rË   z-;/?!:@&=+$,_.~*'()[]úutf-8ú%%%02Xr®   )r   rQ   rA   ÚencodeÚordÚjoin)r   rt   ÚchunksÚstartÚendrÍ   Údatar	   r	   r
   rl   -  s*    Bÿ

zEmitter.prepare_tag_prefixc                 C   sŒ  |st dƒ‚|dkr|S d }|}t| j ¡ ƒ}|D ]@}| |¡r2|dksXt|ƒt|ƒk r2| j| }|t|ƒd … }q2g }d }}|t|ƒk rH|| }	d|	  krªdksðn d|	  krÀdksðn d|	  krÖd	ksðn |	d
v sð|	dkrú|dkrú|d7 }q€||k r| |||… ¡ |d  }}|	 d¡}
|
D ]}	| d|	 ¡ q0q€||k rd| |||… ¡ d |¡}|r€d||f S d| S d S )Nztag must not be emptyr   r   rÆ   rÇ   rÈ   rÉ   rÊ   rË   z-;/?:@&=+$,_.~*'()[]r   rÎ   rÏ   r®   z%s%sz!<%s>)	r   ri   r7   rj   Ú
startswithrQ   rA   rÐ   rÒ   )r   r¯   rs   ÚsuffixÚprefixesrt   rÓ   rÔ   rÕ   rÍ   rÖ   Zsuffix_textr	   r	   r
   r´   D  sN    
ÿÿ
Bÿþþ




zEmitter.prepare_tagc                 C   st   |st dƒ‚|D ]^}d|  kr(dksn d|  kr>dksn d|  krTdksn |dv st d	||f ƒ‚q|S )
Nzanchor must not be emptyrÆ   rÇ   rÈ   rÉ   rÊ   rË   rÌ   z&invalid character %r in the anchor: %rrÃ   )r   r   rÍ   r	   r	   r
   r³   h  s    BÿÿzEmitter.prepare_anchorc              
   C   s.  |st |ddddddddS d}d}d}d}d}d}d}d}	d}
d}| d¡sX| d¡r`d}d}d}t|ƒdkpz|d dv }d}d}d}|t|ƒk rˆ|| }|dkrà|d	v r¶d}d}|d
v rÊd}|rÊd}|dkrÞ|rÞd}d}n<|dv rìd}|dkrd}|rd}|dkr|rd}d}|dv r*d}|dksÈd|  krLdksÈn |dks¨d|  krpdks¨n d|  krŠdks¨n d|  kr¤dk rÄn n|dkrÄd}| jsÈd}nd}|dkr
|dkràd}|t|ƒd kröd}|r d}
d}d}nJ|dv rL|dkr"d}|t|ƒd kr8d}	|rBd}d}d}nd}d}|d7 }|dv }|d t|ƒkp„||d  dv }qˆd}d}d}d}d}|s´|s´|s´|	r¼d }}|rÆd}|
rØd } }}|sä|rôd } } }}|rd }}|rd}|rd}t |d||||||dS )NTFr   r`   r_   r   u     	
Â…â€¨â€©r   z#,[]{}&*!|>'"%@`z?:r§   z,?[]{}r¤   ú#õ	   
Â…â€¨â€©r   Ú Ú~õ   Â…õ   Â õ   íŸ¿õ   î€€õ   ï¿½u   ð€€u   ô¿¿õ   ï»¿)r   r×   rQ   r3   )r   r   Zblock_indicatorsZflow_indicatorsZline_breaksZspecial_charactersÚleading_spaceZleading_breakZtrailing_spaceZtrailing_breakZbreak_spaceZspace_breakZpreceded_by_whitespaceZfollowed_by_whitespaceZprevious_spaceZprevious_breakÚindexrÍ   Zunicode_charactersr   r   r   r   r   r	   r	   r
   rµ   r  sø    ý
ÿ

$$ÿ
ÿ
þ
þþ



ÿÿÿÿ
úzEmitter.analyze_scalarc                 C   s   t | jdƒr| j ¡  d S )NÚflush)rX   r   ræ   r>   r	   r	   r
   rx     s    zEmitter.flush_streamc                 C   s*   | j r&| j  d¡r&| j d | j ¡¡ d S )Nzutf-16rã   )r    r×   r   ÚwriterÐ   r>   r	   r	   r
   rY     s    zEmitter.write_stream_startc                 C   s   |   ¡  d S r   )rx   r>   r	   r	   r
   rq     s    zEmitter.write_stream_endc                 C   sd   | j s
|s|}nd| }|| _ | jo&|| _|  jt|ƒ7  _d| _| jrT| | j¡}| j |¡ d S )NrÜ   F)	r/   r0   r.   rQ   r1   r    rÐ   r   rç   )r   r·   Zneed_whitespacer/   r0   rÖ   r	   r	   r
   rc      s    
zEmitter.write_indicatorc                 C   sx   | j pd}| jr*| j|ks*| j|kr2| js2|  ¡  | j|k rtd| _d|| j  }|| _| jrh| | j¡}| j |¡ d S )Nr   TrÜ   )	r'   r0   r.   r/   Úwrite_line_breakr    rÐ   r   rç   )r   r'   rÖ   r	   r	   r
   rd   .  s    
ÿÿ
zEmitter.write_indentc                 C   sP   |d u r| j }d| _d| _|  jd7  _d| _| jr@| | j¡}| j |¡ d S )NTr   r   )	r6   r/   r0   r-   r.   r    rÐ   r   rç   )r   rÖ   r	   r	   r
   rè   ;  s    zEmitter.write_line_breakc                 C   s2   d| }| j r| | j ¡}| j |¡ |  ¡  d S )Nz	%%YAML %s©r    rÐ   r   rç   rè   )r   rr   rÖ   r	   r	   r
   rf   F  s
    zEmitter.write_version_directivec                 C   s6   d||f }| j r| | j ¡}| j |¡ |  ¡  d S )Nz%%TAG %s %sré   )r   ru   rv   rÖ   r	   r	   r
   rm   M  s
    zEmitter.write_tag_directiveTc           
      C   s   |   dd¡ d}d}d }}|t|ƒkrd }|t|ƒk rB|| }|rÒ|d u sV|dkrÐ|d |kr| j| jkr|r|dkr|t|ƒkr|  ¡  n<|||… }|  jt|ƒ7  _| jrÀ| | j¡}| j |¡ |}nÖ|r>|d u sê|dvr¨|| dkrþ|  	¡  |||… D ]$}	|	dkr"|  	¡  n
|  	|	¡ q
|  ¡  |}nj|d u s\|d	v s\|dkr¨||k r¨|||… }|  jt|ƒ7  _| jr˜| | j¡}| j |¡ |}|dkrìd
}|  jd7  _| jrØ| | j¡}| j |¡ |d }|d ur|dk}|dv }|d7 }q|   dd¡ d S )Nrº   TFr   rÜ   r   rÛ   r   õ
    
Â…â€¨â€©z''r   )
rc   rQ   r.   r5   rd   r    rÐ   r   rç   rè   )
r   ÚtextrÂ   ÚspacesÚbreaksrÔ   rÕ   rÍ   rÖ   Úbrr	   r	   r
   r¾   V  sh    ÿ
ÿ






zEmitter.write_single_quotedrÆ   rÊ   ÚbÚtÚnÚvÚfÚrÚer¹   ú\ÚNÚ_ÚLÚP)ú úúú	r   úúr   úr¹   rö   rÞ   rß   u   â€¨u   â€©c                 C   s’  |   dd¡ d }}|t|ƒkr‚d }|t|ƒk r:|| }|d u s˜|dv s˜d|  kr`dks|n | jr˜d|  kr~dks|n d	|  kr–d
ks|n ||k rà|||… }|  jt|ƒ7  _| jrÐ| | j¡}| j |¡ |}|d ur||| jv rd| j|  }n<|dkrdt	|ƒ }n$|dkr6dt	|ƒ }ndt	|ƒ }|  jt|ƒ7  _| jrh| | j¡}| j |¡ |d }d|  k rœt|ƒd k rxn nØ|dks´||krx| j||  | j
krx|rx|||… d }||k rî|}|  jt|ƒ7  _| jr| | j¡}| j |¡ |  ¡  d| _d| _|| dkrxd}|  jt|ƒ7  _| jrl| | j¡}| j |¡ |d7 }q|   dd¡ d S )Nr¹   Tr   u   "\Â…â€¨â€©ï»¿rÜ   rÝ   rß   rà   rá   râ   rö   õ   Ã¿z\x%02Xu   ï¿¿z\u%04Xz\U%08Xr   F)rc   rQ   r3   r.   r    rÐ   r   rç   ÚESCAPE_REPLACEMENTSrÑ   r5   rd   r/   r0   )r   rë   rÂ   rÔ   rÕ   rÍ   rÖ   r	   r	   r
   r½   ž  s€    ÿÿ
þýý
üü



8ÿÿ

zEmitter.write_double_quotedc                 C   s\   d}|rX|d dv r"|t | jƒ7 }|d dvr8|d7 }n t|ƒdksP|d dv rX|d	7 }|S )
Nr®   r   rê   rL   rÛ   r§   r   éþÿÿÿú+)Ústrr4   rQ   )r   rë   Úhintsr	   r	   r
   Údetermine_block_hintsÔ  s    
zEmitter.determine_block_hintsc                 C   s  |   |¡}|  d| d¡ |dd … dkr0d| _|  ¡  d}d}d}d }}|t|ƒkr d }|t|ƒk rr|| }|rú|d u s†|dvrø|s®|d ur®|dkr®|| d	kr®|  ¡  |dk}|||… D ] }	|	d	krØ|  ¡  qÂ|  |	¡ qÂ|d urô|  ¡  |}nâ|rt|dkrÜ|d
 |kr0| j| jkr0|  ¡  n>|||… }
|  jt|
ƒ7  _| jrb|
 	| j¡}
| j
 |
¡ |}nh|d u sˆ|dv rÜ|||… }
|  jt|
ƒ7  _| jrº|
 	| j¡}
| j
 |
¡ |d u rØ|  ¡  |}|d urö|dv }|dk}|d
7 }qLd S )Nr»   TrL   r  Fr   rÛ   rÜ   r   r   rê   )r  rc   r1   rè   rQ   rd   r.   r5   r    rÐ   r   rç   )r   rë   r  rä   rì   rí   rÔ   rÕ   rÍ   rî   rÖ   r	   r	   r
   r¿   ß  sd    

ÿ




zEmitter.write_foldedc           	      C   s4  |   |¡}|  d| d¡ |dd … dkr0d| _|  ¡  d}d }}|t|ƒkr0d }|t|ƒk rj|| }|rÂ|d u s~|dvrÀ|||… D ] }|dkr |  ¡  qŠ|  |¡ qŠ|d ur¼|  ¡  |}nR|d u sÔ|dv r|||… }| jrò| | j¡}| j 	|¡ |d u r|  ¡  |}|d ur&|dv }|d7 }qDd S )	Nr¼   TrL   r  r   rÛ   r   r   )
r  rc   r1   rè   rQ   rd   r    rÐ   r   rç   )	r   rë   r  rí   rÔ   rÕ   rÍ   rî   rÖ   r	   r	   r
   rÀ     s>    



zEmitter.write_literalc           
      C   s  | j rd| _|sd S | jsNd}|  jt|ƒ7  _| jrB| | j¡}| j |¡ d| _d| _	d}d}d }}|t|ƒkrd }|t|ƒk r|| }|r|dkrÞ|d |krÒ| j| j
krÒ|rÒ|  ¡  d| _d| _	n>|||… }|  jt|ƒ7  _| jr| | j¡}| j |¡ |}nÈ|rˆ|dvrÞ|| dkr<|  ¡  |||… D ]$}	|	dkr`|  ¡  n
|  |	¡ qH|  ¡  d| _d| _	|}nV|d u sœ|dv rÞ|||… }|  jt|ƒ7  _| jrÎ| | j¡}| j |¡ |}|d urø|dk}|dv }|d7 }qjd S )	NTrÜ   Fr   r   rÛ   r   rê   )r)   r1   r/   r.   rQ   r    rÐ   r   rç   r0   r5   rd   rè   )
r   rë   rÂ   rÖ   rì   rí   rÔ   rÕ   rÍ   rî   r	   r	   r
   rÁ   8  sl    




zEmitter.write_plain)NNNNN)FF)F)FFFF)F)F)FF)N)T)T)T)@r   r   r   rg   r   r?   rE   rB   rI   rV   r"   r[   rZ   r^   ry   rp   r{   r~   r‚   r…   r’   r–   rˆ   r™   r¢   r    r¡   r†   r¥   r¦   r‰   rª   r«   r¬   r­   r„   r‡   ro   rŸ   r€   r   r¸   r   re   rk   rl   r´   r³   rµ   rx   rY   rq   rc   rd   rè   rf   rm   r¾   r  r½   r  r¿   rÀ   rÁ   r	   r	   r	   r
   r      s¨   þ  ÿ
D	


$  ÿ
	


$
 # ÿ

	
7ñ
66#N)Ú__all__Úerrorr   r$   r   r   r   r	   r	   r	   r
   Ú<module>	   s
   