o
    ÝhrŽ  ã                   @   s¸   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mZ 	 g d	¢Z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 )é    )ÚMarkedYAMLError)Ú*)ÚScannerÚRoundTripScannerÚScannerError)ÚBlankLineComment)ÚC_PREÚC_POSTÚC_SPLIT_ON_FIRST_BLANK)Ú_FÚnprintÚnprintfF)ÚAnyÚDictÚOptionalÚListr   )ÚParserÚRoundTripParserÚParserErrorc                  O   s   t | i |¤ŽS ©N)r   )ÚargsÚkw© r   úZ/var/www/html/magazine_api/magazine_env/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   a   s    r   c                   @   sH  e Zd ZdddœZdd„ Zdd„ Z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 d!„ Zd"d#„ Zd$d%„ Zd&d'„ ZdNd)d*„Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ ZdOd9d:„Zd;d<„ Z d=d>„ Z!d?d@„ Z"dAdB„ Z#dOdCdD„Z$dEdF„ Z%dGdH„ Z&dPdJdK„Z'dQdLdM„Z(dIS )Rr   ú!ztag:yaml.org,2002:)r   ú!!c                 C   s6   || _ | j d urt| j dd ƒd u r| | j _|  ¡  d S )NÚ_parser)ÚloaderÚgetattrr!   Úreset_parser)Úselfr"   r   r   r   Ú__init__k   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$   r.   r   r   r   Údispose{   ó   zParser.disposec                 C   ó   t | jdƒr
| jjS | jjS ©NÚtyp)Úhasattrr"   ÚscannerZ_scannerr.   r   r   r   r5      ó   zParser.scannerc                 C   r1   r2   )r4   r"   ÚresolverZ	_resolverr.   r   r   r   r7   †   r6   zParser.resolverc                 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%   ÚchoicesÚchoicer   r   r   Úcheck_event   s   


ÿzParser.check_eventc                 C   s    | j d u r| jr|  ¡ | _ | j S r   )r'   r-   r.   r   r   r   Ú
peek_event›   s   

zParser.peek_eventc                 C   sJ   | j d u r| jr|  ¡ | _ tdt| j ƒ|  ¡ jjƒ | j  | _}d | _ |S )NÚ	get_event)r'   r-   r   Úreprr<   Ú
start_markÚliner(   )r%   Úvaluer   r   r   r=   £   s   

zParser.get_eventc                 C   s4   | j  ¡ }|  |¡ t|j|j|jd}| j| _|S )N)Úencoding)	r5   Ú	get_tokenÚmove_token_commentZStreamStartEventr?   Ú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)r5   Úcheck_tokenÚDirectiveTokenÚDocumentStartTokenÚStreamEndTokenÚDEFAULT_TAGSr)   Ú
peek_tokenr?   ÚDocumentStartEventr*   ÚappendÚparse_document_endÚparse_block_noder-   Úparse_document_start)r%   rH   r?   rE   rI   r   r   r   rF   Á   s   

z$Parser.parse_implicit_document_startc                 C   sî   | j  t¡r| j  ¡  | j  t¡s| j  t¡sY|  ¡ \}}| j  t¡s6td d td| j  	¡ j
d| 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 {pt!r})ÚptT)rK   ÚversionÚtagsÚcomment©rZ   )r5   rL   ÚDocumentEndTokenrC   rO   Úprocess_directivesrN   r   r   rQ   Úidr?   rE   rR   rZ   r*   rS   rT   Úparse_document_contentr-   ZStreamEndEventr+   )r%   rX   rY   rH   r?   rE   rI   r   r   r   rV   Ó   s>   
ÿ
þ
ù
	
þ
û

zParser.parse_document_startc                 C   sj   | j  ¡ }|j }}d}| j  t¡r| j  ¡ }|j}d}t|||d}| jj	dkr/| j
| _|S | j| _|S )NFTrJ   ©é   ra   )r5   rQ   r?   rL   r\   rC   rE   ZDocumentEndEventr7   Úprocessing_versionrV   r-   rF   )r%   rH   r?   rE   rK   rI   r   r   r   rT   ú   s   


