o
    Îj"  ã                   @  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 	 g d	¢ZG d
d„ deƒ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ÚComposerErrorÚMaxDepthExceededErrorc                   @  ó   e Zd ZdS )r   N©Ú__name__Ú
__module__Ú__qualname__© r   r   úU/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/ruamel/yaml/composer.pyr      ó    r   c                   @  r   )r   Nr   r   r   r   r   r      r    r   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| _d S )NÚ	_composerTr   )r!   Úgetattrr$   ÚanchorsÚwarn_double_anchorsÚdepth)Ú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!   ÚresolverZ	_resolverr1   r   r   r   r2   2   s   zComposer.resolverc                 C  s$   | j  t¡r| j  ¡  | j  t¡ S ©N)r/   Úcheck_eventr   Ú	get_eventr   r1   r   r   r   Ú
check_node9   s   
zComposer.check_nodec                 C  s   | j  t¡s
|  ¡ S d S r3   )r/   r4   r   Úcompose_documentr1   r   r   r   Úget_nodeA   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/   r5   r4   r   r7   r   Ú
start_mark)r)   ZdocumentÚeventr   r   r   Úget_single_nodeF   s   

ü
zComposer.get_single_noder)   c                 C  s*   i | _ | j ¡  |  d d ¡}| j ¡  |S r3   )r&   r/   r5   Úcompose_node)r)   Únoder   r   r   r7   ^   s
   

zComposer.compose_documentÚac                 C  s   |S r3   r   )r)   r>   r   r   r   Úreturn_aliask   s   zComposer.return_aliasÚparentÚindexc                 C  sR  | j  t¡r&| j  ¡ }|j}|| jvrtd d d|›|jƒ‚|  | j| ¡S |  j	d7  _	| j  
¡ }| jjrJ| j	| jjkrJtd d d| j	› d|jƒ‚|j}|d urq| jrq|| jv rqd|›d| j| j› d|j› }tj|tdd	 | j ||¡ | j  t¡r„|  |¡}n| j  t¡r|  |¡}n| j  t¡r›|  |¡}| j ¡  |  j	d8  _	|S )
Nzfound undefined alias é   z*maximum depth of data structure exceeded (z)), if necessary increase YAML().max_depthz
found duplicate anchor z
first occurrence z
second occurrence é   )Ú
stacklevel)r/   r4   r   r5   Úanchorr&   r   r9   r?   r(   Z
peek_eventr!   Ú	max_depthr   r'   ÚwarningsÚwarnr   r2   Zdescend_resolverr   Úcompose_scalar_noder   Úcompose_sequence_noder	   Úcompose_mapping_nodeZascend_resolver)r)   r@   rA   r:   ÚaliasrE   Úwsr=   r   r   r   r<   n   sJ   

ÿ
û
ÿþÿ

zComposer.compose_noderE   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ÚcommentrE   )r/   r5   ÚctagÚstrr2   Úresolver   ÚvalueÚimplicitÚ
isinstancer9   Úend_markrO   rP   r&   )r)   rE   r:   Útagr=   r   r   r   rI   •   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 )	NrN   ©Ú
flow_stylerP   rE   r   rB   Tz8Warning: unexpected end_event commment in sequence node Ú
zC    if possible, please report an issue with reproducable data/code)r/   r5   rQ   rR   r2   rS   r   rU   rV   r9   rZ   rP   r&   r4   r   rT   Úappendr<   r   rW   Úcheck_end_doc_comment)r)   rE   Ústart_eventrX   r=   rA   Ú	end_eventÚxr   r   r   rJ   ©   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 )NrN   rY   T)r/   r5   rQ   rR   r2   rS   r   rU   rV   r9   rZ   rP   r&   r4   r
   r<   rT   r\   rW   r]   )r)   rE   r^   rX   r=   Zitem_keyZ
item_valuer_   r   r   r   rK   Ë   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 )NrB   )rP   rV   r   r\   )r)   r_   r=   r   r   r   r]   í   s   

øzComposer.check_end_doc_commentr3   )r!   r   r"   r#   )r"   r   )r)   r   r"   r   )r>   r   r"   r   )r@   r   rA   r   r"   r   )rE   r   r"   r   )r_   r   r=   r   r"   r#   )r   r   r   r*   Úpropertyr/   r2   r6   r8   r;   r7   r?   r<   rI   rJ   rK   r]   r   r   r   r   r   #   s     






'

""r   )Ú
__future__r   rG   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   r   Ú<module>   s   (
