
U"3S  ã               @   s]   d  d g Z  d d l m Z d d l Td d l TGd d „  d e ƒ Z Gd d  „  d  ƒ Z d S)ÚComposerÚComposerErroré   )ÚMarkedYAMLError)Ú*c               @   s   e  Z d  Z d S)r   N)Ú__name__Ú
__module__Ú__qualname__© r	   r	   ú//usr/lib/python3/dist-packages/yaml/composer.pyr      s   c               @   s|   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_eventZStreamStartEventÚ	get_eventÚStreamEndEvent)r   r	   r	   r
   Ú
check_node   s    
zComposer.check_nodec             C   s   |  j  t ƒ s |  j ƒ  Sd  S)N)r   r   Úcompose_document)r   r	   r	   r
   Úget_node   s    zComposer.get_nodec             C   so   |  j  ƒ  d  } |  j t ƒ s+ |  j ƒ  } |  j t ƒ sa |  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   s3   |  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 ƒ rZ |  j ƒ  } | j } | |  j k rO t 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   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  ƒ  } | j } | d  k s- | d k rH |  j t | j | j ƒ } t | | j | j | j d | j ƒ} | 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  ƒ  } | j } | d  k s- | d k rE |  j t d  | j ƒ } t | g  | j d  d | j ƒ} | d  k	 r | |  j | <d } x9 |  j t	 ƒ sÀ | j
 j |  j | | ƒ ƒ | d 7} qˆ W|  j  ƒ  } | 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  ƒ  } | j } | d  k s- | d k rE |  j t d  | j ƒ } t | g  | j d  d | j ƒ} | d  k	 r | |  j | <xM |  j t	 ƒ sÎ |  j
 | d  ƒ } |  j
 | | ƒ } | j j | | f ƒ q‚ W|  j  ƒ  } | 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   ZeventsZnodesr   r   r	   r	   r	   r
   Ú<module>   s
   

