509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
<zÃWÊ§  ã               @   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	   ú/usr/lib64/python3.6/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d�d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d�dd„Zdd„ Zdd„ Zd�d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€d�d‚œ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 o–dk n  r¢|| _d| _|rÀ|| jd krÀ|| _d| _|dkrÔ|| _d | _d | _d | _d | _d | _d S )Né    FTé   r   é
   éP   Ú
úú
)r   r   r   )Ú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   r1   r&   Úwidthr2   Z
line_breakr	   r	   r
   r   &   sD    zEmitter.__init__c             C   s   g | _ d | _d S )N)r    r"   )r   r	   r	   r
   Údisposej   s    zEmitter.disposec             C   s:   | j j|ƒ x(| jƒ s4| j jdƒ| _| jƒ  d | _qW 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(| jdƒS t|tƒr<| jdƒS t|tƒrP| jdƒS dS d S )NTr   r   r   é   F)r#   Ú
isinstanceÚDocumentStartEventÚneed_eventsÚSequenceStartEventÚMappingStartEvent)r   r$   r	   r	   r
   r>   x   s    






zEmitter.need_more_eventsc             C   sx   d}x`| j dd … D ]N}t|ttfƒr0|d7 }n&t|ttfƒrH|d8 }nt|tƒrVd}|dk rdS qW t| j ƒ|d k S )Nr   r   Féÿÿÿÿ)r#   rB   rC   ÚCollectionStartEventÚDocumentEndEventZCollectionEndEventÚStreamEndEventÚlen)r   ÚcountÚlevelr$   r	   r	   r
   rD   …   s    


zEmitter.need_eventsFc             C   sF   | j j| jƒ | jd kr.|r&| j| _qBd| _n|sB|  j| j7  _d S )Nr   )r%   r=   r&   r3   )r   ÚflowÚ
indentlessr	   r	   r
   Úincrease_indent’   s    

zEmitter.increase_indentc             C   sP   t | jtƒr>| jjr,t| jdƒ r,| jj| _| jƒ  | j| _nt	d| j ƒ‚d S )Nr   z%expected StreamStartEvent, but got %s)
rB   r$   Z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_start)r   r	   r	   r
   rS   ¯   s    z#Emitter.expect_first_document_startc       	      C   sv  t | jtƒ�r(| jjs| jjr8| jr8| jddƒ | jƒ  | jjrX| j| jjƒ}| j	|ƒ | j
jƒ | _| jjrÀt| jjjƒ ƒ}xB|D ]:}| jj| }|| j|< | j|ƒ}| j|ƒ}| j||ƒ q‚W |oò| jj oò| j oò| jj oò| jj oò| jƒ  }|�s| jƒ  | jddƒ | j�r| jƒ  | j| _nJt | jtƒ�rd| j�rR| jddƒ | jƒ  | jƒ  | j| _ntd| j ƒ‚d S )Nz...Tz---z'expected DocumentStartEvent, but got %s)rB   r$   rC   ÚversionZtagsr0   Úwrite_indicatorÚwrite_indentÚprepare_versionÚwrite_version_directiveÚDEFAULT_TAG_PREFIXESÚcopyr6   ÚsortedÚkeysÚprepare_tag_handleÚprepare_tag_prefixÚwrite_tag_directiveÚexplicitr1   Úcheck_empty_documentÚexpect_document_rootr"   rJ   Úwrite_stream_endrT   r   )	r   rU   Úversion_textZhandlesÚhandleÚprefixÚhandle_textÚprefix_textÚimplicitr	   r	   r
   rV   ²   sB    







zEmitter.expect_document_startc             C   sT   t | jtƒrB| jƒ  | jjr0| jddƒ | jƒ  | jƒ  | j| _nt	d| j ƒ‚d S )Nz...Tz%expected DocumentEndEvent, but got %s)
rB   r$   rI   rY   rc   rX   Úflush_streamrV   r"   r   )r   r	   r	   r
   Úexpect_document_endÖ   s    
zEmitter.expect_document_endc             C   s   | j j| jƒ | jdd� d S )NT)Úroot)r    r=   rn   Úexpect_node)r   r	   r	   r
   re   â   s    zEmitter.expect_document_rootc             C   sð   || _ || _|| _|| _t| jtƒr.| jƒ  n¾t| jtt	fƒrÞ| j
dƒ | jƒ  t| jtƒrf| jƒ  qìt| jtƒr¢| jsŽ| jsŽ| jjsŽ| jƒ r˜| jƒ  qÜ| jƒ  qìt| jtƒrì| jsÊ| jsÊ| jjsÊ| jƒ rÔ| jƒ  qì| jƒ  ntd| j ƒ‚d S )Nú&zexpected NodeEvent, but got %s)r(   r)   r*   r+   rB   r$   Ú
AliasEventÚexpect_aliasÚScalarEventrH   Úprocess_anchorÚprocess_tagÚexpect_scalarrE   r'   r1   Z
flow_styleÚcheck_empty_sequenceÚexpect_flow_sequenceÚexpect_block_sequencerF   Úcheck_empty_mappingÚexpect_flow_mappingÚexpect_block_mappingr   )r   ro   ÚsequenceÚmappingÚ
simple_keyr	   r	   r
   rp   è   s,    






zEmitter.expect_nodec             C   s.   | j jd krtdƒ‚| jdƒ | jjƒ | _d S )Nz!anchor is not specified for aliasr   )r$   Úanchorr   ru   r    r?   r"   )r   r	   r	   r
   rs     s    
zEmitter.expect_aliasc             C   s0   | j dd� | jƒ  | jjƒ | _| jjƒ | _d S )NT)rN   )rP   Úprocess_scalarr%   r?   r&   r    r"   )r   r	   r	   r
   rw   
  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   )rN   )rX   r'   rP   Úexpect_first_flow_sequence_itemr"   )r   r	   r	   r
   ry     s    zEmitter.expect_flow_sequencec             C   sx   t | jtƒr@| jjƒ | _|  jd8  _| jddƒ | jjƒ | _	n4| j
sR| j| jkrZ| jƒ  | jj| jƒ | jdd� d S )Nr   ú]FT)r~   )rB   r$   ÚSequenceEndEventr%   r?   r&   r'   rX   r    r"   r1   r-   r4   rY   r=   Úexpect_flow_sequence_itemrp   )r   r	   r	   r
   r„     s    z'Emitter.expect_first_flow_sequence_itemc             C   sž   t | jtƒrZ| jjƒ | _|  jd8  _| jr@| jddƒ | j	ƒ  | jddƒ | j
jƒ | _n@| jddƒ | jsx| j| jkr€| j	ƒ  | j
j| jƒ | jdd� d S )Nr   ú,Fr…   T)r~   )rB   r$   r†   r%   r?   r&   r'   r1   rX   rY   r    r"   r-   r4   r=   r‡   rp   )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ú{T)r.   r   )rN   )rX   r'   rP   Ú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ƒ | _|  jd8  _| jddƒ | jjƒ | _	nn| j
sR| j| jkrZ| jƒ  | j
 rˆ| jƒ rˆ| jj| jƒ | jddd� n&| jddƒ | jj| jƒ | jdd� d S )Nr   ú}FT)r   r€   ú?)r   )rB   r$   ÚMappingEndEventr%   r?   r&   r'   rX   r    r"   r1   r-   r4   rY   Úcheck_simple_keyr=   Ú expect_flow_mapping_simple_valuerp   Úexpect_flow_mapping_value)r   r	   r	   r
   rŠ   <  s    z%Emitter.expect_first_flow_mapping_keyc             C   sØ   t | jtƒrZ| jjƒ | _|  jd8  _| jr@| jddƒ | j	ƒ  | jddƒ | j
jƒ | _nz| jddƒ | jsx| j| jkr€| j	ƒ  | j r®| jƒ r®| j
j| jƒ | jddd� n&| jddƒ | j
j| jƒ | jdd� d S )	Nr   rˆ   Fr‹   T)r   r€   rŒ   )r   )rB   r$   r�   r%   r?   r&   r'   r1   rX   rY   r    r"   r-   r4   rŽ   r=   r�   rp   r�   )r   r	   r	   r
   Úexpect_flow_mapping_keyM  s"    zEmitter.expect_flow_mapping_keyc             C   s*   | j ddƒ | jj| jƒ | jdd� d S )Nú:FT)r   )rX   r    r=   r‘   rp   )r   r	   r	   r
   r�   b  s    z(Emitter.expect_flow_mapping_simple_valuec             C   sD   | j s| j| jkr| jƒ  | jddƒ | jj| jƒ | jdd� d S )Nr’   T)r   )	r1   r-   r4   rY   rX   r    r=   r‘   rp   )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)rN   rO   )r*   r/   rP   Ú expect_first_block_sequence_itemr"   )r   rO   r	   r	   r
   rz   p  s    zEmitter.expect_block_sequencec             C   s   | j dd�S )NT)rU   )Úexpect_block_sequence_item)r   r	   r	   r
   r“   u  s    z(Emitter.expect_first_block_sequence_itemc             C   sb   | r,t | jtƒr,| jjƒ | _| jjƒ | _n2| jƒ  | j	dddd� | jj
| jƒ | jdd� d S )Nú-T)r/   )r~   )rB   r$   r†   r%   r?   r&   r    r"   rY   rX   r=   r”   rp   )r   rU   r	   r	   r
   r”   x  s    z"Emitter.expect_block_sequence_itemc             C   s   | j dd� | j| _d S )NF)rN   )rP   Úexpect_first_block_mapping_keyr"   )r   r	   r	   r
   r}   „  s    zEmitter.expect_block_mappingc             C   s   | j dd�S )NT)rU   )Úexpect_block_mapping_key)r   r	   r	   r
   r–   ˆ  s    z&Emitter.expect_first_block_mapping_keyc             C   sˆ   | r,t | jtƒr,| jjƒ | _| jjƒ | _nX| jƒ  | j	ƒ rZ| jj
| jƒ | jddd� n*| jdddd� | jj
| jƒ | jdd� d S )NT)r   r€   rŒ   )r/   )r   )rB   r$   r�   r%   r?   r&   r    r"   rY   rŽ   r=   Ú!expect_block_mapping_simple_valuerp   rX   Úexpect_block_mapping_value)r   rU   r	   r	   r
   r—   ‹  s    z Emitter.expect_block_mapping_keyc             C   s*   | j ddƒ | jj| jƒ | jdd� d S )Nr’   FT)r   )rX   r    r=   r—   rp   )r   r	   r	   r
   r˜   ™  s    z)Emitter.expect_block_mapping_simple_valuec             C   s6   | j ƒ  | jdddd� | jj| jƒ | jdd� d S )Nr’   T)r/   )r   )rY   rX   r    r=   r—   rp   )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 )Nr   )rB   r$   rE   r#   r†   )r   r	   r	   r
   rx   ¦  s    zEmitter.check_empty_sequencec             C   s"   t | jtƒo | jo t | jd tƒS )Nr   )rB   r$   rF   r#   r�   )r   r	   r	   r
   r{   ª  s    zEmitter.check_empty_mappingc             C   sR   t | jtƒ s| j rdS | jd }t |tƒoP|jd koP|jd koP|joP|jdkS )NFr   Ú )	rB   r$   rC   r#   rt   r�   Útagrl   Úvalue)r   r$   r	   r	   r
   rd   ®  s
    
zEmitter.check_empty_documentc             C   s
  d}t | jtƒrD| jjd k	rD| jd kr6| j| jjƒ| _|t| jƒ7 }t | jttfƒrˆ| jj	d k	rˆ| j
d krz| j| jj	ƒ| _
|t| j
ƒ7 }t | jtƒr¾| jd kr®| j| jjƒ| _|t| jjƒ7 }|dk �ot | jtƒ�pt | jtƒrø| jj rø| jj �p| jƒ �p| jƒ S )Nr   é€   )rB   r$   Z	NodeEventr�   r7   Úprepare_anchorrK   rt   rH   r›   r8   Úprepare_tagr9   Úanalyze_scalarrœ   r   rr   r   r   rx   r{   )r   Zlengthr	   r	   r
   rŽ   µ  s$    


zEmitter.check_simple_keyc             C   sR   | j jd krd | _d S | jd kr0| j| j jƒ| _| jrH| j|| j dƒ d | _d S )NT)r$   r�   r7   rž   rX   )r   Ú	indicatorr	   r	   r
   ru   Ë  s    
zEmitter.process_anchorc             C   sô   | j j}t| j tƒrŽ| jd kr(| jƒ | _| j s8|d krn| jdkrN| j jd sd| jdkrn| j jd rnd | _d S | j jd r°|d kr°d}d | _n"| j sž|d kr°| j jr°d | _d S |d krÀt	dƒ‚| jd krÖ| j
|ƒ| _| jrê| j| jdƒ d | _d S )Nrš   r   r   r   ztag is not specifiedT)r$   r›   rB   rt   r:   Úchoose_scalar_styler1   rl   r8   r   rŸ   rX   )r   r›   r	   r	   r
   rv   Õ  s,    


zEmitter.process_tagc             C   sê   | j d kr| j| jjƒ| _ | jjdks,| jr0dS | jj r€| jjd r€| joZ| j jpZ| j j	 r€| j
rl| j js|| j
 r€| j jr€dS | jjr´| jjdkr´| j
 r´| j r´| j jr´| jjS | jj sÊ| jjdkræ| j jræ| joÞ| j j	 rædS dS )Nú"r   rš   z|>ú')r9   r    r$   rœ   r:   r1   rl   r+   r   r   r'   r   r   r   r   )r   r	   r	   r
   r¢   î  s&    
zEmitter.choose_scalar_stylec             C   sÂ   | j d kr| j| jjƒ| _ | jd kr.| jƒ | _| j }| jdkrR| j| j j|ƒ n`| jdkrn| j	| j j|ƒ nD| jdkrˆ| j
| j jƒ n*| jdkr¢| j| j jƒ n| j| j j|ƒ d | _ d | _d S )Nr£   r¤   ú>ú|)r9   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   rW   ÚmajorÚminorr	   r	   r
   rZ     s    zEmitter.prepare_versionc             C   sª   |st dƒ‚|d dks$|d dkr0t d| ƒ‚xt|dd… D ]d}d|  koTdkn  p�d|  kold	kn  p�d
