o
    wi                      @  s   d dl mZ 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
gZG dd
 d
eZG dd	 d	ZdS )    )annotationsN)MarkedYAMLErrorReusedAnchorWarning)nprintnprintf)StreamStartEventStreamEndEventMappingStartEventMappingEndEventSequenceStartEventSequenceEndEvent
AliasEventScalarEvent)MappingNode
ScalarNodeSequenceNodeF)AnyDictOptionalListComposerComposerErrorc                   @  s   e Zd ZdS )r   N)__name__
__module____qualname__ r   r   Q/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/ruamel/yaml/composer.pyr      s    c                   @  s   e Zd Zd'd(ddZed)dd	Zed)d
dZd)ddZd)ddZd)ddZ	d*ddZ
d+ddZd,ddZd-ddZd-dd Zd-d!d"Zd.d%d&ZdS )/r   Nloaderr   returnNonec                 C  s:   || _ | j d urt| j dd d u r| | j _i | _d| _d S )N	_composerT)r   getattrr    anchorswarn_double_anchors)selfr   r   r   r   __init__    s
   
zComposer.__init__c                 C     t | jdr
| jj | jjS Ntyp)hasattrr   parser_parserr$   r   r   r   r*   '   s   zComposer.parserc                 C  r&   r'   )r)   r   resolver	_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_node4   s   
zComposer.check_nodec                 C  s   | j ts
|  S d S r/   )r*   r0   r   compose_documentr,   r   r   r   get_node<   s   zComposer.get_nodec                 C  sX   | j   d }| j ts|  }| j ts%| j  }td|jd|j| j   |S )Nz(expected a single document in the streamzbut found another document)r*   r1   r0   r   r3   r   
start_mark)r$   documenteventr   r   r   get_single_nodeA   s   


zComposer.get_single_noder$   c                 C  s*   i | _ | j  | d d }| j  |S r/   )r"   r*   r1   compose_node)r$   noder   r   r   r3   Y   s
   

zComposer.compose_documentac                 C  s   |S r/   r   )r$   r;   r   r   r   return_aliasf   s   zComposer.return_aliasparentindexc                 C  s  | j tr&| j  }|j}|| jvrtd d d||j| | j| S | j 	 }|j}|d urR| j
rR|| jv rRd|d| j| j d|j }tj|tdd | j|| | j tre| |}n| j trq| |}n| j tr|| |}| j  |S )Nzfound undefined alias z
found duplicate anchor z
first occurrence z
second occurrence    )
stacklevel)r*   r0   r   r1   anchorr"   r   r5   r<   
peek_eventr#   warningswarnr   r-   descend_resolverr   compose_scalar_noder   compose_sequence_noder	   compose_mapping_nodeascend_resolver)r$   r=   r>   r7   aliasrA   wsr:   r   r   r   r9   i   s8   





zComposer.compose_noderA   c              	   C  s|   | j  }|j}|d u st|dkr#| jt|j|j}t	|tr#J t||j|j
|j|j|j|d}|d ur<|| j|< |S )N!)stylecommentrA   )r*   r1   ctagstrr-   resolver   valueimplicit
isinstancer5   end_markrM   rN   r"   )r$   rA   r7   tagr:   r   r   r   rF      s"   
	
zComposer.compose_scalar_nodec              	   C  s
  | j  }|j}|d u st|dkr"| jtd |j}t|tr"J t|g |j	d |j
|j|d}|d ur9|| j|< d}| j tsU|j| || |d7 }| j trA| j  }|j
du ry|jd ury|jd uru|j
}td| dd |j|_|j|_| || |S )	NrL   
flow_stylerN   rA   r      Tz8Warning: unexpected end_event commment in sequence node 
zC    if possible, please report an issue with reproducable data/code)r*   r1   rO   rP   r-   rQ   r   rS   rT   r5   rX   rN   r"   r0   r   rR   appendr9   r   rU   check_end_doc_comment)r$   rA   start_eventrV   r:   r>   	end_eventxr   r   r   rG      sB   
	



zComposer.compose_sequence_nodec              	   C  s   | j  }|j}|d u st|dkr"| jtd |j}t|tr"J t|g |j	d |j
|j|d}|d ur9|| j|< | j tsY| |d }| ||}|j||f | j tr?| j  }|j
du rl|jd url|j|_|j|_| || |S )NrL   rW   T)r*   r1   rO   rP   r-   rQ   r   rS   rT   r5   rX   rN   r"   r0   r
   r9   rR   r[   rU   r\   )r$   rA   r]   rV   r:   item_key
item_valuer^   r   r   r   rH      s6   
	


zComposer.compose_mapping_noder^   r:   c                 C  sZ   |j r)|j d r+|j d u rd d g|_ t|trJ |j |j d  d |j d< d S d S d S )NrY   )rN   rT   r   r[   )r$   r^   r:   r   r   r   r\      s   

zComposer.check_end_doc_commentr/   )r   r   r   r   )r   r   )r$   r   r   r   )r;   r   r   r   )r=   r   r>   r   r   r   )rA   r   r   r   )r^   r   r:   r   r   r   )r   r   r   r%   propertyr*   r-   r2   r4   r8   r3   r<   r9   rF   rG   rH   r\   r   r   r   r   r      s     








"")
__future__r   rC   ruamel.yaml.errorr   r   ruamel.yaml.compatr   r   ruamel.yaml.eventsr   r   r	   r
   r   r   r   r   ruamel.yaml.nodesr   r   r   typingr   r   r   r   __all__r   r   r   r   r   r   <module>   s   (
