o
    ¨¸¢iç   ã                   @   s¦   d dl mZmZ d dlZd dlmZmZ d dlmZ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	eƒZ dS )é    )Úabsolute_importÚprint_functionN)ÚMarkedYAMLErrorÚReusedAnchorWarning)Úutf8Ú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   úX/home/ubuntu/transcripts/venv/lib/python3.10/site-packages/strictyaml/ruamel/composer.pyr      s    c                   @   sv   e Zd Zddd„Zedd„ ƒZe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d„ ZdS )r   Nc                 C   s4   || _ | j d urt| j dd ƒd u r| | j _i | _d S )NÚ	_composer)ÚloaderÚgetattrr   Ú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_node7   s   
zComposer.check_nodec                 C   s   | j  t¡s
|  ¡ S d S r.   )r)   r/   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)   r0   r/   r
   r2   r   Ú
start_mark)r#   ÚdocumentÚeventr   r   r   Úget_single_nodeF   s   

ü
zComposer.get_single_nodec                 C   s*   | j  ¡  |  d d ¡}| j  ¡  i | _|S r.   )r)   r0   Úcompose_noder"   )r#   Únoder   r   r   r2   _   s
   

zComposer.compose_documentc                 C   sð   | j  t¡r$| j  ¡ }|j}|| jvrtd d dt|ƒ |jƒ‚| j| S | j  	¡ }|j}|d urG|| jv rGd 
|| j| j|j¡}t |t¡ | j ||¡ | j  t¡rZ|  |¡}n| j  t¡rf|  |¡}n| j  t¡rq|  |¡}| j ¡  |S )Nzfound undefined alias %rzE
found duplicate anchor {!r}
first occurrence {}
second occurrence {})r)   r/   r   r0   Úanchorr"   r   r   r4   Ú
peek_eventÚformatÚwarningsÚwarnr   r,   Údescend_resolverr   Úcompose_scalar_noder   Úcompose_sequence_noder   Úcompose_mapping_nodeÚascend_resolver)r#   ÚparentÚindexr6   Úaliasr:   Úwsr9   r   r   r   r8   m   s<   


ü


ÿþ

zComposer.compose_nodec              	   C   sj   | j  ¡ }|j}|d u s|dkr| j t|j|j¡}t||j|j|j	|j
|j|d}|d ur3|| j|< |S )Nú!)ÚstyleÚcommentr:   )r)   r0   Útagr,   Úresolver   ÚvalueÚimplicitr4   Úend_markrI   rJ   r"   )r#   r:   r6   rK   r9   r   r   r   r@   “   s    
ù	
zComposer.compose_scalar_nodec              	   C   sð   | j  ¡ }|j}|d u s|dkr| j td |j¡}t|g |jd |j|j	|d}|d ur0|| j
|< d}| j  t¡sL|j |  ||¡¡ |d7 }| j  t¡r8| j  ¡ }|jdu rl|j	d url|j	d urhtd |j¡ƒ |j	|_	|j|_|  ||¡ |S )NrH   ©Ú
flow_stylerJ   r:   r   é   Tz:Warning: unexpected end_event commment in sequence node {})r)   r0   rK   r,   rL   r   rN   r4   rQ   rJ   r"   r/   r   rM   Úappendr8   r   r<   rO   Úcheck_end_doc_comment)r#   r:   Ústart_eventrK   r9   rE   Ú	end_eventr   r   r   rA   ¦   s>   
ù	
þ

þzComposer.compose_sequence_nodec              	   C   sÞ   | j  ¡ }|j}|d u s|dkr| j td |j¡}t|g |jd |j|j	|d}|d ur0|| j
|< | j  t¡sP|  |d ¡}|  ||¡}|j ||f¡ | j  t¡r6| j  ¡ }|jdu rc|j	d urc|j	|_	|j|_|  ||¡ |S )NrH   rP   T)r)   r0   rK   r,   rL   r   rN   r4   rQ   rJ   r"   r/   r   r8   rM   rS   rO   rT   )r#   r:   rU   rK   r9   Úitem_keyÚ
item_valuerV   r   r   r   rB   Ç   s4   
ù	
÷

zComposer.compose_mapping_nodec                 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 )NrR   )rJ   Ú
isinstancer   rS   )r#   rV   r9   r   r   r   rT   é   s   

øzComposer.check_end_doc_commentr.   )r   r   r   r$   Úpropertyr)   r,   r1   r3   r7   r2   r8   r@   rA   rB   rT   r   r   r   r   r       s    


	&!")!Ú
__future__r   r   r=   Ústrictyaml.ruamel.errorr   r   Ústrictyaml.ruamel.compatr   r   r   Ústrictyaml.ruamel.eventsr	   r
   r   r   r   r   r   r   Ústrictyaml.ruamel.nodesr   r   r   Útypingr   r   r   r   Ú__all__r   Úobjectr   r   r   r   r   Ú<module>   s   (
