
    c\                    r   d dl Z d dlmZmZ d dlT d dlmZmZmZm	Z	 	 g dZd	Zd
ZdZd Z G d de          Z G d d          Z G d d          Z G d de          Zd Zd Z G d d          Z G d de          Z G d de          Z G d de          Z  G d d          Z! G d d e          Z"dS )!    N)MarkedYAMLErrorCommentMark)*)_Fcheck_anchorname_charnprintnprintfF)AnyDictOptionalListUnionText)VersionType)ScannerRoundTripScannerScannerErroru   
   u    
 	   	c                      t          | i |S N)r	   )argskws     3lib/python3.11/site-packages/ruamel_yaml/scanner.pyxprintfr   0   s    DB    c                       e Zd ZdS )r   N)__name__
__module____qualname__ r   r   r   r   6   s        Dr   r   c                       e Zd Zd ZdS )	SimpleKeyc                 Z    || _         || _        || _        || _        || _        || _        d S r   )token_numberrequiredindexlinecolumnmark)selfr$   r%   r&   r'   r(   r)   s          r   __init__zSimpleKey.__init__=   s1    ( 
				r   N)r   r   r   r+   r    r   r   r"   r"   :   s#            r   r"   c                      e Zd ZdqdZed             Zd Zed             Zed             Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@drd@ZAdA ZBdB ZCdC ZDdD ZEdE ZFi dFdGdHdIdJdKdLdMdMdMdNdOdPdQdRdSdTdUdVdWdXdXdYdYdZdZd[d[d\d]d^d_d`dadbdciZGdddedfdgZHdh ZIdi ZJdj ZKdk ZLdl ZMdm ZNdn ZOdo ZPdp ZQdS )sr   Nc                     || _         | j         "t          | j         dd          | | j         _        |                                  d| _        d| _        dS )zInitialize the scanner.N_scannerF)loadergetattrr.   reset_scanner
first_timeyaml_version)r*   r/   s     r   r+   zScanner.__init__H   s[     ; 	(wt{J'M'M 	(#'DK  r   c                 *    t          | j                  S r   )lenflow_contextr*   s    r   
flow_levelzScanner.flow_level[   s     4$%%%r   c                     d| _         g | _        g | _        |                                  d| _        d| _        g | _        d| _        i | _        d S )NFr   T)	doner6   tokensfetch_stream_starttokens_takenindentindentsallow_simple_keypossible_simple_keysr7   s    r   r1   zScanner.reset_scanner`   sh     	   	!!!   , !% %'!!!r   c                     	 | j         S # t          $ rB t          | j        d          r| j        j        | _         n| j        j        | _         | j         cY S w xY wNtyp)_scanner_readerAttributeErrorhasattrr/   reader_readerr7   s    r   rI   zScanner.reader   sk    	('' 	( 	( 	(t{E** ;'+{'9$$'+{':$''''	(s   	 A	AAc                 f    t          | j        d          r| j        j        j        S | j        j        S rD   )rH   r/   resolverprocessing_versionr7   s    r   scanner_processing_versionz"Scanner.scanner_processing_version   s1     4;&& 	;;'::{--r   c                     |                                  r(|                                  |                                  (t          | j                  dk    r'|sdS |D ] }t	          | j        d         |          r dS !dS Nr   TF)need_more_tokensfetch_more_tokensr5   r<   
isinstancer*   choiceschoices      r   check_tokenzScanner.check_token   s     ##%% 	%""$$$ ##%% 	%t{a 	  t!    dk!nf55  44 ur   c                     |                                  r(|                                  |                                  (t          | j                  dk    r| j        d         S d S Nr   )rQ   rR   r5   r<   r7   s    r   
peek_tokenzScanner.peek_token   sm     ##%% 	%""$$$ ##%% 	%t{a 	";q>!	" 	"r   c                    |                                  r(|                                  |                                  (t          | j                  dk    r*| xj        dz  c_        | j                            d          S d S Nr      )rQ   rR   r5   r<   r>   popr7   s    r   	get_tokenzScanner.get_token   s     ##%% 	%""$$$ ##%% 	%t{a 	&";??1%%%	& 	&r   c                     | j         rdS t          | j                  dk    rdS |                                  |                                 | j        k    rdS dS )NFr   T)r;   r5   r<   stale_possible_simple_keysnext_possible_simple_keyr>   r7   s    r   rQ   zScanner.need_more_tokens   sg    9 	5t{q  	4 	'')))((**d.?? 	4ur   c                     t           r   )NotImplementedError)r*   comments     r   fetch_commentzScanner.fetch_comment   s    !!r   c                    |                                  }||                     |          S |                                  |                     | j        j                   | j                                        }|dk    r|                                 S |dk    r(|                                 r| 	                                S |dk    r(| 
                                r|                                 S |dk    r(|                                 r|                                 S |dk    r|                                 S |dk    r|                                 S |dk    r|                                 S |dk    r|                                 S |d	k    r|                                 S |dk    r(|                                 r|                                 S |d
k    r(|                                 r|                                 S |dk    r(|                                 r|                                 S |dk    r|                                 S |dk    r|                                 S |dk    r|                                 S |dk    r| j        s|                                 S |dk    r| j        s|                                 S |dk    r|                                 S |dk    r|                                  S | !                                r| "                                S tG          dd tI          d|          | j        %                                          )N %-.[{]},?:r   &!|>'"z!while scanning for the next tokenz2found character {ch!r} that cannot start any tokench)&scan_to_next_tokenrf   ra   unwind_indentrI   r(   peekfetch_stream_endcheck_directivefetch_directivecheck_document_startfetch_document_startcheck_document_endfetch_document_endfetch_flow_sequence_startfetch_flow_mapping_startfetch_flow_sequence_endfetch_flow_mapping_endfetch_flow_entrycheck_block_entryfetch_block_entry	check_key	fetch_keycheck_valuefetch_valuefetch_aliasfetch_anchor	fetch_tagr8   fetch_literalfetch_foldedfetch_singlefetch_doublecheck_plainfetch_plainr   r   get_mark)r*   re   rz   s      r   rR   zScanner.fetch_more_tokens   s    ))++ 	/%%g...''))) 	4;-... [ : 	+((*** 9 	*--// 	*''))) 9 	/2244 	/,,... 9 	-0022 	-**,,, 9 	411333 9 	300222 9 	2//111 9 	1..000 9 	+((*** 9 	,//11 	,))+++ 9 	$)) 	$>>### 9 	&))++ 	&##%%% 9 	&##%%% 9 	'$$&&& 9 	$>>### 9 	(T_ 	(%%''' 9 	'T_ 	'$$&&& 9 	'$$&&& 9 	'$$&&&  	&##%%% /CKKKK  ""	
 
 	
r   c                 `    d }| j         D ]#}| j         |         }||j        |k     r|j        }$|S r   )rB   r$   )r*   min_token_numberlevelkeys       r   rb   z Scanner.next_possible_simple_keyL  sQ      . 	4 	4E+E2C 43+;>N+N 4#&#3 r   c                 "   t          | j                  D ]y}| j        |         }|j        | j        j        k    s| j        j        |j        z
  dk    r=|j        r.t          d|j        d| j                                                  | j        |= zd S )Ni   while scanning a simple keycould not find expected ':')	listrB   r'   rI   r&   r%   r   r)   r   )r*   r   r   s      r   ra   z"Scanner.stale_possible_simple_keys\  s     $344 
	5 
	5E+E2Cx4;++ 5t{/@39/Lt/S 5< &55,,..	   -e4
	5 
	5r   c           	      b   | j          o| j        | j        j        k    }| j        r|                                  | j        t          | j                  z   }t          ||| j        j
        | j        j        | j        j        | j                                                  }|| j        | j         <   d S d S r   )r8   r?   rI   r(   rA   remove_possible_simple_keyr>   r5   r<   r"   r&   r'   r   rB   )r*   r%   r$   r   s       r   save_possible_simple_keyz Scanner.save_possible_simple_keyp  s     &L4;$+:L+L   	=++---,s4;/?/??L! "$$&& C :=D%do666	= 	=r   c                     | j         | j        v rV| j        | j                  }|j        r.t          d|j        d| j                                                  | j        | j         = d S d S )Nr   r   )r8   rB   r%   r   r)   rI   r   )r*   r   s     r   r   z"Scanner.remove_possible_simple_key  s|     ?d77 	;+DO<C| "1H1K((**	   )$/:::	; 	;r   c                     t          | j                  rd S | j        |k    rl| j                                        }| j                                        | _        | j                            t          ||                     | j        |k    jd S d S r   )
