a
    ܌xd                     @   s   d dl Z d dlmZmZ d dlmZmZ d dlmZm	Z	m
Z
mZmZmZmZmZ d dlmZmZmZ d dlmZmZmZmZ ddgZG d	d deZG d
d dZdS )    N)MarkedYAMLErrorReusedAnchorWarning)nprintnprintf)StreamStartEventStreamEndEventMappingStartEventMappingEndEventSequenceStartEventSequenceEndEvent
AliasEventScalarEvent)MappingNode
ScalarNodeSequenceNode)AnyDictOptionalListComposerComposerErrorc                   @   s   e Zd ZdS )r   N)__name__
__module____qualname__ r   r   L/var/www/html/Ranjet/env/lib/python3.9/site-packages/ruamel/yaml/composer.pyr      s   c                   @   s   e Zd Zd#eddddZeedddZeeddd	Zedd
dZedddZ	edddZ
eedddZeedddZeeedddZeedddZeedddZeedddZeedd d!d"ZdS )$r   N)loaderreturnc                 C   s4   || _ | j d ur*t| j dd d u r*| | j _i | _d S )N	_composer)r   getattrr   anchors)selfr   r   r   r   __init__   s    zComposer.__init__)r   c                 C   s   t | jdr| jj | jjS Ntyp)hasattrr   parser_parserr!   r   r   r   r&   $   s    zComposer.parserc                 C   s   t | jdr| jj | jjS r#   )r%   r   resolverZ	_resolverr(   r   r   r   r)   *   s    zComposer.resolverc                 C   s$   | j tr| j   | j t S N)r&   check_eventr   	get_eventr   r(   r   r   r   
check_node1   s    
zComposer.check_nodec                 C   s   | j ts|  S d S r*   )r&   r+   r   compose_documentr(   r   r   r   get_node9   s    zComposer.get_nodec                 C   sX   | j   d }| j ts"|  }| j tsJ| 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.   r   
start_mark)r!   Zdocumenteventr   r   r   get_single_node>   s    


zComposer.get_single_node)r!   r   c                 C   s*   | j   | d d }| j   i | _|S r*   )r&   r,   compose_noder    )r!   noder   r   r   r.   V   s
    

zComposer.compose_document)ar   c                 C   s   |S r*   r   )r!   r5   r   r   r   return_aliasc   s    zComposer.return_alias)parentindexr   c                 C   s   | j trL| j  }|j}|| jvr<td d d||j| | j| S | j 	 }|j}|d ur|| jv rd|d| j| j d|j }t
j|tdd | j|| | j tr| |}n.| j tr| |}n| j tr| |}| j  |S )Nzfound undefined alias z
found duplicate anchor z
first occurrence z
second occurrence    )
stacklevel)r&   r+   r   r,   anchorr    r   r0   r6   Z
peek_eventwarningswarnr   r)   Zdescend_resolverr   compose_scalar_noder
   compose_sequence_noder   compose_mapping_nodeZascend_resolver)r!   r7   r8   r1   aliasr;   wsr4   r   r   r   r3   f   s8    






zComposer.compose_node)r;   r   c              	   C   sj   | j  }|j}|d u s |dkr4| jt|j|j}t||j|j|j	|j
|j|d}|d urf|| j|< |S )N!)stylecommentr;   )r&   r,   tagr)   resolver   valueimplicitr0   end_markrD   rE   r    )r!   r;   r1   rF   r4   r   r   r   r>      s     
	
zComposer.compose_scalar_nodec              	   C   s   | j  }|j}|d u s |dkr2| jtd |j}t|g |jd |j|j	|d}|d ur`|| j
|< d}| j ts|j| || |d7 }qd| j  }|jdu r|j	d ur|j	d ur|j}td|  |j	|_	|j|_| || |S )NrC   
flow_stylerE   r;   r      Tz8Warning: unexpected end_event commment in sequence node )r&   r,   rF   r)   rG   r   rI   r0   rL   rE   r    r+   r   rH   appendr3   r   rJ   check_end_doc_comment)r!   r;   start_eventrF   r4   r8   	end_eventxr   r   r   r?      s<    
	



zComposer.compose_sequence_nodec              	   C   s   | j  }|j}|d u s |dkr2| jtd |j}t|g |jd |j|j	|d}|d ur`|| j
|< | j ts| |d }| ||}|j||f q`| j  }|jdu r|j	d ur|j	|_	|j|_| || |S )NrC   rK   T)r&   r,   rF   r)   rG   r   rI   r0   rL   rE   r    r+   r	   r3   rH   rN   rJ   rO   )r!   r;   rP   rF   r4   Zitem_keyZ
item_valuerQ   r   r   r   r@      s2    
	

zComposer.compose_mapping_node)rQ   r4   r   c                 C   sR   |j rN|j d rN|j d u r$d d g|_ t|tr2J |j |j d  d |j d< d S )NrM   )rE   
isinstancer   rN   )r!   rQ   r4   r   r   r   rO      s    

zComposer.check_end_doc_comment)N)r   r   r   r   r"   propertyr&   r)   r-   r/   r2   r.   r6   r3   r>   r?   r@   rO   r   r   r   r   r      s    !)r<   Zruamel.yaml.errorr   r   Zruamel.yaml.compatr   r   Zruamel.yaml.eventsr   r   r   r	   r
   r   r   r   Zruamel.yaml.nodesr   r   r   typingr   r   r   r   __all__r   r   r   r   r   r   <module>   s   (
