B
    ë¹`E  ã               @   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 )Ú
SerializerÚSerializerErroré   )Ú	YAMLError)Ú*c               @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r	   r	   úW/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/site-packages/yaml/serializer.pyr      s   c               @   sJ   e Zd Z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S )r   zid%03dNc             C   s:   || _ || _|| _|| _|| _i | _i | _d| _d | _d S )Né    )	Úuse_encodingÚuse_explicit_startÚuse_explicit_endÚuse_versionÚuse_tagsÚserialized_nodesÚanchorsÚlast_anchor_idÚclosed)ÚselfÚencodingZexplicit_startZexplicit_endÚversionÚtagsr	   r	   r
   Ú__init__   s    zSerializer.__init__c             C   s@   | j d kr$|  t| jd¡ d| _ n| j r4tdƒ‚ntdƒ‚d S )N)r   Fzserializer is closedzserializer is already opened)r   ÚemitZStreamStartEventr   r   )r   r	   r	   r
   Úopen   s    

zSerializer.openc             C   s0   | j d krtdƒ‚n| j s,|  tƒ ¡ d| _ d S )Nzserializer is not openedT)r   r   r   ZStreamEndEvent)r   r	   r	   r
   Úclose$   s
    

zSerializer.closec             C   s|   | j d krtdƒ‚n| j r"tdƒ‚|  t| j| j| jd¡ |  |¡ |  |d d ¡ |  t	| j
d¡ i | _i | _d| _d S )Nzserializer is not openedzserializer is closed)Úexplicitr   r   )r   r   )r   r   r   ZDocumentStartEventr   r   r   Úanchor_nodeÚserialize_nodeZDocumentEndEventr   r   r   r   )r   Únoder	   r	   r
   Ú	serialize.   s    



zSerializer.serializec             C   s   || j kr*| j | d krŒ|  |¡| j |< nbd | j |< t|tƒrZxL|jD ]}|  |¡ qFW n2t|tƒrŒx&|jD ]\}}|  |¡ |  |¡ qlW d S )N)r   Úgenerate_anchorÚ
isinstanceÚSequenceNodeÚvaluer   ÚMappingNode)r   r    ÚitemÚkeyr%   r	   r	   r
   r   <   s    




zSerializer.anchor_nodec             C   s   |  j d7  _ | j| j  S )Nr   )r   ÚANCHOR_TEMPLATE)r   r    r	   r	   r
   r"   J   s    zSerializer.generate_anchorc          	   C   s”  | j | }|| jkr&|  t|ƒ¡ njd| j|< |  ||¡ t|tƒrš|  t|jd¡}|  t|jd¡}|j	|k|j	|kf}|  t
||j	||j|jd¡ nît|tƒr|j	|  t|jd¡k}|  t||j	||jd¡ d}x$|jD ]}|  |||¡ |d7 }qâW |  tƒ ¡ nzt|tƒrˆ|j	|  t|jd¡k}|  t||j	||jd¡ x0|jD ]&\}	}
|  |	|d ¡ |  |
||	¡ qRW |  tƒ ¡ |  ¡  d S )NT)TF)FT)Ústyle)Ú
flow_styler   r   )r   r   r   Z
AliasEventZdescend_resolverr#   Z
ScalarNodeÚresolver%   ÚtagZScalarEventr*   r$   ZSequenceStartEventr+   r   ZSequenceEndEventr&   ZMappingStartEventZMappingEndEventZascend_resolver)r   r    ÚparentÚindexÚaliasZdetected_tagÚdefault_tagZimplicitr'   r(   r%   r	   r	   r
   r   N   s>    



zSerializer.serialize_node)NNNNN)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
   