
    0;ji6                        d dl mZmZmZmZ ddlmZ ddlT ddlm	Z	m
Z
mZmZmZ 	 g d	Zd
ZdZdZ G d de          Z G d de          Z G d de          Z G d de          ZdS )    )print_functionabsolute_importdivisionunicode_literals   )MarkedYAMLError)*)utf8unichrPY3check_anchorname_charnprintF)AnyDictOptionalListUnionText)VersionType)ScannerRoundTripScannerScannerErroru   
   u    
 	   	c                       e Zd ZdS )r   N)__name__
__module____qualname__     S/root/voice-cloning/.venv/lib/python3.11/site-packages/srsly/ruamel_yaml/scanner.pyr   r   1   s        Dr   r   c                       e Zd Zd ZdS )	SimpleKeyc                 Z    || _         || _        || _        || _        || _        || _        d S N)token_numberrequiredindexlinecolumnmark)selfr%   r&   r'   r(   r)   r*   s          r    __init__zSimpleKey.__init__8   s1    ( 
				r   N)r   r   r   r,   r   r   r    r"   r"   5   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+   r0   s     r    r,   zScanner.__init__C   sW     ;"wt{J'M'M'U#'DK  r   c                 *    t          | j                  S r$   )lenflow_contextr+   s    r    
