o
    Îj[Ž  ã                   @  sÎ   d dl mZ d dlmZ d dlT d dlT d dlmZmZm	Z	 d dlm
Z
 d dlmZmZmZ d dlmZmZ d dlmZ 	 g d¢Zddd„ZG dd„ deƒZG dd„ dƒZG dd„ deƒZG dd„ deƒZdS )é    )Úannotations)ÚMarkedYAMLError)Ú*)ÚScannerÚRoundTripScannerÚScannerError)ÚBlankLineComment)ÚC_PREÚC_POSTÚC_SPLIT_ON_FIRST_BLANK)ÚnprintÚnprintf)ÚTagF)ÚAnyÚDictÚOptionalÚListr   )ÚParserÚRoundTripParserÚParserErrorÚargsr   ÚkwÚreturnc                  O  s   t | i |¤ŽS ©N)r   )r   r   © r   úS/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/ruamel/yaml/parser.pyÚxprintf]   ó   r   c                   @  s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   b   s    r   c                   @  s’  e Zd ZdddœZd`dd	„Zdad
d„Zdadd„Zedbdd„ƒZedbdd„ƒZ	dcdd„Z
dbdd„Zdbdd„Zdbdd„Zdbdd„Zdbdd„Zdbd d!„Zdbd"d#„Zdbd$d%„Zdbd&d'„Zdbd(d)„Zdbd*d+„Zddd.d/„Zdedfd3d4„Zdbd5d6„Zdbd7d8„Zdbd9d:„Zdbd;d<„Zdbd=d>„Zdbd?d@„ZdbdAdB„ZdgdhdDdE„ZdbdFdG„Z dbdHdI„Z!dbdJdK„Z"dbdLdM„Z#dgdidNdO„Z$dbdPdQ„Z%dbdRdS„Z&djdkdWdX„Z'	0dldmd^d_„Z(dTS )nr   ú!ztag:yaml.org,2002:)r!   z!!Úloaderr   r   ÚNonec                 C  s6   || _ | j d urt| j dd ƒd u r| | j _|  ¡  d S )NÚ_parser)r"   Úgetattrr$   Úreset_parser)Úselfr"   r   r   r   Ú__init__l   s   zParser.__init__c                 C  s*   d  | _ | _i | _g | _g | _| j| _d S r   )Úcurrent_eventÚ
last_eventÚtag_handlesÚstatesÚmarksÚparse_stream_startÚstate©r'   r   r   r   r&   r   s
   zParser.reset_parserc                 C  s   |   ¡  d S r   )r&   r0   r   r   r   Údisposez   ó   zParser.disposec                 C  ó   t | jdƒr
| jjS | jjS ©NÚtyp)Úhasattrr"   ÚscannerZ_scannerr0   r   r   r   r7   }   ó   zParser.scannerc                 C  r3   r4   )r6   r"   ÚresolverZ	_resolverr0   r   r   r   r9   ƒ   r8   zParser.resolverÚchoicesÚboolc                 G  sL   | j d u r| jr|  ¡ | _ | j d ur$|sdS |D ]}t| j |ƒr# dS qdS )NTF)r)   r/   Ú
isinstance)r'   r:   Úchoicer   r   r   Úcheck_event‰   s   


ÿzParser.check_eventc                 C  s    | j d u r| jr|  ¡ | _ | j S r   )r)   r/   r0   r   r   r   Ú
peek_event–   s   

zParser.peek_eventc                 C  s0   | j d u r| jr|  ¡ | _ | j  | _}d | _ |S r   )r)   r/   r*   )r'   Úvaluer   r   r   Ú	get_event   s   

zParser.get_eventc                 C  s4   | j  ¡ }|  |¡ t|j|j|jd}| j| _|S )N)Úencoding)	r7   Ú	get_tokenÚmove_token_commentZStreamStartEventÚ
start_markÚend_markrB   Úparse_implicit_document_startr/   ©r'   ÚtokenÚeventr   r   r   r.   ®   s
   

zParser.parse_stream_startc                 C  s\   | j  ttt¡s*| j| _| j  ¡ }|j }}t	||dd}| j
 | j¡ | j| _|S |  ¡ S )NF©Úexplicit)r7   Úcheck_tokenÚDirectiveTokenÚDocumentStartTokenÚStreamEndTokenÚDEFAULT_TAGSr+   Ú
peek_tokenrE   ÚDocumentStartEventr,   ÚappendÚparse_document_endÚparse_block_noder/   Úparse_document_start)r'   rI   rE   rF   rJ   r   r   r   rG   ¹   s   

z$Parser.parse_implicit_document_startc                 C  sî   | j  t¡r| j  ¡  | j  t¡s| j  t¡sY|  ¡ \}}| j  t¡s6td d d| j  ¡ j	f›| j  ¡ j
ƒ‚| j  ¡ }|j
}|j}t||d|||jd}| j | j¡ | j| _|S | j  ¡ }t|j
|j|jd}| jrmJ ‚| jrrJ ‚d | _|S )Nz'expected '<document start>', but found T)rL   ÚversionÚtagsÚcomment©rZ   )r7   rM   ÚDocumentEndTokenrC   rP   Úprocess_directivesrO   r   rR   ÚidrE   rF   rS   rZ   r,   rT   rU   Úparse_document_contentr/   ZStreamEndEventr-   )r'   rX   rY   rI   rE   rF   rJ   r   r   r   rW   Ë   sD   
ÿÿ
û
ú
û

zParser.parse_document_startc                 C  sÄ   | j  ¡ }|j }}d}| j  t¡rA| j  ¡ }| j  ¡ }t|tƒs<|jj	|jj	kr<t
d d d| j  ¡ jf›| j  ¡ jƒ‚|j}d}t|||d}| jjdkrT| j| _|S |r\| j| _|S | j| _|S )NFz5found non-comment content after document end marker, TrK   ©é   ra   )r7   rR   rE   rM   r\   rC   r<   rP   rF   Úliner   r^   ZDocumentEndEventr9   Úprocessing_versionrW   r/   rG   )r'   rI   rE   rF   rL   ÚptrJ   r   r   r   rU   ó   s6   




ÿ
ûúþzParser.parse_document_endc                 C  s<   | j  tttt¡r|  | j  ¡ j¡}| j	 
¡ | _|S |  ¡ S r   )r7   rM   rN   rO   r\   rP   Úprocess_empty_scalarrR   rE   r,   Úpopr/   rV   )r'   rJ   r   r   r   r_     s   ÿzParser.parse_document_contentc           
      C  sp  d }i | _ | j t¡r[| j ¡ }|jdkr6|d ur!td d d|jƒ‚|j\}}|dkr2td d d|jƒ‚|j}n|jdkrU|j\}}|| j v rPtd d d|›|jƒ‚|| j |< | j t¡st	| j ƒrh|| j  
¡ f}n|d f}| jd ur£t| jdƒr£|| j_| jjd u r…i | j_| j D ]}| j | | jj|< | jjd j || j | f¡ qˆ| jD ]}	|	| j vrµ| j|	 | j |	< q¦|S )	NÚYAMLzfound duplicate YAML directivera   z:found incompatible YAML document (version 1.* is required)ZTAGzduplicate tag handle rY   éÿÿÿÿ)r+   r7   rM   rN   rC   Únamer   rE   r@   r;   Úcopyr"   r6   rX   rY   Z	doc_infosrT   rQ   )
r'   Zyaml_versionrI   ÚmajorÚminorÚhandleÚprefixr@   ÚkÚkeyr   r   r   r]      sR   


ÿ
ü


ÿ
ê

 

€zParser.process_directivesc                 C  s   | j ddS )NT)Úblock©Ú
parse_noder0   r   r   r   rV   \  r2   zParser.parse_block_nodec                 C  s   |   ¡ S r   rr   r0   r   r   r   Úparse_flow_node_  s   zParser.parse_flow_nodec                 C  s   | j dddS )NT)rq   Úindentless_sequencerr   r0   r   r   r   Ú'parse_block_node_or_indentless_sequenceb  r   z.Parser.parse_block_node_or_indentless_sequenceÚtagr   c                 C  ó   |d u rd S |  d¡ d S ©NF©Zselect_transform©r'   rw   r   r   r   Úselect_tag_transformh  ó   zParser.select_tag_transformFrq   ru   c              
   C  sÔ  | j  t¡r| j  ¡ }t|j|j|jƒ}| j 	¡ | _
|S d }d }d  } }}	| j  t¡r_| j  ¡ }|  |¡ |j}|j}|j}| j  t¡r^| j  ¡ }|j}	|j}t|jd |jd | jd}nH| j  t¡r§| j  ¡ }z|  |¡ W n	 tyz   Y nw |j }}	|j}t|jd |jd | jd}| j  t¡r§| j  ¡ }|j }}	|j}|j}|d ur¿|  |¡ | ¡ r¿td|d|j›|	ƒ‚|d u rË| j  ¡ j }}d }|d u pÖt|ƒdk}
|rK| j  t¡rKd }| j  ¡ }| jr)| jjd u r)|jr
|jd r
|jd g g}d |jd< n*|jr(|jd d u r(|jd r(d |jd g}d |jd< n| jr4|jr4|j}| j  ¡ j}t|||
||d|d}| j| _
|S | j  t¡rŽ| j  ¡ }|j}|jrc|d u sjt|ƒdkrmd	}n
|d u rud
}nd}t||||j|||j |jd}| j 	¡ | _
|S | j  t!¡r¯| j  ¡ }|j}t|||
||d|jd}| j"| _
|S | j  t#¡rÐ| j  ¡ }|j}t$|||
||d|jd}| j%| _
|S |r	| j  t&¡r	| j  ¡ j}| j  ¡ }|j}|d u sô|d d u rø| '¡ }t|||
||d|d}| j(| _
|S |r0| j  t)¡r0| j  ¡ j}| j  ¡ j}t$|||
||d|d}| j*| _
|S |d us:|d urMt|||
dfd||ƒ}| j 	¡ | _
|S |rSd}nd}| j  ¡ }td|›d|d|j+›|jƒ‚)Nr   ra   )rm   ÚsuffixZhandleszwhile parsing a nodezfound undefined tag handle r!   F)Ú
flow_stylerZ   ©TF)FT©FF)ÚstylerZ   TÚ rq   Zflowzwhile parsing a z nodez%expected the node content, but found ),r7   rM   Z
AliasTokenrC   Z
AliasEventr@   rE   rF   r,   rf   r/   ZAnchorTokenrD   ZTagTokenr   r+   ÚNotImplementedErrorr|   Zcheck_handler   rm   rR   ÚstrÚBlockEntryTokenr"   Úcomment_handlingrZ   ZSequenceStartEventÚparse_indentless_sequence_entryZScalarTokenÚplainÚScalarEventr‚   ZFlowSequenceStartTokenÚparse_flow_sequence_first_entryZFlowMappingStartTokenÚMappingStartEventÚparse_flow_mapping_first_keyZBlockSequenceStartTokenZsplit_old_commentÚ parse_block_sequence_first_entryZBlockMappingStartTokenÚparse_block_mapping_first_keyr^   )r'   rq   ru   rI   rJ   Úanchorrw   rE   rF   Ztag_markZimplicitrZ   rd   Z	dimplicitÚnoder   r   r   rs   m  s.  



ÿ€
ÿ




ü
$
€ÿ
 
ø
AÀ
ù	4Í
ù	'Ú
ÿèÿïõ


üzParser.parse_nodec                 C  ó    | j  ¡ }| j |j¡ |  ¡ S r   )r7   rC   r-   rT   rE   Úparse_block_sequence_entry©r'   rI   r   r   r   rŽ     s   
z'Parser.parse_block_sequence_first_entryc                 C  sÄ   | j  t¡r,| j  ¡ }|  |¡ | j  tt¡s"| j | j¡ |  	¡ S | j| _
|  |j¡S | j  t¡sF| j  ¡ }td| jd d|j›|jƒ‚| j  ¡ }t|j|j|jd}| j ¡ | _
| j ¡  |S )Nz while parsing a block collectionrh   ú expected <block end>, but found r[   )r7   rM   r†   rC   rD   ÚBlockEndTokenr,   rT   r“   rV   r/   re   rF   rR   r   r-   r^   rE   ÚSequenceEndEventrZ   rf   rH   r   r   r   r“     s*   



ü

z!Parser.parse_block_sequence_entryc                 C  sÀ   | j  t¡r.| j  ¡ }|  |¡ | j  tttt¡s$| j 	| j
¡ |  ¡ S | j
| _|  |j¡S | j  ¡ }d }| jrE| jjd u rE|j}|j}n| jj}|  |j|j¡}t|||d}| j ¡ | _|S )Nr[   )r7   rM   r†   rC   rD   ÚKeyTokenÚ
ValueTokenr–   r,   rT   rˆ   rV   r/   re   rF   rR   r"   r‡   rZ   rE   r*   Údistribute_commentrb   r—   rf   )r'   rI   ÚcrE   rJ   r   r   r   rˆ   5  s(   

ÿ
z&Parser.parse_indentless_sequence_entryc                 C  r’   r   )r7   rC   r-   rT   rE   Úparse_block_mapping_keyr”   r   r   r   r   R  s   
z$Parser.parse_block_mapping_first_keyc                 C  s  | j  t¡r-| j  ¡ }|  |¡ | j  ttt¡s#| j | j	¡ |  
¡ S | j	| _|  |j¡S | jjdkrF| j  t¡rF| j	| _|  | j  ¡ j¡S | j  t¡s`| j  ¡ }td| jd d|j›|jƒ‚| j  ¡ }|  |¡ t|j|j|jd}| j ¡ | _| j ¡  |S )Nr`   zwhile parsing a block mappingrh   r•   r[   )r7   rM   r˜   rC   rD   r™   r–   r,   rT   Úparse_block_mapping_valuerv   r/   re   rF   r9   rc   rR   rE   r   r-   r^   ÚMappingEndEventrZ   rf   rH   r   r   r   rœ   W  s2   



ü


zParser.parse_block_mapping_keyc                 C  sà   | j  t¡ra| j  ¡ }| j  t¡r|  |¡ n| j  t¡s$| j|dd | j  ttt¡s7| j | j	¡ |  
¡ S | j	| _|j}|d u rY| j  ¡ }|j}|rYd |d g|_|d d g}| j|j|dS | j	| _| j  ¡ }|  |j¡S )NT©Úemptyra   r   r[   )r7   rM   r™   rC   rD   r˜   r–   r,   rT   rœ   rv   r/   rZ   rR   Ú_commentre   rF   rE   )r'   rI   rZ   r   r   r   r   s  s*   


z Parser.parse_block_mapping_valuec                 C  ó$   | j  ¡ }| j |j¡ | jddS ©NT)Úfirst)r7   rC   r-   rT   rE   Úparse_flow_sequence_entryr”   r   r   r   r‹   š  ó   
z&Parser.parse_flow_sequence_first_entryr¤   c                 C  sä   | j  t¡sV|s(| j  t¡r| j  ¡  n| j  ¡ }td| jd d|j›|j	ƒ‚| j  t
¡rE| j  ¡ }td d d|j	|jdd}| j| _|S | j  t¡sV| j | j¡ |  ¡ S | j  ¡ }t|j	|j|jd}| j ¡ | _| j ¡  |S )Nzwhile parsing a flow sequencerh   zexpected ',' or ']', but got T)r   r[   )r7   rM   ÚFlowSequenceEndTokenÚFlowEntryTokenrC   rR   r   r-   r^   rE   r˜   rŒ   rF   Ú%parse_flow_sequence_entry_mapping_keyr/   r,   rT   r¥   rt   r—   rZ   rf   ©r'   r¤   rI   rJ   r   r   r   r¥   Ÿ  s4   

ü
ÿ

z Parser.parse_flow_sequence_entryc                 C  sD   | j  ¡ }| j  ttt¡s| j | j¡ |  	¡ S | j| _
|  |j¡S r   )r7   rC   rM   r™   r¨   r§   r,   rT   Ú'parse_flow_sequence_entry_mapping_valuert   r/   re   rF   r”   r   r   r   r©   ½  s   
z,Parser.parse_flow_sequence_entry_mapping_keyc                 C  ól   | j  t¡r'| j  ¡ }| j  tt¡s| j | j¡ |  	¡ S | j| _
|  |j¡S | j| _
| j  ¡ }|  |j¡S r   )r7   rM   r™   rC   r¨   r§   r,   rT   Ú%parse_flow_sequence_entry_mapping_endrt   r/   re   rF   rR   rE   r”   r   r   r   r«   Æ  ó   

z.Parser.parse_flow_sequence_entry_mapping_valuec                 C  s    | j | _| j ¡ }t|j|jƒS r   )r¥   r/   r7   rR   rž   rE   r”   r   r   r   r­   Ô  s   
z,Parser.parse_flow_sequence_entry_mapping_endc                 C  r¢   r£   )r7   rC   r-   rT   rE   Úparse_flow_mapping_keyr”   r   r   r   r   ß  r¦   z#Parser.parse_flow_mapping_first_keyc                 C  s,  | j  t¡sz|s(| j  t¡r| j  ¡  n| j  ¡ }td| jd d|j›|j	ƒ‚| j  t
¡rP| j  ¡ }| j  ttt¡sF| j | j¡ |  ¡ S | j| _|  |j¡S | jjdkri| j  t¡ri| j| _|  | j  ¡ j¡S | j  t¡sz| j | j¡ |  ¡ S | j  ¡ }t|j	|j|jd}| j ¡ | _| j ¡  |S )Nzwhile parsing a flow mappingrh   zexpected ',' or '}', but got r`   r[   )r7   rM   ÚFlowMappingEndTokenr¨   rC   rR   r   r-   r^   rE   r˜   r™   r,   rT   Úparse_flow_mapping_valuert   r/   re   rF   r9   rc   Úparse_flow_mapping_empty_valuerž   rZ   rf   rª   r   r   r   r¯   ä  sB   

