3
QfX                 @   sF   d dgZ ddlmZ ddlT ddlT G dd deZG dd  d ZdS )ComposerComposerError   )MarkedYAMLError)*c               @   s   e Zd ZdS )r   N)__name__
__module____qualname__ r	   r	   V/home/psgendb/BIRCHDEV/pkg/SPAdes-3.15.4/linux-x86_64/share/spades/pyyaml3/composer.pyr      s   c               @   sT   e Z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
dd ZdS )r   c             C   s
   i | _ d S )N)anchors)selfr	   r	   r
   __init__   s    zComposer.__init__c             C   s   | j tr| j  | j t S )N)check_eventStreamStartEvent	get_eventStreamEndEvent)r   r	   r	   r
   
check_node   s    
zComposer.check_nodec             C   s   | j ts| j S d S )N)r   r   compose_document)r   r	   r	   r
   get_node   s    
zComposer.get_nodec             C   sN   | j   d }| jts| j }| jtsB| j  }td|jd|j| j   |S )Nz(expected a single document in the streamzbut found another document)r   r   r   r   r   
start_mark)r   Zdocumenteventr	   r	   r
   get_single_node   s    

zComposer.get_single_nodec             C   s&   | j   | jd d }| j   i | _|S )N)r   compose_noder   )r   noder	   r	   r
   r   2   s
    zComposer.compose_documentc             C   s   | j tr@| j }|j}|| jkr6td d d| |j| j| S | j }|j}|d k	r||| jkr|td| | j| jd|j| j|| | j t	r| j
|}n*| j tr| j|}n| j tr| j|}| j  |S )Nzfound undefined alias %rz*found duplicate anchor %r; first occurencezsecond occurence)r   
AliasEventr   anchorr   r   r   
peek_eventZdescend_resolverScalarEventcompose_scalar_nodeSequenceStartEventcompose_sequence_nodeMappingStartEventcompose_mapping_nodeZascend_resolver)r   parentindexr   r   r   r	   r	   r
   r   ?   s.    








zComposer.compose_nodec             C   s`   | j  }|j}|d ks|dkr0| jt|j|j}t||j|j|j|jd}|d k	r\|| j	|< |S )N!)style)
r   tagresolve
ScalarNodevalueimplicitr   end_markr&   r   )r   r   r   r'   r   r	   r	   r
   r   X   s    
zComposer.compose_scalar_nodec             C   s   | j  }|j}|d ks|dkr.| jtd |j}t|g |jd |jd}|d k	rV|| j|< d}x*| jt	s|j
j| j|| |d7 }q\W | j  }|j|_|S )Nr%   )
flow_style    r   )r   r'   r(   SequenceNoder+   r   r-   r   r   SequenceEndEventr*   appendr   r,   )r   r   start_eventr'   r   r$   	end_eventr	   r	   r
   r    c   s     

zComposer.compose_sequence_nodec             C   s   | j  }|j}|d ks|dkr.| jtd |j}t|g |jd |jd}|d k	rV|| j|< x6| jt	s| j
|d }| j
||}|jj||f qXW | j  }|j|_|S )Nr%   )r-   )r   r'   r(   MappingNoder+   r   r-   r   r   MappingEndEventr   r*   r1   r,   )r   r   r2   r'   r   Zitem_keyZ
item_valuer3   r	   r	   r
   r"   u   s     

zComposer.compose_mapping_nodeN)r   r   r   r   r   r   r   r   r   r   r    r"   r	   r	   r	   r
   r      s   N)__all__errorr   eventsnodesr   r   r	   r	   r	   r
   <module>   s
   