B
    ë¹`  ã               @   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	   úU/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/site-packages/yaml/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   |   t¡r|  ¡  |   t¡ S )N)Úcheck_eventZStreamStartEventÚ	get_eventÚStreamEndEvent)r   r	   r	   r
   Ú
check_node   s    
zComposer.check_nodec             C   s   |   t¡s|  ¡ S d S )N)r   r   Úcompose_document)r   r	   r	   r
   Úget_node   s    
zComposer.get_nodec             C   sN   |   ¡  d }|  t¡s|  ¡ }|  t¡sB|   ¡ }td|jd|jƒ‚|   ¡  |S )Nz(expected a single document in the streamzbut found another document)r   r   r   r   r   Ú
start_mark)r   ÚdocumentÚeventr	   r	   r
   Úget_single_node   s    

zComposer.get_single_nodec             C   s&   |   ¡  |  d d ¡}|   ¡  i | _|S )N)r   Úcompose_noder   )r   Únoder	   r	   r
   r   2   s
    zComposer.compose_documentc             C   sÔ   |   t¡r@|  ¡ }|j}|| jkr6td d d| |jƒ‚| j| S |  ¡ }|j}|d k	r||| jkr|td| | j| jd|jƒ‚|  ||¡ |   t	¡rž|  
|¡}n*|   t¡r´|  |¡}n|   t¡rÈ|  |¡}|  ¡  |S )Nzfound undefined alias %rz+found duplicate anchor %r; first occurrencezsecond occurrence)r   Z
AliasEventr   Úanchorr   r   r   Z
peek_eventZdescend_resolverZScalarEventÚcompose_scalar_nodeZSequenceStartEventÚcompose_sequence_nodeZMappingStartEventÚcompose_mapping_nodeZascend_resolver)r   ÚparentÚindexr   r   r   r	   r	   r
   r   ?   s.    








zComposer.compose_nodec             C   s`   |   ¡ }|j}|d ks|dkr0|  t|j|j¡}t||j|j|j|jd}|d k	r\|| j	|< |S )Nú!)Ústyle)
r   ÚtagÚresolveZ
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}|d ks|dkr.|  td |j¡}t|g |jd |jd}|d k	rV|| j|< d}x*|  t	¡s„|j
 |  ||¡¡ |d7 }q\W |   ¡ }|j|_|S )Nr    )Ú
flow_styleé    r   )r   r"   r#   ZSequenceNoder%   r   r'   r   r   ZSequenceEndEventr$   Úappendr   r&   )r   r   Ústart_eventr"   r   r   Ú	end_eventr	   r	   r
   r   c   s     

zComposer.compose_sequence_nodec             C   s¢   |   ¡ }|j}|d ks|dkr.|  td |j¡}t|g |jd |jd}|d k	rV|| j|< x6|  t	¡sŒ|  
|d ¡}|  
||¡}|j ||f¡ qXW |   ¡ }|j|_|S )Nr    )r'   )r   r"   r#   ZMappingNoder%   r   r'   r   r   ZMappingEndEventr   r$   r)   r&   )r   r   r*   r"   r   Zitem_keyZ
item_valuer+   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   ÚeventsZnodesr   r   r	   r	   r	   r
   Ú<module>   s
   