|  ko„dkn  p�|dks>t d||f ƒ‚q>W |S )Nztag handle must not be emptyr   r   r   z*tag handle must start and end with '!': %rÚ0Ú9ÚAÚZÚaÚzz-_z*invalid character %r in the tag handle: %rrG   rG   )r   )r   rh   Úchr	   r	   r
   r`   !  s    HzEmitter.prepare_tag_handlec             C   s  |st dƒ‚g }d }}|d dkr(d}xÂ|t|ƒk rê|| }d|  koPdkn  sŽd|  kohdkn  sŽd	|  ko€d
kn  sŽ|dkr˜|d7 }q*||k r²|j|||… ƒ |d  }}|jdƒ}x|D ]}|jdt|ƒ ƒ qÎW q*W ||k �r|j|||… ƒ dj|ƒS )Nztag prefix must not be emptyr   r   r   r¯   r°   r±   r²   r³   r´   z-;/?!:@&=+$,_.~*'()[]zutf-8z%%%02Xrš   )r   rK   r=   ÚencodeÚordÚjoin)r   ri   ÚchunksÚstartÚendrµ   Údatar	   r	   r
   ra   -  s(    H



zEmitter.prepare_tag_prefixc             C   s¤  |st dƒ‚|dkr|S d }|}t| jjƒ ƒ}xH|D ]@}|j|ƒr4|dksZt|ƒt|ƒk r4| j| }|t|ƒd … }q4W g }d }}xÚ|t|ƒk �r^|| }	d|	  ko®dkn  púd|	  koÆdkn  púd|	  koÞd	kn  pú|	d
kpú|	dkoú|dk�r|d7 }q†||k �r$|j|||… ƒ |d  }}|	jdƒ}
x |
D ]}	|jdt|	ƒ ƒ �q@W q†W ||k �r||j|||… ƒ dj	|ƒ}|�r˜d||f S d| S d S )Nztag must not be emptyr   r   r¯   r°   r±   r²   r³   r´   z-;/?:@&=+$,_.~*'()[]r   zutf-8z%%%02Xrš   z%s%sz!<%s>)
r   r^   r6   r_   Ú
startswithrK   r=   r¶   r·   r¸   )r   r›   rh   ÚsuffixÚprefixesri   r¹   rº   r»   rµ   r¼   Zsuffix_textr	   r	   r
   rŸ   D  s@    


H





zEmitter.prepare_tagc             C   s~   |st dƒ‚xl|D ]d}d|  ko(dkn  pdd|  ko@dkn  pdd|  koXdkn  pd|dkst d	||f ƒ‚qW |S )
Nzanchor must not be emptyr¯   r°   r±   r²   r³   r´   z-_z&invalid character %r in the anchor: %r)r   )r   r�   rµ   r	   r	   r
   rž   h  s    
H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}|jdƒsX|jdƒr`d}d}d}t|ƒdkpz|d dk}d}d}d}�xì|t|ƒk �rv|| }|dkrä|d	krºd}d}|d
krÎd}|rÎd}|dkrâ|râd}d}n<|dkrðd}|dk�rd}|�rd}|dk�r |�r d}d}|dk�r.d}|dk�pPd|  k�oLdkn  �s¶|dk�s–d|  k�ordkn  �s–d|  k�oŽdkn  �r²|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k�r:|dk�rd}|t|ƒd k�r&d}	|�r0d}d}d}nd}d}|d7 }|dk}|d t|ƒk�pr||d  dk}qŒW 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 )NTF)r   r   r   r   r   r   r   r   z---z...r   u     	
Â…â€¨â€©r   z#,[]{}&*!|>'"%@`z?:r•   z,?[]{}r’   ú#u	   
Â…â€¨â€©r   ú ú~õ   Â…õ   Â u   íŸ¿u   î€€u   ï¿½u   ï»¿)r   r½   rK   r2   )r   r   Zblock_indicatorsZflow_indicatorsZline_breaksZspecial_charactersÚleading_spaceZleading_breakZtrailing_spaceZtrailing_breakZbreak_spaceZspace_breakZpreceeded_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jƒ  d S )NÚflush)rQ   r   rÇ   )r   r	   r	   r
   rm     s    zEmitter.flush_streamc             C   s*   | j r&| j jdƒr&| jjdj| j ƒƒ d S )Nzutf-16u   ï»¿)r   r½   r   Úwriter¶   )r   r	   r	   r
   rR     s    zEmitter.write_stream_startc             C   s   | j ƒ  d S )N)rm   )r   r	   r	   r
   rf     s    zEmitter.write_stream_endc             C   sf   | j s| r|}nd| }|| _ | jo(|| _|  jt|ƒ7  _d| _| jrV|j| jƒ}| jj|ƒ d S )NrÁ   F)	r.   r/   r-   rK   r0   r   r¶   r   rÈ   )r   r¡   Zneed_whitespacer.   r/   r¼   r	   r	   r
   rX     s    zEmitter.write_indicatorc             C   s|   | j pd}| j s.| j|ks.| j|kr6| j r6| jƒ  | j|k rxd| _d|| j  }|| _| jrl|j| jƒ}| jj|ƒ d S )Nr   TrÁ   )	r&   r/   r-   r.   Úwrite_line_breakr   r¶   r   rÈ   )r   r&   r¼   r	   r	   r
   rY   -  s    

