o
    ºe¦i   ã                   @  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   úR/home/ubuntu/transcripts/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   (
