o
    ei[                     @  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   P/home/ubuntu/transcripts/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"   scanner_scannerr0   r   r   r   r7   }      zParser.scannerc                 C  r3   r4   )r6   r"   resolver	_resolverr0   r   r   r   r:      r9   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_commentStreamStartEvent
start_markend_markrD   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_tokenrH   DocumentStartEventr,   appendparse_document_endparse_block_noder/   parse_document_start)r'   rL   rH   rI   rM   r   r   r   rJ      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)rO   versiontagscommentr]   )r7   rP   DocumentEndTokenrE   rS   process_directivesrR   r   rU   idrH   rI   rV   r]   r,   rW   rX   parse_document_contentr/   StreamEndEventr-   )r'   r[   r\   rL   rH   rI   rM   r   r   r   rZ      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, TrN      re   )r7   rU   rH   rP   r_   rE   r>   rS   rI   liner   ra   DocumentEndEventr:   processing_versionrZ   r/   rJ   )r'   rL   rH   rI   rO   ptrM   r   r   r   rX      s6   





zParser.parse_document_endc                 C  s<   | j ttttr| | j  j}| j	
 | _|S |  S r   )r7   rP   rQ   rR   r_   rS   process_empty_scalarrU   rH   r,   popr/   rY   )r'   rM   r   r   r   rb     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rt| jdr|| j_| jjd u ri | 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 directivere   z:found incompatible YAML document (version 1.* is required)TAGzduplicate tag handle r\   )r+   r7   rP   rQ   rE   namer   rH   rB   r=   copyr"   r6   r[   r\   	doc_infosrW   rT   )
r'   yaml_versionrL   majorminorhandleprefixrB   kkeyr   r   r   r`      sR   









 

zParser.process_directivesc                 C  s   | j ddS )NT)block
parse_noder0   r   r   r   rY   \  r2   zParser.parse_block_nodec                 C  s   |   S r   rz   r0   r   r   r   parse_flow_node_  s   zParser.parse_flow_nodec                 C  s   | j dddS )NT)ry   indentless_sequencerz   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select_transformr'   r   r   r   r   select_tag_transformh     zParser.select_tag_transformFry   r}   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| | | rtd|d|j|	|d u r| j  j }}d }|d u pt|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   re   )ru   suffixhandleszwhile parsing a nodezfound undefined tag handle r!   F)
flow_styler]   TF)FTFF)styler]   T ry   flowzwhile parsing a z nodez%expected the node content, but found ),r7   rP   
AliasTokenrE   
AliasEventrB   rH   rI   r,   rk   r/   AnchorTokenrF   TagTokenr   r+   NotImplementedErrorr   check_handler   ru   rU   strBlockEntryTokenr"   comment_handlingr]   SequenceStartEventparse_indentless_sequence_entryScalarTokenplainScalarEventr   FlowSequenceStartTokenparse_flow_sequence_first_entryFlowMappingStartTokenMappingStartEventparse_flow_mapping_first_keyBlockSequenceStartTokensplit_old_comment parse_block_sequence_first_entryBlockMappingStartTokenparse_block_mapping_first_keyra   )r'   ry   r}   rL   rM   anchorr   rH   rI   tag_markimplicitr]   ri   	dimplicitnoder   r   r   r{   m  s.  










$

 

A
	4
	'



zParser.parse_nodec                 C      | j  }| j|j |  S r   )r7   rE   r-   rW   rH   parse_block_sequence_entryr'   rL   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 collectionrn    expected <block end>, but found r^   )r7   rP   r   rE   rF   BlockEndTokenr,   rW   r   rY   r/   rj   rI   rU   r   r-   ra   rH   SequenceEndEventr]   rk   rK   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   rP   r   rE   rF   KeyToken
ValueTokenr   r,   rW   r   rY   r/   rj   rI   rU   r"   r   r]   rH   r*   distribute_commentrf   r   rk   )r'   rL   crH   rM   r   r   r   r   5  s(   