boolr8   r?   rI   r   r@   r^   r<   appendBlockEndToken)r*   r(   r)   s      r   r|   zScanner.unwind_indent  s         	F kF" 	:;''))D,**,,DKK}T488999 kF" 	: 	: 	: 	: 	:r   c                 l    | j         |k     r(| j                            | j                    || _         dS dS )NTF)r?   r@   r   )r*   r(   s     r   
add_indentzScanner.add_indent  s<     ; 	L,,, DK4ur   c                     | j                                         }| j                            t	          ||| j         j                             d S )N)encoding)rI   r   r<   r   StreamStartTokenr   r*   r)   s     r   r=   zScanner.fetch_stream_start  sH    
 {##%%+D$AUVVVWWWWWr   c                    |                      d           |                                  d| _        i | _        | j                                        }| j                            t          ||                     d| _	        d S )Nr:   FT)
r|   r   rA   rB   rI   r   r<   r   StreamEndTokenr;   r   s     r   r~   zScanner.fetch_stream_end  sx     	2''))) %$&!{##%%>$55666			r   c                     |                      d           |                                  d| _        | j                            |                                            d S )Nr:   F)r|   r   rA   r<   r   scan_directiver7   s    r   r   zScanner.fetch_directive  s^     	2 	''))) % 	4..0011111r   c                 :    |                      t                     d S r   )fetch_document_indicatorDocumentStartTokenr7   s    r   r   zScanner.fetch_document_start  s    %%&899999r   c                 :    |                      t                     d S r   )r   DocumentEndTokenr7   s    r   r   zScanner.fetch_document_end  s    %%&677777r   c                 F   |                      d           |                                  d| _        | j                                        }| j                            d           | j                                        }| j                             |||                     d S )Nr:   F   )r|   r   rA   rI   r   forwardr<   r   )r*   
TokenClass
start_markend_marks       r   r   z Scanner.fetch_document_indicator  s     	2 	''))) % [))++
A;''))::j(;;<<<<<r   c                 >    |                      t          d           d S )Nrl   to_push)fetch_flow_collection_startFlowSequenceStartTokenr7   s    r   r   z!Scanner.fetch_flow_sequence_start  s"    (()?(MMMMMr   c                 >    |                      t          d           d S )Nrm   r   )r   FlowMappingStartTokenr7   s    r   r   z Scanner.fetch_flow_mapping_start  s"    (()>(LLLLLr   c                 N   |                                   | j                            |           d| _        | j                                        }| j                                         | j                                        }| j                             |||                     d S NT)r   r6   r   rA   rI   r   r   r<   )r*   r   r   r   r   s        r   r   z#Scanner.fetch_flow_collection_start  s     	%%'''  ))) $[))++
;''))::j(;;<<<<<r   c                 :    |                      t                     d S r   )fetch_flow_collection_endFlowSequenceEndTokenr7   s    r   r   zScanner.fetch_flow_sequence_end  s    &&';<<<<<r   c                 :    |                      t                     d S r   )r   FlowMappingEndTokenr7   s    r   r   zScanner.fetch_flow_mapping_end  s    &&':;;;;;r   c                 p   |                                   	 | j                                        }n# t          $ r Y nw xY wd| _        | j                                        }| j                                         | j                                        }| j        	                     |||                     d S NF)
r   r6   r^   
IndexErrorrA   rI   r   r   r<   r   )r*   r   poppedr   r   s        r   r   z!Scanner.fetch_flow_collection_end  s     	'')))	&**,,FF 	 	 	 D	
 !&[))++
;''))::j(;;<<<<<s   0 
==c                 "   d| _         |                                  | j                                        }| j                                         | j                                        }| j                            t          ||                     d S r   )rA   r   rI   r   r   r<   r   FlowEntryToken)r*   r   r   s      r   r   zScanner.fetch_flow_entry+  s~     !%'')))[))++
;''))>*h??@@@@@r   c                 T   | j         s| j        s)t          d d d| j                                                  |                     | j        j                  rA| j                                        }| j                            t          ||                     n	 d| _        | 
                                 | j                                        }| j                                         | j                                        }| j                            t          ||                     d S )Nz%sequence entries are not allowed hereT)r8   rA   r   rI   r   r   r(   r<   r   BlockSequenceStartTokenr   r   BlockEntryTokenr*   r)   r   r   s       r   r   zScanner.fetch_block_entry7  s     	( "$ GI]I]I_I_   t{122 H{++--""#:4#F#FGGG  $''))) [))++
;''))?:x@@AAAAAr   c                 \   | j         s| j        s)t          d d d| j                                                  |                     | j        j                  rA| j                                        }| j                            t          ||                     | j          | _        | 
                                 | j                                        }| j                                         | j                                        }| j                            t          ||                     d S )Nz!mapping keys are not allowed here)r8   rA   r   rI   r   r   r(   r<   r   BlockMappingStartTokenr   r   KeyTokenr   s       r   r   zScanner.fetch_keyS  s     	G ( "$ CT[EYEYE[E[  
 t{122 G{++--""#9$#E#EFFF %)O 3 	''))) [))++
;''))8J99:::::r   c                    | j         | j        v r| j        | j                  }| j        | j         = | j                            |j        | j        z
  t          |j        |j                             | j         sZ|                     |j	                  r@| j                            |j        | j        z
  t          |j        |j                             d| _        n| j         s0| j        s)t          d d d| j                                                  | j         s`|                     | j        j	                  rA| j                                        }| j                            t          ||                     | j          | _        |                                  | j                                        }| j                                         | j                                        }| j                            t%          ||                     d S )NFz#mapping values are not allowed here)r8   rB   r<   insertr$   r>   r   r)   r   r(   r   rA   r   rI   r   r   r   r   
ValueToken)r*   r   r)   r   r   s        r   r   zScanner.fetch_valueo  s    ?d77 2	.+DO<C)$/:K 4#44hsx6R6R   ? ??3:.. K&&(4+<<.sxBB   %*D!! ? 
 , &=,,..	   ? K??4;#566 K;//11DK&&'=dD'I'IJJJ )-$7D! ++--- [))++
;'')):j(;;<<<<<r   c                     |                                   d| _        | j                            |                     t
                               d S r   )r   rA   r<   r   scan_anchor
AliasTokenr7   s    r   r   zScanner.fetch_alias  sH     	%%''' %4++J7788888r   c                     |                                   d| _        | j                            |                     t
                               d S r   )r   rA   r<   r   r   AnchorTokenr7   s    r   r   zScanner.fetch_anchor  sH     	%%''' %4++K8899999r   c                     |                                   d| _        | j                            |                                            d S r   )r   rA   r<   r   scan_tagr7   s    r   r   zScanner.fetch_tag  sB     	%%''' %4==??+++++r   c                 2    |                      d           d S )Nru   stylefetch_block_scalarr7   s    r   r   zScanner.fetch_literal      c*****r   c                 2    |                      d           d S )Nrv   r   r   r7   s    r   r   zScanner.fetch_folded  r   r   c                     d| _         |                                  | j                            |                     |                     d S r   )rA   r   r<   r   scan_block_scalarr*   r   s     r   r   zScanner.fetch_block_scalar  sH     !%'')))411%8899999r   c                 2    |                      d           d S )Nrw   r   fetch_flow_scalarr7   s    r   r   zScanner.fetch_single      S)))))r   c                 2    |                      d           d S )Nrx   r   r   r7   s    r   r   zScanner.fetch_double  r   r   c                     |                                   d| _        | j                            |                     |                     d S r   )r   rA   r<   r   scan_flow_scalarr   s     r   r   zScanner.fetch_flow_scalar  sH     	%%''' %4007788888r   c                     |                                   d| _        | j                            |                                            d S r   )r   rA   r<   r   
scan_plainr7   s    r   r   zScanner.fetch_plain  sF     	%%''' !&4??,,-----r   c                 *    | j         j        dk    rdS d S )Nr   T)rI   r(   r7   s    r   r   zScanner.check_directive  s      ;" 	4tr   c                     | j         j        dk    rA| j                             d          dk    r#| j                             d          t          v rdS d S )Nr   r   ---TrI   r(   prefixr}   _THE_END_SPACE_TABr7   s    r   r   zScanner.check_document_start  Z     ;" 	{!!!$$- $+2B2B12E2EI[2[ ttr   c                     | j         j        dk    rA| j                             d          dk    r#| j                             d          t          v rdS d S )Nr   r   ...Tr   r7   s    r   r   zScanner.check_document_end  r   r   c                 D    | j                             d          t          v S )Nr]   )rI   r}   r   r7   s    r   r   zScanner.check_block_entry  s      {""&888r   c                 p    t          | j                  rdS | j                            d          t          v S )NTr]   )r   r8   rI   r}   r   r7   s    r   r   zScanner.check_key  s7        	4{""&888r   c                    | j         dk    rt          | j                  rdS nt          | j                  r| j        d         dk    r$| j                            d          t          vrdS nJ| j        rCt          | j        d         t                    r#| j                            d          t          vrdS dS | j                            d          t          v S )Nr]   r]   Tr:   rl   r]   F)
rN   r   r8   r6   rI   r}   r   r<   rS   r   r7   s    r   r   zScanner.check_value  s     *f4 	DO$$ t DO$$ $R(C/ %{''**2DD %$u%[ %ZB%L%L %{''**2DD %$ut{""&888r   c                 j   | j         j        } |            }| j        dk    r(|dvp# |d          t          vo|dk    p| j         o|dv S |dvrdS  |d          }|dk    r|t          vrdS |dk    rt          | j                  r|t          vrdS  |d          t          vo|dk    p| j         o|dv S )Nr  u      	
  -?:,[]{}#&*!|>'"%@`r]   rj   z?:Trr   )rI   r}   rN   r   r8   r   
