U
    œ9%eE  ã                   @   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	   úN/var/www/html/Darija-Ai-API/env/lib/python3.8/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   Fú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 )Núserializer is not openedT)r   r   r   ZStreamEndEventr   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 )Nr   r   )Ú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 |< nZd | j |< t|tƒrV|jD ]}|  |¡ qDn.t|tƒr„|jD ]\}}|  |¡ |  |¡ qfd 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_TEMPLATEr#   r	   r	   r
   r&   J   s    zSerializer.generate_anchorc              	   C   sŒ  | j | }|| jkr&|  t|ƒ¡ nbd| 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}|jD ]}|  |||¡ |d7 }qà|  tƒ ¡ nvt|tƒr€|j	|  t|jd¡k}|  t||j	||jd¡ |jD ]&\}	}
|  |	|d ¡ |  |
||	¡ qL|  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   sH    



ÿ
ÿÿ

ÿÿ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
   