þzParser.parse_document_endc                 C   s<   | j  tttt¡r|  | j  ¡ j¡}| j	 
¡ | _|S |  ¡ S r   )r5   rL   rM   rN   r\   rO   Úprocess_empty_scalarrQ   r?   r*   Úpopr-   rU   )r%   rI   r   r   r   r_     s   ÿzParser.parse_document_contentc           
      C   sT  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rV|j\}}|| j v rQtd d t	d|d|jƒ‚|| j |< | j t¡st
| j ƒri|| 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|< 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 {handle!r}©ÚhandlerY   )r)   r5   rL   rM   rC   Únamer   r?   rA   r   ÚboolÚcopyr"   r4   rX   rY   rP   )
r%   Zyaml_versionrH   ÚmajorÚminorrg   ÚprefixrA   ÚkÚkeyr   r   r   r]     sV   


ÿ
ü



ü
ç



€zParser.process_directivesc                 C   s   | j ddS )NT)Úblock©Ú
parse_noder.   r   r   r   rU   V  r0   zParser.parse_block_nodec                 C   s   |   ¡ S r   rq   r.   r   r   r   Úparse_flow_nodeZ  s   zParser.parse_flow_nodec                 C   s   | j dddS )NT)rp   Úindentless_sequencerq   r.   r   r   r   Ú'parse_block_node_or_indentless_sequence^  r   z.Parser.parse_block_node_or_indentless_sequencec                 C   s   | j | | S r   )r)   ©r%   rg   Úsuffixr   r   r   Útransform_tagb  r   zParser.transform_tagFc              
   C   sP  | j  t¡r| j  ¡ }t|j|j|jƒ}| j 	¡ | _
|S d }d }d  } }}	| j  t¡rT| j  ¡ }|  |¡ |j}|j}|j}| j  t¡rS| j  ¡ }|j}	|j}|j}n,| j  t¡r€| j  ¡ }|j }}	|j}|j}| j  t¡r€| j  ¡ }|j }}	|j}|j}|d ur¥|\}
}|
d ur£|
| jvrœtd|td|
d|	ƒ‚|  |
|¡}n|}|d u r±| j  ¡ j }}d }|d u pº|dk}|r
| j  t¡r
d }| j  ¡ }| jrê| jjd u rê|jré|jd ré|jd g g}d |jd< n	| jró|jró|j}| j  ¡ j}t|||||d|d}| j| _
|S | j  t¡rK| j  ¡ }|j}|jr"|d u s'|dkr*d}n
|d u r2d	}nd
}t||||j|||j|jd}| j 	¡ | _
|S | j  t¡rl| 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 |rí| j  t%¡rí| j  ¡ j}| j  ¡ j}t |||||d|d}| j&| _
|S |d us÷|d ur
t|||dfd||ƒ}| j 	¡ | _
|S |rd}nd}| j  ¡ }ttd|d|td|j'd|jƒ‚)Nzwhile parsing a nodez%found undefined tag handle {handle!r}rf   r   r   F)Ú
flow_stylerZ   ©TF)FT©FF)ÚstylerZ   Tra   Ú rp   Zflowzwhile parsing a {node!s} node)Únodez1expected the node content, but found {token_id!r}©Ztoken_id)(r5   rL   Z
AliasTokenrC   Z
AliasEventrA   r?   rE   r*   rd   r-   ZAnchorTokenrD   ZTagTokenr)   r   r   rx   rQ   Ú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%   rp   rt   rH   rI   ÚanchorÚtagr?   rE   Ztag_markrg   rw   ZimplicitrZ   rW   r~   r   r   r   rr   f  s   



€





ü

€ÿ

ø
AÀ
ù	4Í
ù	'Ú
ÿèÿïõ

