U
    œ9%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 )ÚComposerÚComposerErroré   )ÚMarkedYAMLError)Ú*c                   @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r	   r	   úL/var/www/html/Darija-Ai-API/env/lib/python3.8/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 r   )Úcheck_eventZStreamStartEventÚ	get_eventÚStreamEndEventr   r	   r	   r
   Ú
check_node   s    
zComposer.check_nodec                 C   s   |   t¡s|  ¡ S d S r   )r   r   Úcompose_documentr   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   ZdocumentÚeventr	   r	   r
   Úget_single_node   s    

 þzComposer.get_single_nodec                 C   s&   |   ¡  |  d d ¡}|   ¡  i | _|S r   )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}|  t	¡s‚|j
 |  ||¡¡ |d7 }qZ|   ¡ }|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|< |  t	¡sŠ|  
|d ¡}|  
||¡}|j ||f¡ qV|   ¡ }|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
   