ü
ÿÿ

zParser.parse_flow_mapping_keyc                 C  r¬   r   )r7   rM   r™   rC   r¨   r°   r,   rT   r¯   rt   r/   re   rF   rR   rE   r”   r   r   r   r±   	  r®   zParser.parse_flow_mapping_valuec                 C  s   | j | _|  | j ¡ j¡S r   )r¯   r/   re   r7   rR   rE   r0   r   r   r   r²     s   z%Parser.parse_flow_mapping_empty_valueNÚmarkrZ   c              	   C  s   t d d dd|||dS )Nr€   rƒ   r[   )rŠ   )r'   r³   rZ   r   r   r   re     s   zParser.process_empty_scalarrI   ÚntúOptional[Any]r    úOptional[bool]c                 C  s   d S r   r   ©r'   rI   r´   r    r   r   r   rD     s   zParser.move_token_comment)r"   r   r   r#   )r   r#   )r   r   )r:   r   r   r;   ©rw   r   r   r#   r   )rq   r;   ru   r;   r   r   )F)r¤   r;   r   r   )r¤   r   r   r   r   )r³   r   rZ   r   r   r   ry   ©rI   r   r´   rµ   r    r¶   r   r   ))r   r   r    rQ   r(   r&   r1   Úpropertyr7   r9   r>   r?   rA   r.   rG   rW   rU   r_   r]   rV   rt   rv   r|   rs   rŽ   r“   rˆ   r   rœ   r   r‹   r¥   r©   r«   r­   r   r¯   r±   r²   re   rD   r   r   r   r   r   f   sT    