_SPACE_TAB)r*   srprz   ch1s       r   r   zScanner.check_plain.  s    kSUU*f4 	LL A00 H3YFt#6#E2:
 DD 	4c!ff9 	$66 	49 	do.. 	3j3H 	4s1vv// 
#I=do-<"*	
r   c                    | j         j        }| j         j        }| j         j        dk    r |            dk    r
 |             d}t          }|s} |            dk    r |              |            dk     |            dk    r" |            |vr |              |            |v|                                 r| j        sd| _        nd}|}d S )Nr      ﻿F #T)rI   r}   r   r&   _THE_ENDscan_line_breakr8   rA   )r*   r  srffound_the_ends        r   r{   zScanner.scan_to_next_tokenS  s   ( kk!;! 	cceex&7 	CEEE 
	#%%3,  #%%3, suu| cee8+ CEEE cee8+ ##%%  1,0D)  
	 tr   c                 R   | j         j        }| j         j        }| j                                         } |             |                     |          }d }|dk    r/|                     |          }| j                                         }nz|dk    r/|                     |          }| j                                         }nE| j                                         } |            t          vr |              |            t          v|                     |           t          ||||          S )NYAMLTAG)
rI   r}   r   r   scan_directive_namescan_yaml_directive_valuescan_tag_directive_valuer  scan_directive_ignored_lineDirectiveToken)r*   r  r  r   namevaluer   s          r   r   zScanner.scan_directivez  s$    kk![))++
''
336> 		22:>>E{++--HHU] 	11*==E{++--HH{++--H#%%x'  #%%x' ((444dE:x@@@r   c                    d}| j         j        } ||          }d|cxk    rdk    s$n d|cxk    rdk    sn d|cxk    rdk    sn |dv rA|d	z  } ||          }d|cxk    rdk    n d|cxk    rdk    ,n d|cxk    rdk    ;n |dv A|s8t          d
|t          d|          | j                                                   | j                             |          }| j                             |            |            }|dvr8t          d
|t          d|          | j                                                   |S )Nr   09AZazz-_:.r]   while scanning a directive:expected alphabetic or numeric character, but found {ch!r}ry        
  )rI   r}   r   r   r   r   r   )r*   r   lengthr  rz   r  s         r   r  zScanner.scan_directive_name  s3    kS[[R 	 	 	 	3 	 	 	 	# 	 	 	 	s 	 	 	 	cR 	 	 	 	3 	 	 	 	"PV, 	aKFVB R 	 	 	 	3 	 	 	 	# 	 	 	 	s 	 	 	 	cR 	 	 	 	3 	 	 	 	"PV, 	  	,OTVWWW$$&&	   ""6**F###SUU.. 	,OTVWWW$$&&	   r   c           	      :   | j         j        }| j         j        } |            dk    r |              |            dk    |                     |          } |            dk    r@t	          d|t          d |                      | j                                                    |             |                     |          } |            dvr@t	          d|t          d |                      | j                                                   ||f| _        | j        S )Nr
  rk   r"  z/expected a digit or '.', but found {srp_call!r}srp_callr$  )rI   r}   r   scan_yaml_directive_numberr   r   r   r3   )r*   r   r  r  majorminors         r   r  z!Scanner.scan_yaml_directive_value  s9    kk!ceesl 	CEEE ceesl 	//
;;355C< 	,DssuuUUU$$&&	   	//
;;35511 	,DssuuUUU$$&&	   #EN  r   c                    | j         j        }| j         j        } |            }d|cxk    rdk    s:n t          d|t	          d|          | j                                                   d}d ||          cxk    rdk    r n n|dz  }d ||          cxk    rdk    n t          | j                             |                    } ||           |S )Nr  r  r"  z"expected a digit, but found {ch!r}ry   r   r]   )rI   r}   r   r   r   r   intr   )r*   r   r  r  rz   r%  r  s          r   r)  z"Scanner.scan_yaml_directive_number  s@    kk!SUUr 	 	 	 	S 	 	 	 	,7B???$$&&	   SS[[ 	 	 	 	C 	 	 	 	 	aKF SS[[ 	 	 	 	C 	 	 	 	DK&&v..//Fr   c                 &   | j         j        }| j         j        } |            dk    r |              |            dk    |                     |          } |            dk    r |              |            dk    |                     |          }||fS )Nr
  )rI   r}   r   scan_tag_directive_handlescan_tag_directive_prefix)r*   r   r  r  handler   s         r   r  z Scanner.scan_tag_directive_value  s     kk!ceesl 	CEEE ceesl 	//
;;ceesl 	CEEE ceesl 	//
;;r   c                     |                      d|          }| j                                        }|dk    r8t          d|t	          d|          | j                                                  |S )N	directiver
  r"  expected ' ', but found {ch!r}ry   )scan_tag_handlerI   r}   r   r   r   r*   r   r  rz   s       r   r/  z!Scanner.scan_tag_directive_handle  sy     $$[*==[9 	,3;;;$$&&	   r   c                     |                      d|          }| j                                        }|dvr8t          d|t	          d|          | j                                                  |S )Nr3  r$  r"  r4  ry   )scan_tag_urirI   r}   r   r   r   r6  s       r   r0  z!Scanner.scan_tag_directive_prefix  s{     !!+z::[.. 	,3;;;$$&&	   r   c                    | j         j        }| j         j        } |            dk    r |              |            dk     |            dk    r, |            t          vr |              |            t          v |            }|t          vr8t	          d|t          d|          | j                                                   |                                  d S )Nr
  r  r"  4expected a comment or a line break, but found {ch!r}ry   rI   r}   r   r  r   r   r   r  )r*   r   r  r  rz   s        r   r  z#Scanner.scan_directive_ignored_line  s     kk!ceesl 	CEEE ceesl 	355C< 	#%%x'  #%%x' SUUX 	,IbQQQ$$&&	   	r   c                    | j         j        }| j                                         } |            }|dk    rd}nd}| j                                          d} ||          }t	          |          r|dz  } ||          }t	          |          |sGt          t          d|          |t          d|	          | j                                                   | j                             |          }| j                             |           |d