üzParser.parse_nodec                 C   ó    | j  ¡ }| j |j¡ |  ¡ S r   )r5   rC   r+   rS   r?   Úparse_block_sequence_entry©r%   rH   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¡sG| j  ¡ }td| jd td|jd|jƒ‚| j  ¡ }t|j|j|jd}| j ¡ | _
| j ¡  |S )Nz while parsing a block collectionéÿÿÿÿú,expected <block end>, but found {token_id!r}r   r[   )r5   rL   r€   rC   rD   ÚBlockEndTokenr*   rS   r   rU   r-   rc   rE   rQ   r   r+   r   r^   r?   ÚSequenceEndEventrZ   rd   rG   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[   )r5   rL   r€   rC   rD   ÚKeyTokenÚ
ValueTokenr‘   r*   rS   r‚   rU   r-   rc   rE   rQ   r"   r   rZ   r?   r(   Údistribute_commentr@   r’   rd   )r%   rH   Úcr?   rI   r   r   r   r‚   0  s(   

ÿ
z&Parser.parse_indentless_sequence_entryc                 C   rŒ   r   )r5   rC   r+   rS   r?   Úparse_block_mapping_keyrŽ   r   r   r   r‰   N  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¡sa| j  ¡ }td| jd td|jd|jƒ‚| j  ¡ }|  |¡ t|j|j|jd}| j ¡ | _| j ¡  |S )Nr`   zwhile parsing a block mappingr   r   r   r[   )r5   rL   r“   rC   rD   r”   r‘   r*   rS   Úparse_block_mapping_valueru   r-   rc   rE   r7   rb   rQ   r?   r   r+   r   r^   ÚMappingEndEventrZ   rd   rG   r   r   r   r—   T  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[   )r5   rL   r”   rC   rD   r“   r‘   r*   rS   r—   ru   r-   rZ   rQ   Ú_commentrc   rE   r?   )r%   rH   rZ   r   r   r   r˜   q  s*   


z Parser.parse_block_mapping_valuec                 C   ó$   | j  ¡ }| j |j¡ | jddS ©NT)Úfirst)r5   rC   r+   rS   r?   Úparse_flow_sequence_entryrŽ   r   r   r   r…   ™  ó   
z&Parser.parse_flow_sequence_first_entryc                 C   sæ   | j  t¡sW|s)| j  t¡r| j  ¡  n| j  ¡ }td| jd td|j	d|j
ƒ‚| j  t¡rF| j  ¡ }td d d|j
|jdd}| j| _|S | j  t¡sW| j | j¡ |  ¡ S | j  ¡ }t|j
|j|jd}| j ¡ | _| j ¡  |S )Nzwhile parsing a flow sequencer   z)expected ',' or ']', but got {token_id!r}r   T)ry   r[   )r5   rL   ÚFlowSequenceEndTokenÚFlowEntryTokenrC   rQ   r   r+   r   r^   r?   r“   r†   rE   Ú%parse_flow_sequence_entry_mapping_keyr-   r*   rS   r    rs   r’   rZ   rd   ©r%   rŸ   rH   rI   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   )r5   rC   rL   r”   r£   r¢   r*   rS   Ú'parse_flow_sequence_entry_mapping_valuers   r-   rc   rE   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   )r5   rL   r”   rC   r£   r¢   r*   rS   Ú%parse_flow_sequence_entry_mapping_endrs   r-   rc   rE   rQ   r?   rŽ   r   r   r   r¦   È  ó   

z.Parser.parse_flow_sequence_entry_mapping_valuec                 C   s    | j | _| j ¡ }t|j|jƒS r   )r    r-   r5   rQ   r™   r?   rŽ   r   r   r   r¨   ×  s   
z,Parser.parse_flow_sequence_entry_mapping_endc                 C   r   rž   )r5   rC   r+   rS   r?   Úparse_flow_mapping_keyrŽ   r   r   r   r‡   ã  r¡   z#Parser.parse_flow_mapping_first_keyc                 C   s.  | j  t¡s{|s)| j  t¡r| j  ¡  n| j  ¡ }td| jd td|j	d|j
ƒ‚| j  t¡rQ| j  ¡ }| j  ttt¡sG| j | j¡ |  ¡ S | j| _|  |j¡S | jjdkrj| j  t¡rj| j| _|  | j  ¡ j¡S | j  t¡s{| j | j¡ |  ¡ S | j  ¡ }t|j
|j|jd}| j ¡ | _| j ¡  |S )Nzwhile parsing a flow mappingr   z*expected ',' or '}}', but got {token_id!r}r   r`   r[   )r5   rL   ÚFlowMappingEndTokenr£   rC   rQ   r   r+   r   r^   r?   r“   r”   r*   rS   Úparse_flow_mapping_valuers   r-   rc   rE   r7   rb   Úparse_flow_mapping_empty_valuer™   rZ   rd   r¥   r   r   r   rª   é  sB   
ü
ÿÿ

