a
    ͝Gdr                     @   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nprintf)ParserRoundTripParserParserErrorc                  O   s   t | i |S N)r   )argskw r   N/var/www/html/django/DPS/env/lib/python3.9/site-packages/ruamel/yaml/parser.pyxprintf[   s    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#dPdCdDZ$dEdF Z%dGdH Z&dQdJdKZ'dRdLdMZ(dIS )Sr   !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{   s    zParser.disposec                 C   s   t | jdr| jjS | jjS Ntyp)hasattrr   scannerZ_scannerr)   r   r   r   r.      s    zParser.scannerc                 C   s   t | jdr| jjS | jjS r+   )r-   r   resolverZ	_resolverr)   r   r   r   r/      s    zParser.resolverc                 G   sL   | j d u r| jr|  | _ | j d urH|s,dS |D ]}t| j |r0 dS q0d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   reprr4   
start_markliner#   )r    valuer   r   r   r5      s    

zParser.get_eventc                 C   s4   | j  }| | t|j|j|jd}| j| _|S )N)encoding)	r.   	get_tokenmove_token_commentZStreamStartEventr7   end_markr:   parse_implicit_document_startr(   r    tokeneventr   r   r   r'      s
    

zParser.parse_stream_startc                 C   s`   | j tttsT| j| _| j  }|j }}t	||dd}| j
| j | j| _|S |  S d S )NFexplicit)r.   check_tokenDirectiveTokenDocumentStartTokenStreamEndTokenDEFAULT_TAGSr$   
peek_tokenr7   DocumentStartEventr%   appendparse_document_endparse_block_noder(   parse_document_start)r    r@   r7   r=   rA   r   r   r   r>      s    

z$Parser.parse_implicit_document_startc                 C   s   | j tr| j   q | j ts|  \}}| j tsbtd d td| j 	 j
d| j 	 j| j  }|j}|j}t||d|||jd}| j| j | j| _n8| j  }t|j|j|jd}| jrJ | jrJ d | _|S )Nz-expected '<document start>', but found {pt!r})ptT)rC   versiontagscommentrR   )r.   rD   DocumentEndTokenr;   rG   process_directivesrF   r   r   rI   idr7   r=   rJ   rR   r%   rK   rL   parse_document_contentr(   ZStreamEndEventr&   )r    rP   rQ   r@   r7   r=   rA   r   r   r   rN      s:    

	





zParser.parse_document_startc                 C   sh   | j  }|j }}d}| j tr8| j  }|j}d}t|||d}| jj	dkr\| j
| _n| j| _|S )NFTrB      rY   )r.   rI   r7   rD   rT   r;   r=   ZDocumentEndEventr/   processing_versionrN   r(   r>   )r    r@   r7   r=   rC   rA   r   r   r   rL      s    



zParser.parse_document_endc                 C   s@   | j ttttr4| | j  j}| j	
 | _|S |  S d S r   )r.   rD   rE   rF   rT   rG   process_empty_scalarrI   r7   r%   popr(   rM   )r    rA   r   r   r   rW     s    zParser.parse_document_contentc           
      C   sV  d }i | _ | jtr| j }|jdkrl|d urBtd d d|j|j\}}|dkrdtd d d|j|j}q
|jdkr
|j\}}|| j v rtd d t	d|d|j|| j |< q
t
| j r|| 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 directiverY   z:found incompatible YAML document (version 1.* is required)ZTAGzduplicate tag handle {handle!r}handlerQ   )r$   r.   rD   rE   r;   namer   r7   r9   r   boolcopyr   r-   rP   rQ   rH   )
r    Zyaml_versionr@   majorminorr_   prefixr9   kkeyr   r   r   rU     sR    










zParser.process_directivesc                 C   s   | j ddS )NT)block
parse_noder)   r   r   r   rM   V  s    zParser.parse_block_nodec                 C   s   |   S r   ri   r)   r   r   r   parse_flow_nodeZ  s    zParser.parse_flow_nodec                 C   s   | j dddS )NT)rh   indentless_sequenceri   r)   r   r   r   'parse_block_node_or_indentless_sequence^  s    z.Parser.parse_block_node_or_indentless_sequencec                 C   s   | j | | S r   )r$   r    r_   suffixr   r   r   transform_tagb  s    zParser.transform_tagFc              
   C   sh  | j tr8| j  }t|j|j|j}| j	 | _
|S d }d }d  } }}	| j tr| j  }| | |j}|j}|j}| j tr| j  }|j}	|j}|j}n\| j tr| j  }|j }}	|j}|j}| j tr| j  }|j }}	|j}|j}|d urT|\}
}|
d urP|
| jvrBtd|td|
d|	| |
|}n|}|d u rn| 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r| j  }|j}|jr^|d u sh|dkrnd}n|d u r~d	}nd
}t||||j|||j|jd}| j	 | _
n| j tr| j  }|j}t|||||d|jd}| j| _
nr| j tr4| j  }|j}t |||||d|jd}| j!| _
n0|r| j t"r| j  j}| j  }|j}|d u s||d d u r|# }t|||||d|d}| j$| _
n|r| j t%r| j  j}| j  j}t |||||d|d}| j&| _
nt|d us|d ur(t|||dfd||}| j	 | _
n<|r4d}nd}| j  }ttd|d|td|j'd|j|S )Nzwhile parsing a nodez%found undefined tag handle {handle!r}r^   r   r   F)
flow_stylerR   TF)FT)FF)stylerR   TrY    rh   Zflowzwhile parsing a {node!s} node)nodez1expected the node content, but found {token_id!r}Ztoken_id)(r.   rD   Z
AliasTokenr;   Z
AliasEventr9   r7   r=   r%   r\   r(   ZAnchorTokenr<   ZTagTokenr$   r   r   rp   rI   BlockEntryTokenr   comment_handlingrR   ZSequenceStartEventparse_indentless_sequence_entryZScalarTokenplainScalarEventrs   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_keyrV   )r    rh   rl   r@   rA   anchortagr7   r=   Ztag_markr_   ro   ZimplicitrR   rO   ru   r   r   r   rj   f  s   
















	
	




zParser.parse_nodec                 C   s    | j  }| j|j |  S r   )r.   r;   r&   rK   r7   parse_block_sequence_entryr    r@   r   r   r   r     s    
z'Parser.parse_block_sequence_first_entryc                 C   s   | j trX| j  }| | | j ttsD| j| j | 	 S | j| _
| |jS | j ts| 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}rv   rS   )r.   rD   rw   r;   r<   BlockEndTokenr%   rK   r   rM   r(   r[   r=   rI   r   r&   r   rV   r7   SequenceEndEventrR   r\   r?   r   r   r   r     s*    




z!Parser.parse_block_sequence_entryc                 C   s   | j tr\| j  }| | | j ttttsH| j	| j
 |  S | j
| _| |jS | j  }d }| jr| jjd u r|j}|j}n| jj}| |j|j}t|||d}| j | _|S )NrS   )r.   rD   rw   r;   r<   KeyToken
ValueTokenr   r%   rK   ry   rM   r(   r[   r=   rI   r   rx   rR   r7   r#   distribute_commentr8   r   r\   )r    r@   cr7   rA   r   r   r   ry   0  s(    


z&Parser.parse_indentless_sequence_entryc                 C   s    | j  }| j|j |  S r   )r.   r;   r&   rK   r7   parse_block_mapping_keyr   r   r   r   r   N  s    
z$Parser.parse_block_mapping_first_keyc                 C   s  | j trZ| j  }| | | j tttsF| j| j	 | 
 S | j	| _| |jS | jjdkr| j tr| j	| _| | j  jS | j ts| j  }td| jd td|jd|j| j  }| | t|j|j|jd}| j | _| j  |S )NrX   zwhile parsing a block mappingr   r   rv   rS   )r.   rD   r   r;   r<   r   r   r%   rK   parse_block_mapping_valuerm   r(   r[   r=   r/   rZ   rI   r7   r   r&   r   rV   MappingEndEventrR   r\   r?   r   r   r   r   T  s2    





zParser.parse_block_mapping_keyc                 C   s   | j tr| j  }| j tr.| | n| j tsH| j|dd | j tttsn| j| j	 | 
 S | j	| _|j}|d u r| j  }|j}|rd |d g|_|d d g}| j|j|dS n| j	| _| j  }| |jS d S )NTemptyrY   r   rS   )r.   rD   r   r;   r<   r   r   r%   rK   r   rm   r(   rR   rI   _commentr[   r=   r7   )r    r@   rR   r   r   r   r   q  s*    


z Parser.parse_block_mapping_valuec                 C   s$   | j  }| j|j | jddS NT)first)r.   r;   r&   rK   r7   parse_flow_sequence_entryr   r   r   r   r|     s    
z&Parser.parse_flow_sequence_first_entryc                 C   s   | j ts|sR| j tr(| j   n*| j  }td| jd td|j	d|j
| j tr| j  }td d d|j
|jdd}| j| _|S | j ts| 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}rv   T)rq   rS   )r.   rD   FlowSequenceEndTokenFlowEntryTokenr;   rI   r   r&   r   rV   r7   r   r}   r=   %parse_flow_sequence_entry_mapping_keyr(   r%   rK   r   rk   r   rR   r\   r    r   r@   rA   r   r   r   r     s4    



z Parser.parse_flow_sequence_entryc                 C   sH   | j  }| j ttts0| j| j | 	 S | j| _
| |jS d S r   )r.   r;   rD   r   r   r   r%   rK   'parse_flow_sequence_entry_mapping_valuerk   r(   r[   r=   r   r   r   r   r     s    
z,Parser.parse_flow_sequence_entry_mapping_keyc                 C   sr   | j trP| j  }| j tts:| j| j | 	 S | j| _
| |jS n| j| _
| j  }| |jS d S r   )r.   rD   r   r;   r   r   r%   rK   %parse_flow_sequence_entry_mapping_endrk   r(   r[   r=   rI   r7   r   r   r   r   r     s    

z.Parser.parse_flow_sequence_entry_mapping_valuec                 C   s    | j | _| j }t|j|jS r   )r   r(   r.   rI   r   r7   r   r   r   r   r     s    
z,Parser.parse_flow_sequence_entry_mapping_endc                 C   s$   | j  }| j|j | jddS r   )r.   r;   r&   rK   r7   parse_flow_mapping_keyr   r   r   r   r~     s    
z#Parser.parse_flow_mapping_first_keyc                 C   s0  | j ts|sR| j tr(| j   n*| j  }td| jd td|j	d|j
| j tr| j  }| j ttts| j| j |  S | j| _| |jS nT| jjdkr| j tr| 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}rv   rX   rS   )r.   rD   FlowMappingEndTokenr   r;   rI   r   r&   r   rV   r7   r   r   r%   rK   parse_flow_mapping_valuerk   r(   r[   r=   r/   rZ   parse_flow_mapping_empty_valuer   rR   r\   r   r   r   r   r     sB    



zParser.parse_flow_mapping_keyc                 C   sr   | j trP| j  }| j tts:| j| j | 	 S | j| _
| |jS n| j| _
| j  }| |jS d S r   )r.   rD   r   r;   r   r   r%   rK   r   rk   r(   r[   r=   rI   r7   r   r   r   r   r     s    

zParser.parse_flow_mapping_valuec                 C   s   | j | _| | j jS r   )r   r(   r[   r.   rI   r7   r)   r   r   r   r     s    z%Parser.parse_flow_mapping_empty_valueNc              	   C   s   t d d dd|||dS )Nrr   rt   rS   )r{   )r    markrR   r   r   r   r[   #  s    zParser.process_empty_scalarc                 C   s   d S r   r   r    r@   ntr   r   r   r   r<   '  s    zParser.move_token_comment)FF)F)F)N)NF))r   r   r   rH   r!   r   r*   propertyr.   r/   r3   r4   r5   r'   r>   rN   rL   rW   rU   rM   rk   rm   rp   rj   r   r   ry   r   r   r   r|   r   r   r   r   r~   r   r   r   r[   r<   r   r   r   r   r   e   sP   
	

'=
 # (


&
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   )nullra   intfloatbinary	timestampZomappairssetstrseqmap)r   rp   rn   r   r   r   rp   /  s    zRoundTripParser.transform_tagNFc                 C   s$   |j |d u r| j n||d d S Nr   )Zmove_old_commentr.   rI   r   r   r   r   r<   C  s    z"RoundTripParser.move_token_comment)NF)r   r   r   __doc__rp   r<   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   s$   |j |d u r| j n||d d S r   )Zmove_new_commentr.   rI   r   r   r   r   r<   N  s    z$RoundTripParserSC.move_token_commentc                 C   s  |d u rd S |d sd S |d d |d kr8t d|| |d d |d ksPJ | jjd@ }|tkrhd S |tkrd d |d g}d |d< |S t|d D ]\}}t| jj| t	r qqd S |dkrd S |t
krd d |d d | g}|d |d  |d< |S td S )Nr   rY   z>>>dcxxx   )r   r   rx   r	   r   	enumerater0   r.   commentsr   r
   NotImplementedError)r    rR   r8   r,   r   Z_idxZcmntidxr   r   r   r   R  s2    z$RoundTripParserSC.distribute_comment)NF)r   r   r   r   r<   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   AnyDictOptionalList__all__r   r   r   r   r   r   r   r   r   <module>M   s"        L