vrGt          t          d|          |t          d|	          | j                                                   | j                                         }	 ||||	          S )Nr   aliasanchorr   r]   while scanning an {name!s}r  r#  ry   u     	
  ?:,[]{}%@`)rI   r}   r   r   r   r   r   r   )
r*   r   r  r   	indicatorr  r%  rz   r  r   s
             r   r   zScanner.scan_anchor  s    k[))++
CEE	 	DDDS[[ $B'' 	aKFVB $B'' 	  	/d;;;OTVWWW$$&&	   ""6**F### :: 	/d;;;OTVWWW$$&&	   ;''))z%X666r   c           	         | j         j        }| j                                         } |d          }|dk    rd }| j                             d           |                     d|          } |            dk    r@t          d|t          d |                      | j                                                   | j                                          n|t          v rd }d	}| j                                          nqd}d
}|dvr|d	k    rd}n|dz  } ||          }|dvd	}|r|                     d|          }nd	}| j                                          |                     d|          } |            }|dvr8t          d|t          d|          | j                                                   ||f}| j                                         }	t          |||	          S )Nr]   <   tagrv   zwhile parsing a tagz$expected '>', but found {srp_call!r}r'  rt   Fr$  Tzwhile scanning a tagr4  ry   )
rI   r}   r   r   r8  r   r   r   r5  TagToken)
r*   r  r   rz   r1  suffixr%  
use_handler  r   s
             r   r   zScanner.scan_tagG  s.    k[))++
SVV9 	:FK"""&&uj99Fsuu| ")=NNNK((**	   K!!!!%% 	:FFK!!!!FJ55 !9 !%J!S[[ 55 ! F &--eZ@@##%%%&&uj99FSUU.. 	&3;;;$$&&	    ;''))z8444r   Fc                 X	   | j         j        }|dk    rd}nd}g }| j                                         }| j                                          |                     |          \  }}|                     |          }	| j        dz   }
|V|
dk     r'|dvs!| j        dk    rt          | j	        dd          rd}
| 
                                \  }}}t          |
|          }n(|
dk     rd}
|
|z   dz
  }|                     |          \  }}d}| j         j        |k    r |            d	k    r|                    |            |            d
v}d} ||          t          vr|dz  } ||          t          v|                    | j                             |                     | j                             |           |                                 }|                     |          \  }}|dv r/|
dk    r)|                                 s|                                 rn| j         j        |k    rq |            d	k    rc|r|r|dk    r|                    d           |r,|dk    r&|r$ |            d
vr|s|                    d           n|                    |           nn| j         j        |k    r |            d	k    g }|dv r|                    |           |du r|                    |           n|dv r|                    |           t+          d                    |          d|||          }| j	        0t          | j	        dd          }||	|                    |	g           t1          |          dk    r3| j	        ct          | j	        dd           }|K|j        t1          |          z
  }|D ]1}|d         dk    sJ | j                            |d|           |dz  }2|                                 }|rB|                    d|d         j        z  |d         z              |                                 }|B| j	        jt          | j	        dd          }|R| j                                         }t;          d                    |          ||          }|                    |           |S )Nrv   TFr]   z|>r  0top_level_block_style_scalar_no_indent_error_1_1 rh   r   r   
r
  r   r   comment_handlingr:   )rI   r}   r   r   scan_block_scalar_indicatorsscan_block_scalar_ignored_liner?   rN   r0   r/   scan_block_scalar_indentationmaxscan_block_scalar_breaksr(   extendr  r   r   r  r   r   ScalarTokenjoinadd_pre_commentsr5   r'   commentsadd_blank_liner{   CommentTokenadd_post_comment)r*   r   rtr  foldedchunksr   chomping	incrementblock_scalar_comment
min_indentbreaks
max_indentr   r?   
line_breakleading_non_spacer%  trailingtokencomment_handlerr'   xre   comment_end_marks                            r   r   zScanner.scan_block_scalary  s    kC< 	FFF[))++
 	"??
KK)#BB:NN [1_
 	EA~ T!3v= K!SUZ  
+/+M+M+O+O(FJZ00FFA~ 
)+a/F#<<VDDFH
 k F* )	ssuu} )	MM&!!! #U 2F#f++X- ! #f++X- MM$+,,V44555K'''--//J#<<VDDFH} q  ,,.. $2I2I2K2K {!V+    (& (Z4%7 (MM$''' .jD0 .5F .3355X]K] .! +c***MM*---- S k F* )	ssuu} )	Z |# 	&MM*%%%t 	$MM&!!!!& 	$OOF### BGGFOOUJ%PP; 	C%dk3EuMMO C' C**,@+ABBBx==1 	4{ "")$+7I4"P"P" "#=3x==8D% " " u},,,44Q4@@@	--//G 4gaj&7 7'!* DEEE1133  4 { 4")$+7I5"Q"Q" 4 (,{';';'='=$*2778+<+<hHXYYG**7333r   c                     | j         j        }d }d } |            }|dv r|dk    rd}nd}| j                                           |            }|dv rWt          |          }|dk    r)t	          d|d| j                                                   | j                                          n|dv rt          |          }|dk    r)t	          d|d| j                                                   | j                                           |            }|dv r$|dk    rd}nd}| j                                           |            }|d	vr8t	          d|t          d
|          | j                                                   ||fS )Nz+-+TF
0123456789r   while scanning a block scalarz<expected indentation indicator in the range 1-9, but found 0r$  z=expected chomping or indentation indicators, but found {ch!r}ry   )rI   r}   r   r-  r   r   r   )r*   r   r  r_  r`  rz   s         r   rO  z$Scanner.scan_block_scalar_indicators  s    k	SUU: !	&Sy ! K!!!B\! 	&GG	> &7"Y,,..	   ##%%%< 	&BIA~ "3UK((**	   K!!!BTz &9 %#HH$H##%%%SUU.. 	/RWYZZZ$$&&	   ""r   c                    | j         j        }| j         j        }d}d } |            dk    r%| |            z  } |              |            dk    % |            dk    r;|} |            t          vr(| |            z  } |              |            t          v( |            }|t          vr8t	          d|t          d|          | j                                                   |                                  |S )NrK  r
  r  ro  r:  ry   r;  )r*   r   r  r  r   re   rz   s          r   rP  z&Scanner.scan_block_scalar_ignored_line(  s+    kk!ceesl 	cceeOFCEEE ceesl 	 355C< 	G#%%x' 3355  #%%x'  SUUX 	/IbQQQ$$&&	   	r   c                    | j         j        }| j         j        }g }d}| j                                         } |            dv r |            dk    rA|                    |                                            | j                                         }n& |             | j         j        |k    r| j         j        } |            dv |||fS )Nr       
  r
  )rI   r}   r   r   r   r  r(   )r*   r  r  r^  rd  r   s         r   rQ  z%Scanner.scan_block_scalar_indentationB  s     kk!
;''))cee.. 	4suu| 4d2244555;//11;%
2 4!%!3J cee.. 	4 z8++r   c                 8   g }| j         j        }| j         j        }| j                                         }| j         j        |k     r6 |            dk    r( |             | j         j        |k     r |            dk    ( |            dv r|                    |                                            | j                                         }| j         j        |k     r6 |            dk    r( |             | j         j        |k     r |            dk    ( |            dv ||fS )Nr
  
   
  )rI   r}   r   r   r(   r   r  )r*   r?   r^  r  r  r   s         r   rS  z Scanner.scan_block_scalar_breaksT  s>    kk!;''))k 6) 	cceesl 	CEEE k 6) 	cceesl 	cee-- 	MM$..00111{++--H+$v- ##%%3,  +$v- ##%%3,  cee-- 	
 xr   c                    |dk    rd}nd}| j         j        }g }| j                                         } |            }| j                                          |                    |                     ||                      |            |k    r`|                    |                     ||                     |                    |                     ||                      |            |k    `| j                                          | j                                         }t          d                    |          d|||          S )Nrx   TFrK  )	rI   r}   r   r   rT  scan_flow_scalar_non_spacesscan_flow_scalar_spacesrU  rV  )r*   r   doubler  r^  r   quoter   s           r   r   zScanner.scan_flow_scalard  s4    C< 	FFFk[))++
