î
kÐR\  ã               @   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	   úB/var/www/dbchiro/venv/lib/python3.4/site-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 ƒ  n  |  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   su   |  j  ƒ  d  } |  j t ƒ s. |  j ƒ  } n  |  j t ƒ sg |  j  ƒ  } t d | j d | j ƒ ‚ n  |  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 ƒ r] |  j ƒ  } | j } | |  j k rR t d  d  d | | j ƒ ‚ n  |  j | S|  j ƒ  } | j } | d  k	 r¹ | |  j k r¹ t d | |  j | j d | j ƒ ‚ q¹ n  |  j | | ƒ |  j  t	 ƒ rê |  j
 | ƒ } nB |  j  t ƒ r|  j | ƒ } n! |  j  t ƒ r,|  j | ƒ } n  |  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 rK |  j t | j | j ƒ } n  t | | j | j | j d | j ƒ} | d  k	 rŽ | |  j	 | <n  | 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 rH |  j t d  | j ƒ } n  t | g  | j d  d | j ƒ} | d  k	 r… | |  j | <n  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 rH |  j t d  | j ƒ } n  t | g  | j d  d | j ƒ} | d  k	 r… | |  j | <n  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   ÚeventsÚnodesr   r   r	   r	   r	   r
   Ú<module>   s
   