flow_levelzScanner.flow_levelV   s     4$%%%r   c                     d| _         g | _        g | _        |                                  d| _        d| _        g | _        d| _        i | _        d S )NFr   T)	doner7   tokensfetch_stream_starttokens_takenindentindentsallow_simple_keypossible_simple_keysr8   s    r    r2   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hasattrr0   reader_readerr8   s    r    rJ   zScanner.reader   sk    	('' 	( 	( 	(t{E** ;'+{'9$$'+{':$''''	(s   	 A	AAc                 f    t          | j        d          r| j        j        j        S | j        j        S rE   )rI   r0   resolverprocessing_versionr8   s    r    scanner_processing_versionz"Scanner.scanner_processing_version   s1     4;&& 	;;'::{--r   c                     |                                  r(|                                  |                                  (t          | j                  r'|sdS |D ] }t	          | j        d         |          r dS !dS NTr   F)need_more_tokensfetch_more_tokensboolr=   
isinstancer+   choiceschoices      r    check_tokenzScanner.check_token   s     ##%% 	%""$$$ ##%% 	% 	  t!    dk!nf55  44 ur   c                     |                                  r(|                                  |                                  (t          | j                  r| j        d         S d S Nr   )rR   rS   rT   r=   r8   s    r    
peek_tokenzScanner.peek_token   sh     ##%% 	%""$$$ ##%% 	% 	";q>!	" 	"r   c                     |                                  r(|                                  |                                  (t          | j                  r*| xj        dz  c_        | j                            d          S d S )Nr   r   )rR   rS   rT   r=   r?   popr8   s    r    	get_tokenzScanner.get_token   s     ##%% 	%""$$$ ##%% 	% 	&";??1%%%	& 	&r   c                     | j         rdS | j        sdS |                                  |                                 | j        k    rdS dS )NFT)r<   r=   stale_possible_simple_keysnext_possible_simple_keyr?   r8   s    r    rR   zScanner.need_more_tokens   sX    9 	5{ 	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 dtI          |          z  | j        %                                          )N %-.[{]},?:r	   &!|>'"z!while scanning for the next tokenz.found character %r that cannot start any token)&scan_to_next_tokenrf   ra   unwind_indentrJ   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_tagr9   fetch_literalfetch_foldedfetch_singlefetch_doublecheck_plainfetch_plainr   r
   get_mark)r+   re   chs      r    rS   zScanner.fetch_more_tokens   s_    ))++%%g...''))) 	4;-... [ ::((*** 99--//9''))) 9922449,,... 9900229**,,, 9911333 9900222 99//111 99..000 99((*** 99//119))+++ 99))9>>### 99))++9##%%% 99##%%% 99$$&&& 99>>### 99T_9%%''' 99T_9$$&&& 99$$&&& 99$$&&&  	&##%%% /<tBxxGK  ""	
 
 	
r   c                 `    d }| j         D ]#}| j         |         }||j        |k     r|j        }$|S r$   )rC   r%   )r+   min_token_numberlevelkeys       r    rb   z Scanner.next_possible_simple_keyG  sM      . 	4 	4E+E2C'3+;>N+N+N#&#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 ':')	listrC   r(   rJ   r'   r&   r   r*   r   )r+   r   r   s      r    ra   z"Scanner.stale_possible_simple_keysW  s     $344 
	5 
	5E+E2Cx4;+++t{/@39/Lt/S/S< &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$   )r9   r@   rJ   r)   rB   remove_possible_simple_keyr?   r6   r=   r"   r'   r(   r   rC   )r+   r&   r%   r   s       r    save_possible_simple_keyz Scanner.save_possible_simple_keyk  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   )r9   rC   r&   r   r*   rJ   r   )r+   r   s     r    r   z"Scanner.remove_possible_simple_key  sx     ?d777+DO<C| "1H1K((**	   )$/::: 87r   c                     t          | j                  rd S | j        |k    rl| j                                        }| j                                        | _        | j                            t          ||                     | j        |k    jd S d S r$   )
rT   r9   r@   rJ   r   rA   r^   r=   appendBlockEndToken)r+   r)   r*   s      r    rz   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@   rA   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)rJ   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)
rz   r   rB   rC   rJ   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)rz   r   rB   r=   r   scan_directiver8   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DocumentStartTokenr8   s    r    r   zScanner.fetch_document_start  s    %%&899999r   c                 :    |                      t                     d S r$   )r   DocumentEndTokenr8   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   )rz   r   rB   rJ   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FlowSequenceStartTokenr8   s    r    r   z!Scanner.fetch_flow_sequence_start  s"    (()?(MMMMMr   c                 >    |                      t          d           d S )Nrm   r   )r   FlowMappingStartTokenr8   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   r7   r   rB   rJ   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FlowSequenceEndTokenr8   s    r    r   zScanner.fetch_flow_sequence_end  s    &&';<<<<<r   c                 :    |                      t                     d S r$   )r   FlowMappingEndTokenr8   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   r7   r^   
IndexErrorrB   rJ   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   )rB   r   rJ   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)r9   rB   r   rJ   r   r   r)   r=   r   BlockSequenceStartTokenr   r   BlockEntryTokenr+   r*   r   r   s       r    r   zScanner.fetch_block_entry2  s     	( ";K((**	   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)r9   rB   r   rJ   r   r   r)   r=   r   BlockMappingStartTokenr   r   KeyTokenr   s       r    r   zScanner.fetch_keyQ  s     	G ( "7K((**	   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)r9   rC   r=   insertr%   r?   r   r*   r   r)   r   rB   r   rJ   r   r   r   r   
ValueToken)r+   r   r*   r   r   s        r    r   zScanner.fetch_valuep  s    ?d777+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   rB   r=   r   scan_anchor
AliasTokenr8   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   rB   r=   r   r   AnchorTokenr8   s    r    r   zScanner.fetch_anchor  sH     	%%''' %4++K8899999r   c                     |                                   d| _        | j                            |                                            d S r   )r   rB   r=   r   scan_tagr8   s    r    r   zScanner.fetch_tag  sB     	%%''' %4==??+++++r   c                 2    |                      d           d S )Nru   stylefetch_block_scalarr8   s    r    r   zScanner.fetch_literal      c*****r   c                 2    |                      d           d S )Nrv   r   r   r8   s    r    r   zScanner.fetch_folded  r   r   c                     d| _         |                                  | j                            |                     |                     d S r   )rB   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_scalarr8   s    r    r   zScanner.fetch_single      S)))))r   c                 2    |                      d           d S )Nrx   r   r   r8   s    r    r   zScanner.fetch_double  r   r   c                     |                                   d| _        | j                            |                     |                     d S r   )r   rB   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   rB   r=   r   
scan_plainr8   s    r    r   zScanner.fetch_plain  sF     	%%''' !&4??,,-----r   c                 *    | j         j        dk    rdS d S )Nr   T)rJ   r)   r8   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rJ   r)   prefixr{   _THE_END_SPACE_TABr8   s    r    r   zScanner.check_document_start  U     ;""""1%%..K$$Q''+===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   r8   s    r    r   zScanner.check_document_end
  r   r   c                 D    | j                             d          t          v S )Nr   )rJ   r{   r   r8   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   )rT   r9   rJ   r{   r   r8   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)
rO   rT   r9   r7   rJ   r{   r   r=   rU   r   r8   s    r    r   zScanner.check_value"  s     *f44DO$$ t DO$$ $R(C//{''**2DDD$u E[ %ZB%L%L %{''**2DD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   )rJ   r{   rO   r   r9   rT   
_SPACE_TAB)r+   srpr   ch1s       r    r   zScanner.check_plain5  s     kSUU*f44LL A00 H3YFt#6#E2:
 DDD4c!ff99$666499do..93j3H3H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)rJ   r{   r   r'   _THE_ENDscan_line_breakr9   rB   )r+   r  srffound_the_ends        r    ry   zScanner.scan_to_next_tokenZ  s    ( kk!;!!cceex&7&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)
rJ   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_directive  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|s9t          d
|dt          |          z  | j                                                   | j                             |          }| j                             |            |            }|dvr9t          d
|dt          |          z  | j                                                   |S )Nr   09AZazz-_:.r   while scanning a directive6expected alphabetic or numeric character, but found %r     
  )rJ   r{   r   r
   r   r   r   )r+   r   lengthr  r   r  s         r    r  zScanner.scan_directive_name  s    kS[[R3#"2"2"2"2s"2"2"2"2cR6F6F6F6F36F6F6F6F"PV,,aKFVB R3#"2"2"2"2s"2"2"2"2cR6F6F6F6F36F6F6F6F"PV,,  	,H4PR88S$$&&	   ""6**F###SUU...,H4PR88S$$&&	   r   c           	      >   | j         j        }| j         j        } |            dk    r |              |            dk    |                     |          } |            dk    rAt	          d|dt           |                      z  | j                                                    |             |                     |          } |            dvrAt	          d|dt           |                      z  | j                                                   ||f| _        | j        S )Nr  rk   r   z%expected a digit or '.', but found %rr"  z%expected a digit or ' ', but found %r)rJ   r{   r   scan_yaml_directive_numberr   r
   r   r4   )r+   r   r  r  majorminors         r    r  z!Scanner.scan_yaml_directive_value  s(    kk!ceesllCEEE ceesll//
;;355C<<,7$ssuu++E$$&&	   	//
;;355111,7$ssuu++E$$&&	   #EN  r   c                    | j         j        }| j         j        } |            }d|cxk    rdk    s;n t          d|dt	          |          z  | 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 %rr   r   )rJ   r{   r   r   r
   r   intr   )r+   r   r  r  r   r#  r  s          r    r%  z"Scanner.scan_yaml_directive_number  s    kk!SUUr    S    ,0488;$$&&	   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  )rJ   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!ceesllCEEE ceesll//
;;ceesllCEEE ceesll//
;;r   c                     |                      d|          }| j                                        }|dk    r9t          d|dt	          |          z  | j                                                  |S )N	directiver  r   expected ' ', but found %r)scan_tag_handlerJ   r{   r   r
   r   r+   r   r  r   s       r    r+  z!Scanner.scan_tag_directive_handle  ss     $$[*==[99,,tBxx7$$&&	   r   c                     |                      d|          }| j                                        }|dvr9t          d|dt	          |          z  | j                                                  |S )Nr/  r"  r   r0  )scan_tag_urirJ   r{   r   r
   r   r2  s       r    r,  z!Scanner.scan_tag_directive_prefix  sv     !!+z::[...,,tBxx7$$&&	   r   c                    | j         j        }| j         j        } |            dk    r |              |            dk     |            dk    r, |            t          vr |              |            t          v |            }|t          vr9t	          d|dt          |          z  | j                                                   |                                  d S )Nr  r	  r   0expected a comment or a line break, but found %rrJ   r{   r   r
  r   r
   r   r  )r+   r   r  r  r   s        r    r  z#Scanner.scan_directive_ignored_line  s     kk!ceesllCEEE ceesll355C<<#%%x'' #%%x''SUUX,BT"XXM$$&&	   	r   c                    | j         j        }| j                                         } |            }|dk    rd}nd}| j                                          d} ||          }t	          |          r|dz  } ||          }t	          |          |s<t          d||dt          |          z  | j                                                   | j                             |          }| j                             |           |dvr<t          d||dt          |          z  | j                                                   | j                                         }	 ||||	          S )	Nr	   aliasanchorr   r   zwhile scanning an r!  u     	
  ?:,[]{}%@`)rJ   r{   r   r   r   r   r
   r   )
r+   r   r  r   	indicatorr  r#  r   r  r   s
             r    r   zScanner.scan_anchor  s    k[))++
CEE	DDDS[[ $B'' 	aKFVB $B'' 	  	,*.$0H4PR88S$$&&	   ""6**F### :::,*.$0H4PR88S$$&&	   ;''))z%X666r   c           	         | j         j        }| j                                         } |d          }|dk    rd }| j                             d           |                     d|          } |            dk    rAt          d|dt           |                      z  | 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r9t          d|dt          |          z  | j                                                   ||f}| j                                         }	t          |||	          S )Nr   <   tagrv   zwhile parsing a tagzexpected '>', but found %rrt   Fr"  Tzwhile scanning a tagr0  )
rJ   r{   r   r   r4  r   r
   r   r1  TagToken)
r+   r  r   r   r-  suffixr#  
use_handler  r   s
             r    r   zScanner.scan_tagN  s    k[))++
SVV99FK"""&&uj99Fsuu||")04;;>K((**	   K!!!!%%%FFK!!!!FJ55599!%J!S[[ 555 F &--eZ@@##%%%&&uj99FSUU...&,tBxx7$$&&	    ;''))z8444r   Fc                    | 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|||          }|	|                    |	g           t1          |          dk    r|                                 }|rB|                    d|d         j        z  |d         z              |                                 }|B| j                                         }t5          d                    |          ||          }|                    |           |S )Nrv   TFr   z|>r  0top_level_block_style_scalar_no_indent_error_1_1 rh   r   r   
r  r   r   )rJ   r{   r   r   scan_block_scalar_indicatorsscan_block_scalar_ignored_liner@   rO   r1   r0   scan_block_scalar_indentationmaxscan_block_scalar_breaksr)   extendr
  r   r   r  r   r   ScalarTokenjoinadd_pre_commentsr6   ry   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tokenre   comment_end_marks                         r    r   zScanner.scan_block_scalar  sy    kC<<FFF[))++
 	"??
KK)#BB:NN [1_
A~~T!!3v==KF  > 
+/+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%7MM$'''	."d**) +U**! +c***MM*---- ] k F**ssuu}}d |##MM*%%%tMM&!!!!&&OOF### BGGFOOUJ%PP+""$8#9:::x==1 --//G 4gaj&7 7'!* DEEE1133  4  ${3355"2778#4#4h@PQQG""7+++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r9t	          d|d
t          |          z  | j                                                   ||fS )Nz+-+TF
0123456789r   while scanning a block scalarz<expected indentation indicator in the range 1-9, but found 0r"  z9expected chomping or indentation indicators, but found %r)rJ   r{   r   r)  r   r   r
   )r+   r   r  rV  rW  r   s         r    rH  z$Scanner.scan_block_scalar_indicators  s    k	SUU::Syy K!!!B\!!GG	>>&7"&,,..   ##%%%<BIA~~"3UK((**	   K!!!BTzz99#HH$H##%%%SUU.../KdSUhhV$$&&	   ""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r9t	          d|dt          |          z  | j                                                   |                                  |S )NrE  r  r	  rd  r6  r7  )r+   r   r  r  r   re   r   s          r    rI  z&Scanner.scan_block_scalar_ignored_line+  s    kk!ceesllcceeOFCEEE ceesll 355C<<G#%%x''3355  #%%x'' SUUX/BT"XXM$$&&	   	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  )rJ   r{   r   r   r   r  r)   )r+   r  r  rU  r[  r   s         r    rJ  z%Scanner.scan_block_scalar_indentationE  s     kk!
;''))cee...suu||d2244555;//11;%
22!%!3J cee... 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  
   
  )rJ   r{   r   r   r)   r   r  )r+   r@   rU  r  r  r   s         r    rL  z Scanner.scan_block_scalar_breaksW  s&    kk!;''))k 6))cceesllCEEE k 6))cceesll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   TFrE  )	rJ   r{   r   r   rM  scan_flow_scalar_non_spacesscan_flow_scalar_spacesrN  rO  )r+   r   doubler  rU  r   quoter   s           r    r   zScanner.scan_flow_scalarg  s)    C<<FFFk[))++
d66vzJJKKKceeunnMM$66vzJJKKKMM$::6:NNOOO ceeunn 	;''))2776??E:xOOOr   r  rh   r  rG  bt	nrF  vfrer  rx   /\N   _    Lu    Pu    r>        )xuUc                 0   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        |                     |             nV|| j        v r| j        |         } |             t          |          D ]S} ||          d	vrDt          d
|d|t           ||                    fz  | j         
                                          Tt          | j                             |          d          }	|                    t          |	                      ||           n}|dv r>|                                  |                    |                     ||                     n;t          d
|dt          |          z  | j         
                                          |S |)NTr   u    
'"\ 	  r   rw   r>  z"\r}  0123456789ABCDEFabcdefz%while scanning a double-quoted scalarz?expected escape sequence of %d hexdecimal numbers, but found %r   u
   
  z!found unknown escape character %r)rJ   r{   r   r   r   ESCAPE_REPLACEMENTSESCAPE_CODESranger   r
   r   r)  r   r  rM  scan_flow_scalar_breaks)
r+   rm  r   rU  r  r  r#  r   kcodes
             r    rk  z#Scanner.scan_flow_scalar_non_spaces  s    kk!.	F#f++%EEE! #f++%EEE{{dk0088999FB &bCiiCCFFcMMc"""A #R3YYY2;;b!!!  B$JJSUU111MM$":2">???CEEEE4,,,!.r2FCEEE"6]]  3q66)AAA". G *!8;A4A<<:P!Q $ 4 4 6 6# #  B t{11&992>>DMM&,,///CKKKK111((***MM$">">vz"R"RSSSS&?";d2hhF,,..	   ].	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 streamri  rF  r  )
rJ   r{   r   r   r   r   r  r  r   rM  )
r+   rm  r   r  rU  r#  whitespacesr   r\  rZ  s
             r    rl  zScanner.scan_flow_scalar_spaces  sN    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   ri  )	rJ   r{   r   r   r   r   r   r   r  )r+   rm  r   rU  r  r  r   s          r    r  zScanner.scan_flow_scalar_breaks  s     kk!	 [''**F%6U??ABT8T8T"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||          }
|rH|d         dk    r<t#          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.FrE  rF  )rJ   r{   r   r   r@   r   rO   r9   r   rB   rM  r   r   scan_plain_spacesr)   rN  rO  rQ  rR  )r+   r  r  rU  r   r   r@   spacesr#  r   r_  re   s               r    r   zScanner.scan_plain  s    kk![))++
q
 2	Fsuu||S[[99VaZ8J!J!J3YY4#Bf#L#L,,, O - #IIC
OO/AAA B,.)OO!!& #IIC
OO+KKKF"3*K((**#   {{$)D!MM&!!!MM$+,,V44555CKKK{++--H++FJ??F355C<<  ,0K,>,G,Ge2	h BGGFOOT:xHH 	,fQi4''"2776??T#9:xPPG""7+++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   ri  Tr   r   r   rg  rF  )	rJ   r{   r   r   r  rB   r   r   rM  )r+   r@   r   r  r  rU  r#  r  r   r\  r   rZ  s               r    r  zScanner.scan_plain_spacesP  s   
 kk!c&kkS  aKF c&kkS  k((00F###SUU'''--//J$(D![''**F%6U??ABT8T8TF#%%222355C<<CEEEEMM$"6"6"8"8999![//22F%6U??A A+A, A,  #%%222 T!!j)))) #c"""MM&!!!! 	'MM+&&&r   c                    | j         j        } |            }|dk    r<t          d||dt          |          z  | 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    rV| j                             |           t          d||dt          |          z  | j                                                   |dz  }| j                             |          }| j                             |           |S )Nrt   while scanning a zexpected '!', but found %rr   r  r  r  r  r  r  r  z-_)rJ   r{   r   r
   r   r   r   )r+   r  r   r  r   r#  r  s          r    r1  zScanner.scan_tag_handlex  s   
 kSUU99,)-/,tBxx7$$&&	   S[[99r    S    C2$4$4$4$4$4$4$4$4r8H8H8H8HS8H8H8H8HBRVJJ!S[[ r    S    C2$4$4$4$4$4$4$4$4r8H8H8H8HS8H8H8H8HBRVJJ Syy##F+++"l-1T30488;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}|s<t          d||dt          |          z  | j         	                                          d
                    |          S )Nr   r  r  r  r  r  r  z-;/?:@&=+$,_.!~*'()[]%r  r	  ri   r   zwhile parsing a zexpected URI, but found %rrE  )rJ   r{   rO   r   r   r   scan_uri_escapesr   r
   r   rO  )r+   r  r   r  rU  r#  r   s          r    r4  zScanner.scan_tag_uri  sF    kS[[2bCbC---0699rSyySyydk0088999##F+++d33D*EEFFFF!VB 2bCbC---0699rSyy Q;;MM$+,,V44555K'''F 	,(,.,tBxx7$$&&	   wwvr   c                    | j         j        }| j         j        }g }| j                                         } |            dk    r |             t	          d          D ]T} ||          dvrEt          d||dt           ||                    z  | j                                                   Ut          r<|                    t          | j         
                    d          d                     nH|                    t          t          | j         
                    d          d                                |d            |            dk    	 t          r#t          |                              d          }n#t          d                    |          d          }n4# t           $ r'}	t          d||t#          |	          |          d }	~	ww xY w|S )	Nri   r>  r  r  zBexpected URI escape sequence of 2 hexdecimal numbers, but found %rr  zutf-8r   )rJ   r{   r   r   r  r   r
   r   r   r)  r   chrbytesdecodeunicoderO  UnicodeDecodeErrorstr)
r+   r  r   r  r  
code_bytesr*   r  r  excs
             r    r  zScanner.scan_uri_escapes  s    kk!
{##%%ceesllCEEE1XX  3q66!999&,157"(*.ss1vv,,7,,..   :  G!!#dk&8&8&;&;R"@"@AAAA!!#c$+*<*<Q*?*?&D&D"E"EFFFCFFF ceesll 	 ?j))0099 4 4g>>! 	 	 	,)-/SXXt  	 s   AF% %
G/"GGc                 &   | j                                         }|dv rT| j                             d          dk    r| j                             d           n| j                                          dS |dv r| j                                          |S dS )N   
r>  
rF       rE  rJ   r{   r   r   )r+   r   s     r    r  zScanner.scan_line_break  s     [{!!!$$..##A&&&&##%%%4>!!K!!!Irr   r$   F)Rr   r   r   r,   propertyr9   r2   rJ   rO   rY   r\   r_   rR   rf   rS   rb   ra   r   r   rz   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   ry   r   r  r  r%  r  r+  r,  r  r   r   r   rH  rI  rJ  rL  r   r  r  rk  rl  r  r   r  r1  r4  r  r  r   r   r    r   r   B   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>; ; ;>;= ;= ;=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u u u un2# 2# 2#h  4, , ,$      P P P2TV 	V 	V	
 	f 	V 	V 	V 	V 	V 	V 	S 	S 	d 	V  	V!" 	X#$ 	X% * ++L4 4 4l  <  0K K KZ& & &P! ! !F" " "H     D    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                  r'|sdS |D ] }t          | j        d         |          r dS !dS rQ   )rR   rS   _gather_commentsrT   r=   rU   rV   s      r    rY   zRoundTripScanner.check_token  s     ##%% 	%""$$$ ##%% 	% 	  t!    dk!nf55  44 ur   c                     |                                  r(|                                  |                                  (|                                  t          | j                  r| j        d         S d S r[   )rR   rS   r  rT   r=   r8   s    r    r\   zRoundTripScanner.peek_token  su     ##%% 	%""$$$ ##%% 	% 	";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 )zcombine multiple comment linesr   r   r>  N)r=   rU   rQ  r^   r?   r   rR   rS   r6   rP  r<   )r+   commentsre   s      r    r  z!RoundTripScanner._gather_comments  sx    { 	Odk!nl33 	%kooa((G"OOG$$$##%% 	)""$$$;  $+a.,77 )!!Q&!!+//!,,((( ##%% 	) x==AKN++H555y 	%S--11""$$$$$	% 	%11r   c                    |                                  r(|                                  |                                  (|                                  t          | j                  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  rF  )rR   rS   r  rT   r=   r6   rU   rN  r   r   r   rQ  r   r(   r   r?   r^   r  r)   rR  )r+   cc1s      r    r_   zRoundTripScanner.get_token*  s    ##%% 	%""$$$ ##%% 	% 2	& DK  1$$KN#",+	  % t{1~|<< % KN+0DKN4M4RR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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   rQ  )r+   re   r  r   r   s        r    rf   zRoundTripScanner.fetch_commente  su    &-#z8 	b	S(( #2#JE  	b	S(( 	<z8DDEEEEEr   c                 x   | 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 t          |                                           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   rF  TrE  )
empty_liner   )rJ   r{   r   r'   r   r
  r  r6   r9   rB   rT   rsplit)r+   r  r  r  r   r   re   r   s           r    ry   z#RoundTripScanner.scan_to_next_tokenp  s   * kk!;!!cceex&7&7CEEE ,	#%%3,, #%%3,,BSyy![1133
((BTzz  4rMGCEEE (( ))++"ggkkrMG--//B "ggkk  ;//11 1,0D)
H44D((**++ ![1133
 1,0D)SUU::!%!5!5!7!7J G &!11T1BB2  & suu||")..q"9"9!"<t"C#{3355H"J88  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  r>  r  rF  r  z	 rE  r  )r+   r  r   s      r    r  z RoundTripScanner.scan_line_break  s     [{!!!$$..##A&&&&##%%%4>!!K!!!I 	B%KKK!!!Irr   Tc                 <    t                               | ||          S )N)rS  )r   r   )r+   r   rS  s      r    r   z"RoundTripScanner.scan_block_scalar  s    ((u(<<<r   Nr  )T)r   r   r   rY   r\   r  r_   rf   ry   r  r   r   r   r    r   r     s            % % %29 9 9vF F FG G GR   2= = = = = =r   r   N)
__future__r   r   r   r   errorr   r=   compatr
   r   r   r   r   typingr   r   r   r   r   r   r   __all__r
  r   r  r   objectr"   r   r   r   r   r    <module>r     s_   S R R R R R R R R R R R< # " " " " "     D D D D D D D D D D D D D D$ :
9
9 $0 
	 	 	 	 	? 	 	 	
 
 
 
 
 
 
 
s s s s sf s s sl5\= \= \= \= \=w \= \= \= \= \=r   