d66vzJJKKKceeun 	PMM$66vzJJKKKMM$::6:NNOOO ceeun 	P 	;''))2776??E:xOOOr   r  rh   r   rM  bt	nrL  vfrer
  rx   /\N   _    Lu    Pu    rD        )rj  uUc                 *   g }| j         j        }| j         j        }	 d} ||          dvr|dz  } ||          dv|dk    r8|                    | j                             |                      ||            |            }|s7|dk    r1 |d          dk    r"|                    d            |d           n|r|dk    s|s%|dv r!|                    |            |             n|r|dk    r |              |            }|| j        v r,|                    | j        |                     |             nS|| j        v r| j        |         } |             t          |          D ]Q} ||          d	vrBt          d
|t          d| ||                    | j         
                                          Rt          | j                             |          d          }	|                    t          |	                      ||           n||dv r>|                                  |                    |                     ||                     n:t          d
|t          d|          | j         
                                          |S y)NTr   u    
'"\ 	  r]   rw   rD  z"\r  0123456789ABCDEFabcdefz%while scanning a double-quoted scalarzQexpected escape sequence of {length:d} hexdecimal numbers, but found {srp_call!r})r%  r(     u
   
  z%found unknown escape character {ch!r}ry   )rI   r}   r   r   r   ESCAPE_REPLACEMENTSESCAPE_CODESranger   r   r   r-  chrr  rT  scan_flow_scalar_breaks)
r*   rx  r   r^  r  r  r%  rz   kcodes
             r   rv  z#Scanner.scan_flow_scalar_non_spaces  s    kk!2	F#f++%EE ! #f++%EE { dk0088999FB *bCi *CCFFcM *c"""A 'R3Y ' '2; 'b!!! $B$J $SUU11 MM$":2">???CEEEE4,, !.r2FCEEE"6]]  3q66)AA ". G * "%F+1-0SVV	!" !" !" !% 4 4 6 6
# 
# 
 t{11&992>>DMM#d)),,,CKKKK11 	((***MM$">">vz"R"RSSSS&?"BrJJJ,,..	   e2	r   c                 V   | j         j        }g }d} ||          dv r|dz  } ||          dv | j                             |          }| j                             |            |            }|dk    r)t	          d|d| j                                                   |dv rs|                                 }|                     ||          }	|dk    r|                    |           n|	s|                    d	           |	                    |	           n|                    |           |S )
Nr   r   r]   rh   while scanning a quoted scalarzfound unexpected end of streamrt  rL  r
  )
rI   r}   r   r   r   r   r  r  r   rT  )
r*   rx  r   r  r^  r%  whitespacesrz   re  rc  s
             r   rw  zScanner.scan_flow_scalar_spaces  sY    kc&kkU" 	aKF c&kkU" 	k((00F###SUU: 	'00$$&&	   )) 		'--//J11&*EEFT! #j)))) #c"""MM&!!!!MM+&&&r   c                    g }| j         j        }| j         j        }	 | j                             d          }|dk    s|dk    r; |d          t          v r)t          d|d| j                                                    |            dv r |              |            dv  |            dv r(|                    |                                            n|S )	NTr   r   r   r  z#found unexpected document separatorr   rt  )	rI   r}   r   r   r   r   r   r   r  )r*   rx  r   r^  r  r  r   s          r   r  zScanner.scan_flow_scalar_breaks  s    kk!	 [''**F% 6U? ABT8T "49K((**	   #%%5.  #%%5. suu.. d22445555!	r   c                 :   | j         j        }| j         j        }g }| j                                         }|}| j        dz   }g }	 d} |            dk    rn}	  ||          }	|	dk    r ||dz             t
          vrnI|	dk    r| j        dk    rn7|	t
          v s-| j        s|	dk    r ||dz             t
          v s| j        r|	dv rn|dz  }v| j        rK|	dk    rE ||dz             d	vr5 ||           t          d
|d| j                                         d          |dk    rnd| _	        |
                    |           |                    | j                             |                      ||           | j                                         }|                     ||          }|r% |            dk    s| j        s| j         j        |k     rnt          d                    |          d||          }
| j        t%          | j        dd          }|K|rH|d         dk    r<t'          d                    |          dz   ||          }|
                    |           n:|dur6|j        dz   }|D ])}	|	dk    r!| j                            dd|           |dz  }*|
S )Nr]   Tr   r  rr   rq   r  z,:?[]{}u     	
  ,[]{}zwhile scanning a plain scalarzfound unexpected ':'zGPlease check http://pyyaml.org/wiki/YAMLColonInFlowContext for details.FrK  rN  rL  )rI   r}   r   r   r?   r   rN   r8   r   rA   rT  r   r   scan_plain_spacesr(   rU  rV  r/   r0   rZ  r[  r'   rX  rY  )r*   r  r  r^  r   r   r?   spacesr%  rz   rh  ri  re   r'   s                 r   r   zScanner.scan_plain  s\    kk![))++