zParser.parse_flow_mapping_keyc                 C   r§   r   )r5   rL   r”   rC   r£   r«   r*   rS   rª   rs   r-   rc   rE   rQ   r?   rŽ   r   r   r   r¬     r©   zParser.parse_flow_mapping_valuec                 C   s   | j | _|  | j ¡ j¡S r   )rª   r-   rc   r5   rQ   r?   r.   r   r   r   r­     s   z%Parser.parse_flow_mapping_empty_valueNc              	   C   s   t d d dd|||dS )Nrz   r}   r[   )r„   )r%   ÚmarkrZ   r   r   r   rc   #  s   zParser.process_empty_scalarc                 C   s   d S r   r   ©r%   rH   Úntr›   r   r   r   rD   '  s   zParser.move_token_commentr{   )Fr   ©NF))r   r   r   rP   r&   r$   r/   Úpropertyr5   r7   r;   r<   r=   r,   rF   rV   rT   r_   r]   rU   rs   ru   rx   rr   rˆ   r   r‚   r‰   r—   r˜   r…   r    r¤   r¦   r¨   r‡   rª   r¬   r­   rc   rD   r   r   r   r   r   e   sR    
	

'=
 # (


&
r   c                   @   s"   e Zd ZdZdd„ Zddd„ZdS )	r   ú?roundtrip is a safe loader, that wants to see the unmangled tagc                 C   s&   |dkr|dv rt  | ||¡S || S )Nr    )Únullri   ÚintÚfloatÚbinaryÚ	timestampZomapÚpairsÚsetÚstrÚseqÚmap)r   rx   rv   r   r   r   rx   /  s   zRoundTripParser.transform_tagNFc                 C   ó$   |j |d u r| j ¡ n||d d S ©Nrš   )Zmove_old_commentr5   rQ   r¯   r   r   r   rD   C  ó   $z"RoundTripParser.move_token_commentr±   )r   r   r   Ú__doc__rx   rD   r   r   r   r   r   ,  s    r   c                   @   s"   e Zd ZdZddd„Zdd„ ZdS )	ÚRoundTripParserSCr³   NFc                 C   r¾   r¿   )Zmove_new_commentr5   rQ   r¯   r   r   r   rD   N  rÀ   z$RoundTripParserSC.move_token_commentc                 C   s   |d u rd S |d sd S |d d |d krt d||ƒ |d d |d ks(J ‚| jjd@ }|tkr4d S |tkrEd d |d g}d |d< |S t|d ƒD ]\}}t| jj| t	ƒrZ nqKd S |dkrcd S |t
kr~d d |d d |… g}|d |d … |d< |S t‚)Nr   ra   z>>>dcxxxé   )r   r"   r   r	   r   Ú	enumerater8   r5   Úcommentsr   r
   ÚNotImplementedError)r%   rZ   r@   r3   r–   Z_idxZcmntidxr   r   r   r•   R  s4   ÿz$RoundTripParserSC.distribute_commentr±   )r   r   r   rÁ   rD   r•   r   r   r   r   rÂ   H  s    
rÂ   N)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   r   Útypingr   r   r   r   Ú__all__r   r   r   r   rÂ   r   r   r   r   Ú<module>   s&   L     L