(
#


<


 
#





'

	


%
ÿr   c                   @  s(   e Zd ZdZddd„Z		dddd„ZdS )r   ú?roundtrip is a safe loader, that wants to see the unmangled tagrw   r   r   r#   c                 C  rx   )NTrz   r{   r   r   r   r|   '  r}   z$RoundTripParser.select_tag_transformNFrI   r   r´   rµ   r    r¶   c                 C  ó$   |j |d u r| j ¡ n||d d S ©NrŸ   )Zmove_old_commentr7   rR   r·   r   r   r   rD   ,  ó   $z"RoundTripParser.move_token_commentr¸   ry   r¹   )r   r   r    Ú__doc__r|   rD   r   r   r   r   r   $  s
    
ÿr   c                   @  s(   e Zd ZdZ	dddd„Zddd„ZdS )ÚRoundTripParserSCr»   NFr'   r   rI   r´   r    r¶   r   r#   c                 C  r¼   r½   )Zmove_new_commentr7   rR   r·   r   r   r   rD   8  r¾   z$RoundTripParserSC.move_token_commentrZ   rb   c                 C  sà   |d u rd S |d sd S |d d |d ksJ ‚| j jd@ }|tkr$d S |tkr5d d |d g}d |d< |S t|d ƒD ]\}}t| jj| tƒrJ nq;d S |dkrSd S |t	krnd d |d d |… g}|d |d … |d< |S t
‚)Nr   ra   é   )r"   r‡   r
   r	   Ú	enumerater<   r7   Úcommentsr   r   r„   )r'   rZ   rb   r5   r›   Z_idxZcmntidxr   r   r   rš   =  s0   ÿz$RoundTripParserSC.distribute_commentry   )
r'   r   rI   r   r´   r   r    r¶   r   r#   )rZ   r   rb   r   r   r   )r   r   r    r¿   rD   rš   r   r   r   r   rÀ   2  s
    ÿrÀ   N)r   r   r   r   r   r   )Ú
__future__r   Zruamel.yaml.errorr   Zruamel.yaml.tokensZruamel.yaml.eventsZruamel.yaml.scannerr   r   r   r   Zruamel.yaml.commentsr	   r
   r   Zruamel.yaml.compatr   r   Zruamel.yaml.tagr   Útypingr   r   r   r   Ú__all__r   r   r   r   rÀ   r   r   r   r   Ú<module>   s*   L
     C