q
 2	Fsuu| S[[9 VaZ8J!J 3Y 4#Bf#L ,,	 !O	 #I		
  C
OO/AA	 	 -/)O	 !!& #I C
OO+KK
 F"3*K((**#   { $)D!MM&!!!MM$+,,V44555CKKK{++--H++FJ??F355C<  -1K,>,G
 e2	h BGGFOOT:xHH ; 	"%dk3EuMMO 
" 4fQi4/ 4*2776??T+A:xXXG**7333 - "!*  " "BTz "44T1dCCC	r   c                    | j         j        }| j         j        }g }d} ||          dv r|dz  } ||          dv | j                             |          }| j                             |            |            }|dv r2|                                 }	d| _        | j                             d          }
|
dk    s|
dk    r |d          t          v rd S g } |            d	v r |            dk    r |             na|                    |                                            | j                             d          }
|
dk    s|
dk    r |d          t          v rd S  |            d	v |	d
k    r|                    |	           n|s|                    d           |                    |           n|r|                    |           |S )Nr   r
  r]   rt  Tr   r   r   rr  rL  )	rI   r}   r   r   r  rA   r   r   rT  )r*   r?   r   r  r  r^  r%  r  rz   re  r   rc  s               r   r  zScanner.scan_plain_spaces]  s   
 kk!c&kkS  	aKF c&kkS  	k((00F###SUU'' 	'--//J$(D![''**F% 6U? ABT8T F#%%22 355C< CEEEEMM$"6"6"8"8999![//22F% 6U? AJ\@\  #%%22  T! #j)))) #c"""MM&!!!! 	'MM+&&&r   c                    | j         j        } |            }|dk    rGt          t          d|          |t          d|          | j                                                   d} ||          }|dk    rd|cxk    rd	k    s$n d
|cxk    rdk    sn d|cxk    rdk    sn |dv rA|dz  } ||          }d|cxk    rd	k    n d
|cxk    rdk    ,n d|cxk    rdk    ;n |dv A|dk    ra| j                             |           t          t          d|          |t          d|          | j                                                   |dz  }| j                             |          }| j                             |           |S )Nrt   r?  r@  zexpected '!', but found {ch!r}ry   r]   r
  r  r  r  r  r   r!  z-_)rI   r}   r   r   r   r   r   )r*   r  r   r  rz   r%  r  s          r   r5  zScanner.scan_tag_handle  sz   
 kSUU9 	/d;;;3;;;$$&&	   S[[9 	 ! ! ! !s ! ! ! !cR ! ! ! !3 ! ! ! !# ! ! ! !s ! ! ! !bTXj !!S[[  ! ! ! !s ! ! ! !cR ! ! ! !3 ! ! ! !# ! ! ! !s ! ! ! !bTXj ! Sy ##F+++"3$???7B???K((**	   aKF""6**F###r   c                    | j         j        }g }d} ||          }d|cxk    rdk    s5n d|cxk    rdk    s&n d|cxk    rdk    sn |dv s| j        d	k    r|d
k    r|dk    rs|                    | j                             |                     | j                             |           d}|                    |                     ||                     n|dz  } ||          }d|cxk    rdk    n d|cxk    rdk    n d|cxk    rdk    n |dv | j        d	k    r|d
k    |dk    rI|                    | j                             |                     | j                             |           d}|sGt          t          d|          |t          d|          | j         	                                          d
                    |          S )Nr   r  r  r  r  r   r!  z-;/?:@&=+$,_.!~*'()[]%r  r  ri   r]   zwhile parsing an {name!s}r@  zexpected URI, but found {ch!r}ry   rK  )rI   r}   rN   r   r   r   scan_uri_escapesr   r   r   rV  )r*   r  r   r  r^  r%  rz   s          r   r8  zScanner.scan_tag_uri  s    kS[[2	 	 	 		 	 	 	b	 	 	 		 	 	 	 b	 	 	 	  	 	 	 	 --		
 069	
 @BSy	 Sy dk0088999##F+++d33D*EEFFFF!VB 2	 	 	 		 	 	 	b	 	 	 		 	 	 	 b	 	 	 	  	 	 	 	 --		
 069	
 @BSy	 Q; 	MM$+,,V44555K'''F 	.T:::3;;;$$&&	   wwvr   c                    | j         j        }| j         j        }g }| j                                         } |            dk    r |             t	          d          D ]_} ||          dvrPt          t          d|          |t          d ||                    | j                                                   `|                    t          | j         	                    d          d                      |d            |            dk    	 t          |                              d	          }n@# t          $ r3}	t          t          d|          |t          |	          |          d }	~	ww xY w|S )
Nri   rD  r  r?  r@  zLexpected URI escape sequence of 2 hexdecimal numbers, but found {srp_call!r}r'  r  zutf-8)rI   r}   r   r   r  r   r   r   r-  r   bytesdecodeUnicodeDecodeErrorstr)
r*   r  r   r  r  
code_bytesr)   r  r  excs
             r   r  zScanner.scan_uri_escapes  s    kk!
{##%%ceesl 	CEEE1XX  3q66!99 
&7dCCC"6%(SVV  
 ,,..	 	 	
 c$+"4"4Q"7"7<<===CFFF ceesl 	 	*%%,,W55EE! 	 	 	/d;;;ZSSW  	 s   "D3 3
E0=.E++E0c                 &   | j                                         }|dv rT| j                             d          dk    r| j                             d           n| j                                          dS |dv r| j                                          |S dS )N   
rD  
rL       rK  rI   r}   r   r   )r*   rz   s     r   r  zScanner.scan_line_break  s     [ 	{!!!$$. &##A&&&&##%%%4>! 	K!!!Irr   r   F)Rr   r   r   r+   propertyr8   r1   rI   rN   rW   rZ   r_   rQ   rf   rR   rb   ra   r   r   r|   r   r=   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r{   r   r  r  r)  r  r/  r0  r  r   r   r   rO  rP  rQ  rS  r   r  r  rv  rw  r  r   r  r5  r8  r  r  r    r   r   r   r   G   s       ! ! ! !& & & X&4' 4' 4'l 	( 	( X	( . . X.  " " "& & &  " " "l
 l
 l
`      5 5 5(= = =0; ; ;$: : :2  X X X  
2 
2 
2: : :8 8 8= = = N N NM M M= = == = =< < <= = =&
A 
A 
AB B B8; ; ;8;= ;= ;=z9 9 9: : :, , ,+ + ++ + +: : :* * ** * *9 9 9	. 	. 	.      9 9 9
9 9 99 9 9&!
 !
 !
J% % %NA A A,  8! ! !6  (           (-7 -7 -7^05 05 05dz z z zx1# 1# 1#f  4, , ,$      P P P2TV 	V 	V	
 	f 	V 	V 	V 	V 	V 	V 	S 	S 	d 	V  	V!" 	X#$ 	X% * ++L8 8 8t  <  0W W Wr$ $ $L  B" " "H  >    r   r   c                   B    e Zd Zd Zd Zd Zd Zd Zd ZddZ	dd
Z
dS )r   c                 $   |                                  r(|                                  |                                  (|                                  t          | j                  dk    r'|sdS |D ] }t          | j        d         |          r dS !dS rP   )rQ   rR   _gather_commentsr5   r<   rS   rT   s      r   rW   zRoundTripScanner.check_token  s     ##%% 	%""$$$ ##%% 	%t{a 	  t!    dk!nf55  44 ur   c                     |                                  r(|                                  |                                  (|                                  t          | j                  dk    r| j        d         S d S rY   )rQ   rR   r  r5   r<   r7   s    r   rZ   zRoundTripScanner.peek_token  sz     ##%% 	%""$$$ ##%% 	%t{a 	";q>!tr   c                    g }| j         s|S t          | j         d         t                    r?| j                             d          }| xj        dz  c_        |                    |           |                                 r|                                  | j         s|S t          | j         d         t                    r?| xj        dz  c_        | j                             d          }|                    |           |                                 t          |          dk    r | j         d         	                    |           | j
        s.t          | j                   dk     r|                                  dS dS dS )zCcombine multiple comment lines and assign to next non-comment-tokenr   r]   rD  N)r<   rS   rZ  r^   r>   r   rQ   rR   r5   rW  r;   )r*   rX  re   s      r   r  z!RoundTripScanner._gather_comments  s    { 	Odk!nl33 	%kooa((G"OOG$$$##%% 	)""$$$;  $+a.,77 )!!Q&!!+//!,,((( ##%% 	) x==A 	6KN++H555y 	%S--1 	%""$$$$$	% 	% 	% 	%r   c                    |                                  r(|                                  |                                  (|                                  t          | j                  dk    rt          | j                  dk    rt          | j        d         t          t          t          t          f          rt          | j        d         t                    rc| j        d         j        j        | j        d         j        j        k    r2| xj        dz  c_        | j                            d          }|                                  t          | j                  dk    rt          | j        d         t                    r| xj        dz  c_        | j                            d          }|j        d|j        j        z  z   |j        z   |_        |                                  t          | j                  dk    r t          | j        d         t                    | j        d                             |           n t          | j                  dk    rt          | j        d         t                    rt          | j        d         t                    r| j        d         j        j        | j        d         j        j        k    rt| xj        dz  c_        | j                            d          }d|j        j        | j        d         j        j        z
  z  d|j        j        z  z   |j        z   |_        | j        d                             |           |                                  t          | j                  dk    rt          | j        d         t                    r| xj        dz  c_        | j                            d          }|j        d|j        j        z  z   |j        z   |_        |                                  t          | j                  dk    r t          | j        d         t                    | xj        dz  c_        | j                            d          S d S )Nr   r]   r
  rL  )rQ   rR   r  r5   r<   rS   rU  r   r   r   rZ  r   r'   r   r>   r^   r  r(   r[  )r*   cc1s      r   r_   zRoundTripScanner.get_token0  s    ##%% 	%""$$$ ##%% 	%t{a -	& DK  1$%-KN *.BDWX %- t{1~|<<%- KN+0DKN4M4RR%- !!Q&!!KOOA&&&&((($+&&* -z$+a.,/W/W -%%*%%++Bgr}/C)CDrxOAG**,,,	 $+&&* -z$+a.,/W/W -
 A//2222DK  1$-t{1~{;;- t{1~|<<- KN+0DKN4M4RR	- !!Q&!!KOOA&&AL-A0G0LLMQ\002g 
 A//222&&((($+&&* -z$+a.,/W/W -%%*%%++Bgr}/C)CDrxOAG**,,,	 $+&&* -z$+a.,/W/W -
 ";??1%%%tr   c                     |\  }}}|r$|d         dk    r|d d         }|r|d         dk    | j                             t          |||                     d S )Nr:   r
  )r<   r   rZ  )r*   re   r  r   r   s        r   rf   zRoundTripScanner.fetch_commentf  sy    &-#z8 	b	S( 	 #2#JE  	b	S( 	 	<z8DDEEEEEr   c                 f   | j         j        }| j         j        }| j         j        dk    r |            dk    r
 |             d}|s |            dk    r |              |            dk     |            }|dk    r| j                                         }|} |             |t
          vr. |            }|dk    r|dz  }n||z  } |             |t
          v.|                                 }t          |          dk    r,||z  }|                                 }t          |          dk    ,| j                                         }| j        sd| _	        |||fS |                                 d	k    r| j                                         }| j        sd| _	         |            }|dk    r| j                                         }d	}|r|                     d
          }||z  }| |            dk    r|
                    dd          d         dz   }| j                                         }|||fS nd}|d S )Nr   r	  Fr
  r  rh   rL  TrK  )
empty_liner]   )rI   r}   r   r&   r   r  r  r5   r8   rA   rsplit)r*   r  r  r  rz   r   re   r   s           r   r{   z#RoundTripScanner.scan_to_next_tokenq  s   * kk!;! 	cceex&7 	CEEE ,	#%%3,  #%%3, BSy 5![1133
( 	BTz   4rMGCEEE ( 	 ))++"ggk 0rMG--//B "ggk 0  ;//11 1,0D)
H44##%%+ ![1133
 1,0D)SUU: 
9!%!5!5!7!7J G &!11T1BB2  & suu| D")..q"9"9!"<t"C#{3355H"J88
9 Y  ,	Z tr   Fc                 h   | j                                         }|dv rT| j                             d          dk    r| j                             d           n| j                                          dS |dv r| j                                          |S |r|dv r| j                                          |S dS )Nr  rD  r  rL  r  z	 rK  r  )r*   r  rz   s      r   r  z RoundTripScanner.scan_line_break  s     [ 	{!!!$$. &##A&&&&##%%%4>! 	K!!!I 	B%K 	K!!!Irr   Tc                 <    t                               | ||          S )N)r\  )r   r   )r*   r   r\  s      r   r   z"RoundTripScanner.scan_block_scalar  s    ((u(<<<r   Nr  )T)r   r   r   rW   rZ   r  r_   rf   r{   r  r   r    r   r   r   r     s            % % %24 4 4lF F FG G GR   2= = = = = =r   r   c                   8    e Zd ZdZd Zd
dZd Zd Zd Zd Z	d	S )CommentBase)r  r'   r(   usedfunctionflineufunulinec                     || _         || _        || _        d| _        t	          j        t	          j                    d         d                   }|j        | _        |j        | _	        d | _
        d | _        d S )Nr
  r   r   )r  r'   r(   r  inspectgetframeinfostackr  linenor  r  r  )r*   r  r'   r(   infos        r   r+   zCommentBase.__init__  sb    
		#GMOOA$6q$9::[
	


r   rm  c                     || _         t          j        t          j                    d         d                   }|j        | _        |j        | _        d S )Nr]   r   )r  r  r  r  r  r  r  r  )r*   r  r  s      r   set_usedzCommentBase.set_used  s?    	#GMOOA$6q$9::M	[


r   c                     d| _         d S )Nru   )r  r7   s    r   set_assignedzCommentBase.set_assigned  s    			r   c                 .    t          d| j                  S )Nz{value}r  r   r  r7   s    r   __str__zCommentBase.__str__  s    )4:....r   c                 .    t          d| j                  S )Nz	{value!r}r  r  r7   s    r   __repr__zCommentBase.__repr__  s    +TZ0000r   c                     t          d| j        | j        | j        | j        dz   | j        | j        | j        | j        | j	        
  
        S )NzP{name}{used} {line:2}:{column:<2} "{value:40s} {function}:{fline} {ufun}:{uline}rx   )	r  r'   r(   r  r  r  r  r  r  )
r   r  r'   r(   r  r  r  r  r  r  r7   s    r   r  zCommentBase.info  sN    ^;*s"]**
 
 
 	
r   N)rm  )
r   r   r   	__slots__r+   r  r  r  r  r  r    r   r   r  r    sx        YI
 
 
! ! ! !  / / /1 1 1
 
 
 
 
r   r  c                   "     e Zd ZdZ fdZ xZS )
EOLCommentEOLCc                 N    t                                          |||           d S r   superr+   r*   r  r'   r(   	__class__s       r   r+   zEOLComment.__init__  %    f-----r   r   r   r   r  r+   __classcell__r  s   @r   r  r    =        D. . . . . . . . .r   r  c                   "     e Zd ZdZ fdZ xZS )FullLineCommentFULLc                 N    t                                          |||           d S r   r  r  s       r   r+   zFullLineComment.__init__  r  r   r  r  s   @r   r  r    r  r   r  c                   "     e Zd ZdZ fdZ xZS )BlankLineCommentBLNKc                 N    t                                          |||           d S r   r  r  s       r   r+   zBlankLineComment.__init__%  r  r   r  r  s   @r   r  r  "  r  r   r  c                   ^    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
dd
Zd Zd Zd Zd ZdS )ScannedCommentsc                 "    i | _         g | _        d S r   )rX  unusedr7   s    r   r+   zScannedComments.__init__+  s    r   c                     |                     d          dk    r|d         dk    sJ nd|vsJ t          |d d         ||          x| j        |<   }| j                            |           |S NrL  r]   r:   )countr  rX  r  r   r*   re   r(   r'   retvals        r   add_eol_commentzScannedComments.add_eol_comment0  s     ==!# 	'2;$&&&&&w&&&&'1'#2#,f'M'MMdf4   r   c                     |                     d          dk    r|d         dk    sJ || j        vsJ t          |d d         ||          x| j        |<   }| j                            |           |S r  )r  rX  r  r  r   r  s        r   rY  zScannedComments.add_blank_line;  s     }}T""a'?GBK4,????4=(((('7dF'S'SSdf4   r   c                     |                     d          dk    r|d         dk    sJ t          |d d         ||          x| j        |<   }| j                            |           |S r  )r  r  rX  r  r   r  s        r   add_full_line_commentz%ScannedComments.add_full_line_commentD  sq     }}T""a'?GBK4,???? (7wss|T6'R'RRdf4   r   c                     | j         |         S r   )rX  )r*   idxs     r   __getitem__zScannedComments.__getitem__O  s    }S!!r   c                 z    dd                     d | j                                        D                       z   dz   S )NzParsedComments:
  z
  c              3   d   K   | ]+\  }}t          d ||                                          V  ,dS )z{lineno:2} {x}r  rj  N)r   r  ).0r  rj  s      r   	<genexpr>z*ScannedComments.__str__.<locals>.<genexpr>X  sR        ! '!&&((CCC     r   rL  rV  rX  itemsr7   s    r   r  zScannedComments.__str__S  sV     "kk %)]%8%8%:%:    		
r   c                     t          | j                                                  d         \  }}t          d||                                          S )Nr:   z{lineno:2} {x}
r  )r   rX  r  r   r  )r*   r  rj  s      r   lastzScannedComments.last`  sD    ,,..//3	$Vqvvxx@@@@r   c                 2    t          | j                  dk    S rY   )r5   r  r7   s    r   any_unprocessedzScannedComments.any_unprocessede  s     4;!##r   Fc              #     K   t          | j                  dk    r|r| j                            d          n| j        d         }t          j        t          j                    d         d                   }t          d|| j        |         j        |j	        |j
                   || j        |         fV  |r| j        |                                          t          | j                  dk    d S d S )Nr   r]   using)r5   r  r^   r  r  r  r   rX  r  r  r  r  )r*   usefirstr  s       r   unprocessedzScannedComments.unprocessedn  s      $+" 	0*-ADKOOA&&&4;q>E'(:1(=>>DGUDM%$8$>t{[[[u----- 0e$--/// $+" 	0 	0 	0 	0 	0r   c                    |j         j        }t          j        t          j                    d         d                   }t          d|| j        |j        |j                   d}| j        r| j        d         |k     rxd}| j        	                    d          }t          d|           | j
        |                                          |                    |           | j        r| j        d         |k     x|S )Nr]   r   
assign_preFTzassign_pre < )r   r'   r  r  r  r   r  r  r  r^   rX  r  add_comment_prer*   rh  
token_liner  gobbledr  s         r   r  zScannedComments.assign_prex  s    %*
#GMOOA$6q$9::j$+t}dkRRRk 	)dk!nz9 	)GKOOA&&EOU+++M% ))+++!!%((( k 	)dk!nz9 	) r   c                 D   	 | j         d         }n# t          $ r Y d S w xY wt          | j        |         t                    sd S d}||          j        j        |k    st          ||          t                    r8|dz  }||          j        j        |k    t          ||          t                    8t          d|           t          |          |k    r=t          ||          t                    r!t          ||dz             t                    rd S 	 t          ||          t                    rt          ||dz             t                    r	 | j                             d          }| j        |                                          t          d||t                     ||                              |t                     n# t          $ r t           w xY wd S n# t          $ r t          d           Y nw xY w	 t          ||          t                    rt          ||dz             t          t"          f          rt	 | j                             d          }| j        |                                          ||                              |t$                     n# t          $ r t           w xY wd S n# t          $ r t          d           Y nw xY w|D ]}t          d|           t          dt'          ||                               dd l}|                    d           d S )	Nr   r]   idx1z>>>>>aIndexError1IndexError2ztt-znot implemented EOL)r  r   rS   rX  r  r   r'   r   r   r5   rU  r   r^   r  KEYCMNTadd_comment_eolrd   r   	VALUECMNTtypesysexit)r*   r<   comment_liner   eol_idxr|  r   s          r   
assign_eolzScannedComments.assign_eol  sq   	;q>LL 	 	 	FF	$-5zBB 	FcTl%*\9 	ZC4L*>
 >
 	 1HC cTl%*\9 	ZC4L*>
 >
 	 	KK#	63$<55	 6C!G*-{;;	
 F	&#,44 
qz"H: : 
."kooa00GM'*33555Hc7G<<<C4L00'BBBB! . . .--. 	 	 	M"""D		&#,44 	qz"Z$A: : 	."kooa00GM'*33555C4L00)DDDD! . . .--. 	 	 	M"""D	  	 	AE1%tFC4L'9'9:::


sc    
;G A2G  ?G  GG G43G48AJ/ ;AJ J/ J))J/ /K
Kc                    |j         j        }t          j        t          j                    d         d                   }t          d|| j        |j        |j                   d}| j        r| j        d         |k     rxd}| j        	                    d          }t          d|           | j
        |                                          |                    |           | j        r| j        d         |k     x|S )Nr]   r   assign_postFTzassign_post < )r   r'   r  r  r  r   r  r  r  r^   rX  r  add_comment_postr  s         r   r&  zScannedComments.assign_post  s    %*
#GMOOA$6q$9::z4;t{SSSk 	*dk!nz9 	*GKOOA&&E$e,,,M% ))+++""5))) k 	*dk!nz9 	* r   c                 n    d                     d | j                                        D                       S )NrK  c              3   z   K   | ]6\  }}|j         d k    t          d||                                          V  7dS )r
  z  {ind:2} {x}
)indrj  N)r  r   r  )r  r*  rj  s      r   r  z2ScannedComments.str_unprocessed.<locals>.<genexpr>  s^        C6S=$#:::     r   r  r7   s    r   str_unprocessedzScannedComments.str_unprocessed  sB    ww "m1133  
 
 	
r   Nr  )r   r   r   r+   r  rY  r  r  r  r
  r  r  r  r$  r&  r+  r    r   r   r  r  *  s          
	 	 	  	 	 	" " "
 
 
A A A
$ $ $0 0 0 0  6 6 6p  
 
 
 
 
r   r  c                   <     e Zd Z fdZd Zd Zd Zd Zd Z xZ	S )RoundTripScannerSCc                 Z     t                      j        |i | | j        J d | _        d S r   )r  r+   r/   rX  )r*   argr   r  s      r   r+   zRoundTripScannerSC.__init__  s:    #$$$${&&& r   c                    |                                  r(|                                  |                                  (t          | j                  dk    rt	          | j        d         t
                    r&| j                            | j        d                    n%| j                            | j        d                    | xj	        dz  c_	        | j        
                    d          S d S r\   )rQ   rR   r5   r<   rS   r   rX  r&  r  r>   r^   r7   s    r   r_   zRoundTripScannerSC.get_token  s     ##%% 	%""$$$ ##%% 	%t{a 	&$+a.-88 9))$+a.9999((Q888";??1%%%	& 	&r   c                    | j         t                      x| j        _        | _         | j        rdS t          | j                  dk    rdS |                                  |                                 | j	        k    rdS t          | j                  dk     rdS | j        d         j
        j        | j        d         j
        j        k    rdS 	 t          dt          | j                             | j        D ]}t          |           t          | j                                                    | j                             | j        d                    | j                             | j                   dS )NFr   TrD  r:   z-x--)rX  r  r/   parsed_commentsr;   r5   r<   ra   rb   r>   r   r'   r   r+  r  r$  )r*   r|  s     r   rQ   z#RoundTripScannerSC.need_more_tokens  s\   = 	L:I:K:KKDK'$-9 	5t{q  	4 	'')))((**d.?? 	4t{a 	4;q>$)T[_-G-LL 	4	5FC,,---[  



DM1133444  Q000  ---ur   c                 v   | j         j        }| j         j        }| j         j        dk    r |            dk    r
 |             | j                                         }d}|sZ |            dk    r |              |            dk     |            }|dk    r| j                                         }|} |             |t
          vr. |            }|dk    r|dz  }n||z  } |             |t
          v.|j        dk    r'| j                            ||j        |j	                   n(| j        
                    ||j        |j	                   d}|                                  | j        sd	| _        d S t          |                                           r$| j        sd	| _        |                                  d S d	}|Zd S )
Nr   r	  Fr
  r  rh   rL  rK  T)rI   r}   r   r&   r   r  r(   rX  r  r'   r   scan_empty_or_full_line_commentsr8   rA   r   r  r  )	r*   r  r  r   r  rz   comment_start_markre   r  s	            r   r{   z%RoundTripScannerSC.scan_to_next_token	  s    kk!;! 	cceex&7 	CEEE[))++
 4	#%%3,  #%%3, BSy %)[%9%9%;%;"( 	BTz   4rMGCEEE ( 	 $) !M77!3!:<N<S    M11!3!:<N<S   !G55777 1,0D)D((**++  1,0D)55777t i  4	j tr   c                 ,   | j                                         }|j        dk    sJ d}d }d }| j                                         }	 |dv r| j                             d          dk    r| j                             d           n| j                                          |.|dz  }| j                            ||j        |j                   d }n+|dz  }| j        	                    ||j        |j                   d}| j                                         }| j                                         }|.|dv r||z  }n)|d	k    r| j                                         }d	}nd S ||z  }| j                                          | j                                         }O)
Nr   rK  Trt  rD  r  rL  r   r  )
rI   r   r(   r}   r   r   rX  r  r'   rY  )r*   blmarkblanksre   r)   rz   s         r   r4  z3RoundTripScannerSC.scan_empty_or_full_line_commentsH	  s   %%''}!!!![	$++ ;%%a((F2 *K''****K''))) UtOGM77diXXX"GGdNFM00TTT--//[%%'' 
; bLFF3Y ;//11D!GG E2K!!!!!##B=	$r   c                    | j         j        }| j         j        }d}d } |            dk    r%| |            z  } |              |            dk    % |            dk    rYd}| j                                         } |            t          vr(| |            z  } |              |            t          v(|dz  } |            }|t          vr8t          d|t          d|          | j                                                   |&| j                            ||j	        |j
                   |                                  d S )NrK  r
  r  rL  ro  r:  ry   )rI   r}   r   r   r  r   r   rX  r  r(   r'   r  )r*   r   r  r  r   re   r)   rz   s           r   rP  z1RoundTripScannerSC.scan_block_scalar_ignored_linep	  sn    kk!ceesl 	cceeOFCEEE ceesl 	 355C< 	G;''))D#%%x' 3355  #%%x'  tOGSUUX 	/IbQQQ$$&&	    	KM))'4;	JJJtr   )
r   r   r   r+   r_   rQ   r{   r4  rP  r  r  s   @r   r-  r-    s            & & &  6> > >@&$ &$ &$P      r   r-  )#r  ruamel_yaml.errorr   r   ruamel_yaml.tokensruamel_yaml.compatr   r   r   r	   typingr
   r   r   r   r   r   r   __all__r  r   r  r   r   r"   r   r   r  r  r  r  r  r  r  r-  r    r   r   <module>r?     sc  >  : : : : : : : :         I I I I I I I I I I I I/ :
9
9 $0 
	 	 		 	 	 	 	? 	 	 	
 
 
 
 
 
 
 
t t t t t t t tn5W= W= W= W= W=w W= W= W=x 	

/
 /
 /
 /
 /
 /
 /
 /
d. . . . . . . .. . . . .k . . .. . . . .{ . . .j
 j
 j
 j
 j
 j
 j
 j
Zu u u u u u u u u ur   