zEmitter.write_indentc             C   sP   |d kr| j }d| _d| _|  jd7  _d| _| jr@|j| jƒ}| jj|ƒ d S )NTr   r   )	r5   r.   r/   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 ƒ}| jj|ƒ | jƒ  d S )Nz	%%YAML %s)r   r¶   r   rÈ   rÉ   )r   rg   r¼   r	   r	   r
   r[   E  s
    zEmitter.write_version_directivec             C   s6   d||f }| j r|j| j ƒ}| jj|ƒ | jƒ  d S )Nz%%TAG %s %s)r   r¶   r   rÈ   rÉ   )r   rj   rk   r¼   r	   r	   r
   rb   L  s
    zEmitter.write_tag_directiveTc       
      C   s,  | j ddƒ d}d}d }}�xü|t|ƒk�rd }|t|ƒk rF|| }|rÖ|d ksZ|dkrÔ|d |kr”| j| jkr”|r”|dkr”|t|ƒkr”| jƒ  n<|||… }|  jt|ƒ7  _| jrÄ|j| jƒ}| jj|ƒ |}nÜ|�rH|d ksî|dk�r²|| dk�r| j	ƒ  x4|||… D ]$}	|	dk�r*| j	ƒ  n
| j	|	ƒ �qW | jƒ  |}nj|d k�sf|d	k�sf|dk�r²||k �r²|||… }|  jt|ƒ7  _| j�r¢|j| jƒ}| jj|ƒ |}|dk�röd
}|  jd7  _| j�râ|j| jƒ}| jj|ƒ |d }|d k	�r|dk}|dk}|d7 }q W | j ddƒ d S )Nr¤   TFr   rÁ   r   u	   
Â…â€¨â€©r   u
    