z&Parser.parse_indentless_sequence_entryc                 C  r   r   )r7   rE   r-   rW   rH   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 )Nrd   zwhile parsing a block mappingrn   r   r^   )r7   rP   r   rE   rF   r   r   r,   rW   parse_block_mapping_valuer~   r/   rj   rI   r:   rh   rU   rH   r   r-   ra   MappingEndEventr]   rk   rK   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emptyre   r   r^   )r7   rP   r   rE   rF   r   r   r,   rW   r   r~   r/   r]   rU   _commentrj   rI   rH   )r'   rL   r]   r   r   r   r   s  s*   


z Parser.parse_block_mapping_valuec                 C  $   | j  }| j|j | jddS NT)first)r7   rE   r-   rW   rH   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 sequencern   zexpected ',' or ']', but got T)r   r^   )r7   rP   FlowSequenceEndTokenFlowEntryTokenrE   rU   r   r-   ra   rH   r   r   rI   %parse_flow_sequence_entry_mapping_keyr/   r,   rW   r   r|   r   r]   rk   r'   r   rL   rM   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   rE   rP   r   r   r   r,   rW   'parse_flow_sequence_entry_mapping_valuer|   r/   rj   rI   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   rP   r   rE   r   r   r,   rW   %parse_flow_sequence_entry_mapping_endr|   r/   rj   rI   rU   rH   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   rU   r   rH   r   r   r   r   r     s   
z,Parser.parse_flow_sequence_entry_mapping_endc                 C  r   r   )r7   rE   r-   rW   rH   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 mappingrn   zexpected ',' or '}', but got rd   r^   )r7   rP   FlowMappingEndTokenr   rE   rU   r   r-   ra   rH   r   r   r,   rW   parse_flow_mapping_valuer|   r/   rj   rI   r:   rh   parse_flow_mapping_empty_valuer   r]   rk   r   r   r   r   r     sB   




zParser.parse_flow_mapping_keyc                 C  r   r   )r7   rP   r   rE   r   r   r,   rW   r   r|   r/   rj   rI   rU   rH   r   r   r   r   r   	  r   zParser.parse_flow_mapping_valuec                 C  s   | j | _| | j jS r   )r   r/   rj   r7   rU   rH   r0   r   r   r   r     s   z%Parser.parse_flow_mapping_empty_valueNmarkr]   c              	   C  s   t d d dd|||dS )Nr   r   r^   )r   )r'   r   r]   r   r   r   rj     s   zParser.process_empty_scalarrL   ntOptional[Any]r   Optional[bool]c                 C  s   d S r   r   r'   rL   r   r   r   r   r   rF     s   zParser.move_token_comment)r"   r   r   r#   )r   r#   )r   r   )r<   r   r   r=   r   r   r   r#   r   )ry   r=   r}   r=   r   r   )F)r   r=   r   r   )r   r   r   r   r   )r   r   r]   r   r   r   r   rL   r   r   r   r   r   r   r   ))r   r   r    rT   r(   r&   r1   propertyr7   r:   r@   rA   rC   r.   rJ   rZ   rX   rb   r`   rY   r|   r~   r   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rj   rF   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 tagr   r   r   r#   c                 C  r   )NTr   r   r   r   r   r   '  r   z$RoundTripParser.select_tag_transformNFrL   r   r   r   r   r   c                 C  $   |j |d u r| j n||d d S Nr   )move_old_commentr7   rU   r   r   r   r   rF   ,     $z"RoundTripParser.move_token_commentr   r   r   )r   r   r    __doc__r   rF   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   rL   r   r   r   r   r#   c                 C  r   r   )move_new_commentr7   rU   r   r   r   r   rF   8  r   z$RoundTripParserSC.move_token_commentr]   rf   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   re      )r"   r   r
   r	   	enumerater>   r7   commentsr   r   r   )r'   r]   rf   r5   r   _idxcmntidxr   r   r   r   =  s0   z$RoundTripParserSC.distribute_commentr   )
r'   r   rL   r   r   r   r   r   r   r#   )r]   r   rf   r   r   r   )r   r   r    r   rF   r   r   r   r   r   r   2  s
    r   N)r   r   r   r   r   r   )
__future__r   ruamel.yaml.errorr   ruamel.yaml.tokensruamel.yaml.eventsruamel.yaml.scannerr   r   r   r   ruamel.yaml.commentsr	   r
   r   ruamel.yaml.compatr   r   ruamel.yaml.tagr   typingr   r   r   r   __all__r   r   r   r   r   r   r   r   r   <module>   s*   L
     C