Â…â€¨â€©z''r   )
rX   rK   r-   r4   rY   r   r¶   r   rÈ   rÉ   )
r   Útextr¬   ÚspacesÚbreaksrº   r»   rµ   r¼   Úbrr	   r	   r
   r¨   U  sb    





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œ  | j ddƒ d }}�xt|t|ƒk�rŠd }|t|ƒk r>|| }|d ks |dks d|  ko`dkn  pš| jošd|  ko~dkn  pšd	|  ko–d
kn   �r„||k rè|||… }|  jt|ƒ7  _| jrØ|j| jƒ}| jj|ƒ |}|d k	�r„|| jk�rd| j|  }n<|dk�r&dt	|ƒ }n$|dk�r>dt	|ƒ }ndt	|ƒ }|  jt|ƒ7  _| j�rp|j| jƒ}| jj|ƒ |d }d|  k �o t|ƒd k n  �r€|dk�s¼||k�r€| j||  | j
k�r€|�r€|||… d }||k �rö|}|  jt|ƒ7  _| j�r|j| jƒ}| jj|ƒ | jƒ  d| _d| _|| dk�r€d}|  jt|ƒ7  _| j�rt|j| jƒ}| jj|ƒ |d7 }qW | j ddƒ d S )Nr£   Tr   u   "\Â…â€¨â€©ï»¿rÁ   rÂ   rÄ   u   íŸ¿u   î€€u   ï¿½rÕ   õ   Ã¿z\x%02Xu   ï¿¿z\u%04Xz\U%08Xr   F)rX   rK   r2   r-   r   r¶   r   rÈ   ÚESCAPE_REPLACEMENTSr·   r4   rY   r.   r/   )r   rÊ   r¬   rº   r»   rµ   r¼   r	   r	   r
   r§   �  sf    


8
zEmitter.write_double_quotedc             C   s\   d}|rX|d dkr"|t | jƒ7 }|d	 dkr8|d7 }n t|ƒdksP|d
 dkrX|d7 }|S )Nrš   r   u
    
Â…â€¨â€©r   u	   
Â…â€¨â€©r•   r   ú+rG   éþÿÿÿ)Ústrr3   rK   )r   rÊ   Úhintsr	   r	   r
   Údetermine_block_hintsÓ  s    
zEmitter.determine_block_hintsc             C   s  | j |ƒ}| jd| dƒ |dd … dkr0d| _| jƒ  d}d}d}d }}�xÂ|t|ƒk�rd }|t|ƒk rv|| }|�r
|d ksŽ|dk�rì| r¸|d k	r¸|dkr¸|| d	kr¸| jƒ  |dk}x0|||… D ] }	|	d	krä| jƒ  qÎ| j|	ƒ qÎW |d k	�r| jƒ  |}nâ|�r„|dk�rì|d |k�r@| j| jk�r@| jƒ  n>|||… }
|  jt|
ƒ7  _| j�rr|
j	| jƒ}
| j
j|
ƒ |}nh|d k�s˜|d
k�rì|||… }
|  jt|
ƒ7  _| j�rÊ|
j	| jƒ}
| j
j|
ƒ |d k�rè| jƒ  |}|d k	�r|dk}|dk}|d7 }qPW d S )Nr¥   Tr   rã   Fr   u	   
Â…â€¨â€©rÁ   r   u
    
Â…â€¨â€©rG   )rç   rX   r0   rÉ   rK   rY   r-   r4   r   r¶   r   rÈ   )r   rÊ   ræ   rÅ   rË   rÌ   rº   r»   rµ   rÍ   r¼   r	   r	   r
   r©   Þ  sb    






zEmitter.write_foldedc       	      C   s<  | j |ƒ}| jd| dƒ |dd … dkr0d| _| jƒ  d}d }}xò|t|ƒk�r6d }|t|ƒk rl|| }|rÈ|d ks€|dkrÆx0|||… D ] }|dkr¤| jƒ  qŽ| j|ƒ qŽW |d k	rÂ| jƒ  |}nR|d ksÚ|dk�r|||… }| jrø|j| jƒ}| jj	|ƒ |d k�r| jƒ  |}|d k	�r,|dk}|d7 }qFW d S )	Nr¦   Tr   rã   r   u	   
Â…â€¨â€©r   rG   )
rç   rX   r0   rÉ   rK   rY   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ƒ}| jj|ƒ d| _d| _	d}d}d }}�xž|t|ƒk�r
d }|t|ƒk r”|| }|�r|dk�ræ|d |krÖ| j| j
krÖ|rÖ| jƒ  d| _d| _	n>|||… }|  jt|ƒ7  _| j�r|j| jƒ}| jj|ƒ |}nÌ|�r�|dk�ræ|| dk�r@| jƒ  x4|||… D ]$}	|	dk�rf| jƒ  n
| j|	ƒ �qNW | jƒ  d| _d| _	|}nV|d k�s¤|dk�ræ|||… }|  jt|ƒ7  _| j�rÖ|j| jƒ}| jj|ƒ |}|d k	�r |dk}|dk}|d7 }qnW d S )	NTrÁ   Fr   r   u	   
Â…â€¨â€©r   u
    
Â…â€¨â€©)r(   r0   r.   r-   rK   r   r¶   r   rÈ   r/   r4   rY   rÉ   )
r   rÊ   r¬   r¼   rË   rÌ   rº   r»   rµ   rÍ   r	   r	   r
   r«   7  sl    




zEmitter.write_plain)NNNNN)FF)F)FFFF)F)F)FF)N)T)T)T)@r   r   r   r\   r   r<   r@   r>   rD   rP   r!   rT   rS   rV   rn   re   rp   rs   rw   ry   r„   r‡   r|   rŠ   r‘   r�   r�   rz   r“   r”   r}   r–   r—   r˜   r™   rx   r{   rd   rŽ   ru   rv   r¢   r‚   rZ   r`   ra   rŸ   rž   r    rm   rR   rf   rX   rY   rÉ   r[   rb   r¨   râ   r§   rç   r©   rª   r«   r	   r	   r	   r
   r      sž    
C	


$ 
	


$
 "

	
7
66#N)Ú__all__Úerrorr   r#   r   r   r   r	   r	   r	   r
   Ú<module>	   s
   