
    i6                        d dl mZmZmZmZ ddlmZ ddl 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y)    )print_functionabsolute_importdivisionunicode_literals   )MarkedYAMLError)*)utf8unichrPY3check_anchorname_charnprint)ScannerRoundTripScannerScannerErroru   
   u    
 	   	c                       e Zd Zy)r   N)__name__
__module____qualname__     j/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/srsly/ruamel_yaml/scanner.pyr   r   1   s    r   r   c                       e Zd Zd Zy)	SimpleKeyc                 X    || _         || _        || _        || _        || _        || _        y N)token_numberrequiredindexlinecolumnmark)selfr   r   r    r!   r"   r#   s          r   __init__zSimpleKey.__init__8   s-    ( 
		r   N)r   r   r   r%   r   r   r   r   r   5   s    r   r   c                   t   e Zd Zdpd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@dqd?ZAd@ ZBdA ZCdB ZDdC ZEdD ZFi dEdFdGdHdIdJdKdLdLdLdMdNdOdPdQdRdSdTdUdVdWdWdXdXdYdYdZdZd[d\d]d^d_d`dadbiZGdcdddedfZHdg ZIdh ZJdi ZKdj ZLdk ZMdl ZNdm ZOdn ZPdo ZQy)rr   Nc                     || _         | j                   (t        | j                   dd      | | j                   _        | j                          d| _        d| _        y)zInitialize the scanner.N_scannerF)loadergetattrr(   reset_scanner
first_timeyaml_version)r$   r)   s     r   r%   zScanner.__init__C   sN     ;;"wt{{J'M'U#'DKK  r   c                 ,    t        | j                        S r   )lenflow_contextr$   s    r   
flow_levelzScanner.flow_levelV   s     4$$%%r   c                     d| _         g | _        g | _        | j                          d| _        d| _        g | _        d| _        i | _        y )NFr   T)	doner0   tokensfetch_stream_starttokens_takenindentindentsallow_simple_keypossible_simple_keysr1   s    r   r+   zScanner.reset_scanner[   s\     	   	!   , !% %'!r   c                     	 | j                   S # t        $ r\ t        | j                  d      r| j                  j                  | _         n| j                  j
                  | _         | j                   cY S w xY wNtyp)_scanner_readerAttributeErrorhasattrr)   reader_readerr1   s    r   rC   zScanner.reader   s`    	(''' 	(t{{E*'+{{'9'9$'+{{':':$'''	(s    A"A32A3c                     t        | j                  d      r | j                  j                  j                  S | j                  j                  S r>   )rB   r)   resolverprocessing_versionr1   s    r   scanner_processing_versionz"Scanner.scanner_processing_version   s8     4;;&;;'':::{{---r   c                     | j                         r!| j                          | j                         r!t        | j                        r%|sy|D ]  }t	        | j                  d   |      s y yNTr   F)need_more_tokensfetch_more_tokensboolr6   
isinstancer$   choiceschoices      r   check_tokenzScanner.check_token   se     ##%""$ ##%!  dkk!nf5  r   c                     | j                         r!| j                          | j                         r!t        | j                        r| j                  d   S y Nr   )rK   rL   rM   r6   r1   s    r   
peek_tokenzScanner.peek_token   sI     ##%""$ ##%;;q>! r   c                     | j                         r!| j                          | j                         r!t        | j                        r0| xj                  dz  c_        | j                  j                  d      S y )Nr   r   )rK   rL   rM   r6   r8   popr1   s    r   	get_tokenzScanner.get_token   s_     ##%""$ ##%";;??1%% r   c                     | j                   ry| j                  sy| j                          | j                         | j                  k(  ryy)NFT)r5   r6   stale_possible_simple_keysnext_possible_simple_keyr8   r1   s    r   rK   zScanner.need_more_tokens   sA    99{{ 	'')((*d.?.??r   c                     t         r   )NotImplementedError)r$   comments     r   fetch_commentzScanner.fetch_comment   s    !!r   c                    | j                         }|| j                  |      S | j                          | j                  | j                  j
                         | j                  j                         }|dk(  r| j                         S |dk(  r | j                         r| j                         S |dk(  r | j                         r| j                         S |dk(  r | j                         r| j                         S |dk(  r| j                         S |dk(  r| j                         S |dk(  r| j!                         S |dk(  r| j#                         S |d	k(  r| j%                         S |dk(  r | j'                         r| j)                         S |d
k(  r | j+                         r| j-                         S |dk(  r | j/                         r| j1                         S |dk(  r| j3                         S |dk(  r| j5                         S |dk(  r| j7                         S |dk(  r| j8                  s| j;                         S |dk(  r| j8                  s| j=                         S |dk(  r| j?                         S |dk(  r| jA                         S | jC                         r| jE                         S tG        dd dtI        |      z  | j                  jK                               )N %-.[{]},?:r	   &!|>'"z!while scanning for the next tokenz.found character %r that cannot start any token)&scan_to_next_tokenr_   rZ   unwind_indentrC   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_tagr2   fetch_literalfetch_foldedfetch_singlefetch_doublecheck_plainfetch_plainr   r
   get_mark)r$   r^   chs      r   rL   zScanner.fetch_more_tokens   s    ))+%%g..'') 	4;;--. [[ :((** 9--/'')) 9224,,.. 9002**,, 91133 90022 9//11 9..00 9((** 9//1))++ 9)>>## 9))+##%% 9##%% 9$$&& 9>>## 9T__%%'' 9T__$$&& 9$$&& 9$$&& ##%% /<tBxGKK  "	
 	
r   c                     d }| j                   D ]/  }| j                   |   }||j                  |k  s$|j                  }1 |S r   )r<   r   )r$   min_token_numberlevelkeys       r   r[   z Scanner.next_possible_simple_keyG  sW      .. 	4E++E2C'3+;+;>N+N#&#3#3 	4  r   c                 |   t        | j                        D ]  }| j                  |   }|j                  | j                  j                  k7  s'| j                  j                  |j                  z
  dkD  s\|j
                  r0t        d|j                  d| j                  j                               | j                  |=  y )Ni   while scanning a simple keycould not find expected ':')	listr<   r!   rC   r    r   r   r#   r   )r$   r   r   s      r   rZ   z"Scanner.stale_possible_simple_keysW  s     $334 
	5E++E2Cxx4;;+++t{{/@/@399/Lt/S<<&55,,.	  --e4
	5r   c           	         | j                    xr# | j                  | j                  j                  k(  }| j                  r| j                          | j                  t        | j                        z   }t        ||| j                  j                  | j                  j                  | j                  j                  | j                  j                               }|| j                  | j                   <   y y r   )r2   r9   rC   r"   r;   remove_possible_simple_keyr8   r/   r6   r   r    r!   r   r<   )r$   r   r   r   s       r   save_possible_simple_keyz Scanner.save_possible_simple_keyk  s     &L4;;$++:L:L+L   ++-,,s4;;/??L!!  ""$$&C :=D%%doo6 !r   c                    | j                   | j                  v rm| j                  | j                      }|j                  r0t        d|j                  d| j
                  j                               | j                  | j                   = y y )Nr   r   )r2   r<   r   r   r#   rC   r   )r$   r   s     r   r   z"Scanner.remove_possible_simple_key  st     ??d777++DOO<C||"1HH1KK((*	  ))$//: 8r   c                 ,   t        | j                        ry | j                  |kD  ro| j                  j	                         }| j
                  j                         | _        | j                  j                  t        ||             | j                  |kD  rny y r   )
rM   r2   r9   rC   r   r:   rW   r6   appendBlockEndToken)r$   r"   r#   s      r   rs   zScanner.unwind_indent  sn        kkF";;'')D,,**,DKKK}T489 kkF"r   c                 |    | j                   |k  r-| j                  j                  | j                          || _         yy)NTF)r9   r:   r   )r$   r"   s     r   
add_indentzScanner.add_indent  s3     ;;LL, DKr   c                     | j                   j                         }| j                  j                  t	        ||| j                   j
                               y )N)encoding)rC   r   r6   r   StreamStartTokenr   r$   r#   s     r   r7   zScanner.fetch_stream_start  s<    
 {{##%+D$AUAUVWr   c                     | j                  d       | j                          d| _        i | _        | j                  j                         }| j                  j                  t        ||             d| _	        y )Nr4   FT)
rs   r   r;   r<   rC   r   r6   r   StreamEndTokenr5   r   s     r   ru   zScanner.fetch_stream_end  s`     	2'') %$&!{{##%>$56	r   c                     | j                  d       | j                          d| _        | j                  j	                  | j                                y )Nr4   F)rs   r   r;   r6   r   scan_directiver1   s    r   rw   zScanner.fetch_directive  sE     	2 	'') % 	4..01r   c                 .    | j                  t               y r   )fetch_document_indicatorDocumentStartTokenr1   s    r   ry   zScanner.fetch_document_start  s    %%&89r   c                 .    | j                  t               y r   )r   DocumentEndTokenr1   s    r   r{   zScanner.fetch_document_end  s    %%&67r   c                 6   | j                  d       | j                          d| _        | j                  j	                         }| j                  j                  d       | j                  j	                         }| j                  j                   |||             y )Nr4   F   )rs   r   r;   rC   r   forwardr6   r   )r$   
TokenClass
start_markend_marks       r   r   z Scanner.fetch_document_indicator  sy     	2 	'') % [[))+
A;;''):j(;<r   c                 2    | j                  t        d       y )Nre   to_push)fetch_flow_collection_startFlowSequenceStartTokenr1   s    r   r|   z!Scanner.fetch_flow_sequence_start  s    (()?(Mr   c                 2    | j                  t        d       y )Nrf   r   )r   FlowMappingStartTokenr1   s    r   r}   z Scanner.fetch_flow_mapping_start  s    (()>(Lr   c                 H   | j                          | j                  j                  |       d| _        | j                  j                         }| j                  j                          | j                  j                         }| j                  j                   |||             y NT)r   r0   r   r;   rC   r   r   r6   )r$   r   r   r   r   s        r   r   z#Scanner.fetch_flow_collection_start  sy     	%%'  ) $[[))+
;;''):j(;<r   c                 .    | j                  t               y r   )fetch_flow_collection_endFlowSequenceEndTokenr1   s    r   r~   zScanner.fetch_flow_sequence_end  s    &&';<r   c                 .    | j                  t               y r   )r   FlowMappingEndTokenr1   s    r   r   zScanner.fetch_flow_mapping_end  s    &&':;r   c                 f   | j                          	 | j                  j                         }d| _        | j
                  j                         }| j
                  j                          | j
                  j                         }| j                  j                   |||             y # t        $ r Y w xY wNF)
r   r0   rW   
IndexErrorr;   rC   r   r   r6   r   )r$   r   poppedr   r   s        r   r   z!Scanner.fetch_flow_collection_end  s     	'')	&&**,F !&[[))+
;;''):j(;<  	 	s   B$ $	B0/B0c                    d| _         | j                          | j                  j                         }| j                  j	                          | j                  j                         }| j
                  j                  t        ||             y r   )r;   r   rC   r   r   r6   r   FlowEntryToken)r$   r   r   s      r   r   zScanner.fetch_flow_entry&  se     !%'')[[))+
;;'')>*h?@r   c                 `   | j                   s| j                  s&t        d d d| j                  j	                               | j                  | j                  j                        rA| j                  j	                         }| j                  j                  t        ||             n	 d| _        | j                          | j                  j	                         }| j                  j                          | j                  j	                         }| j                  j                  t        ||             y )Nz%sequence entries are not allowed hereT)r2   r;   r   rC   r   r   r"   r6   r   BlockSequenceStartTokenr   r   BlockEntryTokenr$   r#   r   r   s       r   r   zScanner.fetch_block_entry2  s     ((";KK((*	  t{{112{{++-""#:4#FG  $'') [[))+
;;'')?:x@Ar   c                 r   | j                   s| j                  s&t        d d d| j                  j	                               | j                  | j                  j                        r?| j                  j	                         }| j                  j                  t        ||             | j                    | _        | j                          | j                  j	                         }| j                  j                          | j                  j	                         }| j                  j                  t        ||             y )Nz!mapping keys are not allowed here)r2   r;   r   rC   r   r   r"   r6   r   BlockMappingStartTokenr   r   KeyTokenr   s       r   r   zScanner.fetch_keyQ  s      (("7KK((*	  t{{112{{++-""#9$#EF %)OO 3 	'') [[))+
;;'')8J9:r   c                    | j                   | j                  v r| j                  | j                      }| j                  | j                   = | j                  j                  |j                  | j
                  z
  t        |j                  |j                               | j                   sl| j                  |j                        rQ| j                  j                  |j                  | j
                  z
  t        |j                  |j                               d| _        n| j                   s2| j                  s&t        d d d| j                  j                               | j                   sd| j                  | j                  j                        r?| j                  j                         }| j                  j                  t        ||             | j                    | _        | j!                          | j                  j                         }| j                  j#                          | j                  j                         }| j                  j                  t%        ||             y )NFz#mapping values are not allowed here)r2   r<   r6   insertr   r8   r   r#   r   r"   r   r;   r   rC   r   r   r   r   
ValueToken)r$   r   r#   r   r   s        r   r   zScanner.fetch_valuep  s    ??d777++DOO<C))$//:KK  4#4#44hsxx6R ????3::.KK&&((4+<+<<.sxxB %*D! ?? ,,&=,,.	  ????4;;#5#56;;//1DKK&&'=dD'IJ )-$7D! ++- [[))+
;;''):j(;<r   c                     | j                          d| _        | j                  j                  | j	                  t
                     y r   )r   r;   r6   r   scan_anchor
AliasTokenr1   s    r   r   zScanner.fetch_alias  s5     	%%' %4++J78r   c                     | j                          d| _        | j                  j                  | j	                  t
                     y r   )r   r;   r6   r   r   AnchorTokenr1   s    r   r   zScanner.fetch_anchor  s5     	%%' %4++K89r   c                     | j                          d| _        | j                  j                  | j	                                y r   )r   r;   r6   r   scan_tagr1   s    r   r   zScanner.fetch_tag  s0     	%%' %4==?+r   c                 (    | j                  d       y )Nrn   stylefetch_block_scalarr1   s    r   r   zScanner.fetch_literal      c*r   c                 (    | j                  d       y )Nro   r   r   r1   s    r   r   zScanner.fetch_folded  r   r   c                     d| _         | j                          | j                  j                  | j	                  |             y r   )r;   r   r6   r   scan_block_scalarr$   r   s     r   r   zScanner.fetch_block_scalar  s5     !%'')411%89r   c                 (    | j                  d       y )Nrp   r   fetch_flow_scalarr1   s    r   r   zScanner.fetch_single      S)r   c                 (    | j                  d       y )Nrq   r   r   r1   s    r   r   zScanner.fetch_double  r   r   c                     | j                          d| _        | j                  j                  | j	                  |             y r   )r   r;   r6   r   scan_flow_scalarr   s     r   r   zScanner.fetch_flow_scalar  s5     	%%' %40078r   c                     | j                          d| _        | j                  j                  | j	                                y r   )r   r;   r6   r   
scan_plainr1   s    r   r   zScanner.fetch_plain  s3     	%%' !&4??,-r   c                 8    | j                   j                  dk(  ryy )Nr   T)rC   r"   r1   s    r   rv   zScanner.check_directive  s     ;;"r   c                     | j                   j                  dk(  r@| j                   j                  d      dk(  r"| j                   j                  d      t        v ryy )Nr   r   ---TrC   r"   prefixrt   _THE_END_SPACE_TABr1   s    r   rx   zScanner.check_document_start  K     ;;"""1%.KK$$Q'+==r   c                     | j                   j                  dk(  r@| j                   j                  d      dk(  r"| j                   j                  d      t        v ryy )Nr   r   ...Tr   r1   s    r   rz   zScanner.check_document_end
  r   r   c                 D    | j                   j                  d      t        v S )Nr   )rC   rt   r   r1   s    r   r   zScanner.check_block_entry  s     {{"&888r   c                 p    t        | j                        ry| j                  j                  d      t        v S )NTr   )rM   r2   rC   rt   r   r1   s    r   r   zScanner.check_key  s.      {{"&888r   c                    | j                   dk(  rt        | j                        ryt        | j                        r| j                  d   dk(  r#| j                  j                  d      t        vryy| j                  r?t        | j                  d   t              r"| j                  j                  d      t        vryy| j                  j                  d      t        v S )Nr   r   Tr4   re   r   F)
rH   rM   r2   r0   rC   rt   r   r6   rN   r   r1   s    r   r   zScanner.check_value"  s     **f4DOO$DOO$$$R(C/{{''*2DD$
 	 [[ZB%L{{''*2DD${{"&888r   c                    | j                   j                  } |       }| j                  dk(  r0|dvxs*  |d      t        vxr |dk(  xs | j                   xr |dv S |dvry |d      }|dk(  r	|t        vry|dk(  rt        | j                        r	|t        vry |d      t        vxr |dk(  xs | j                   xr |dv S )Nr   u      	
  -?:,[]{}#&*!|>'"%@`r   rc   z?:Trk   )rC   rt   rH   r   r2   rM   
_SPACE_TAB)r$   srpr   ch1s       r   r   zScanner.check_plain5  s     kkU**f4LL A00 H3YFt#6#E2:
 DD!f9$669doo.3j3H1v// 
#I=doo-<"*	
r   c                    | j                   j                  }| j                   j                  }| j                   j                  dk(  r |       dk(  r |        d}t        }|si |       dk(  r |         |       dk(  r |       dk(  r |       |vr |         |       |vr| j                         r| j                  s
d| _        nd}|siy )Nr      ﻿F #T)rC   rt   r   r    _THE_ENDscan_line_breakr2   r;   )r$   r   srffound_the_ends        r   rr   zScanner.scan_to_next_tokenZ  s    ( kkkk!!;;!cex&7E%3, %3,u|e8+E e8+##%,0D)  r   c                 <   | j                   j                  }| j                   j                  }| j                   j                         } |        | j	                  |      }d }|dk(  r,| j                  |      }| j                   j                         }nm|dk(  r,| j                  |      }| j                   j                         }n<| j                   j                         } |       t        vr |         |       t        vr| j                  |       t        ||||      S )NYAMLTAG)
rC   rt   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     kkkk!![[))+
''
36>22:>E{{++-HU]11*=E{{++-H{{++-H%x' %x'((4dE:x@@r   c                 b   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 r<|d	z  } ||      }d|cxk  rdk  rn d|cxk  rdk  r'n d|cxk  rdk  r5n |dv r<|s2t        d
|dt        |      z  | j                   j	                               | j                   j                  |      }| j                   j                  |        |       }|dvr2t        d
|dt        |      z  | j                   j	                               |S )Nr   09AZazz-_:.r   while scanning a directive6expected alphabetic or numeric character, but found %r     
  )rC   rt   r   r
   r   r   r   )r$   r   lengthr   r   r  s         r   r  zScanner.scan_directive_name  s1    kk[R3#"2s"2cR6F36F"PV,aKFVB R3#"2s"2cR6F36F"PV, ,H4PR8S$$&	  ""6*F#U..,H4PR8S$$&	  r   c           	         | j                   j                  }| j                   j                  } |       dk(  r |         |       dk(  r| j                  |      } |       dk7  r7t	        d|dt         |             z  | j                   j                                |        | j                  |      } |       dvr7t	        d|dt         |             z  | j                   j                               ||f| _        | j                  S )Nr  rd   r  z%expected a digit or '.', but found %rr  z%expected a digit or ' ', but found %r)rC   rt   r   scan_yaml_directive_numberr   r
   r   r-   )r$   r   r   r  majorminors         r   r  z!Scanner.scan_yaml_directive_value  s     kkkk!!eslE esl//
;5C<,7$su+E$$&	  	//
;511,7$su+E$$&	  #EN   r   c                    | j                   j                  }| j                   j                  } |       }d|cxk  rdk  s4n t        d|dt	        |      z  | j                   j                               d}d ||      cxk  rdk  rn n|dz  }d ||      cxk  rdk  rn t        | j                   j                  |            } ||       |S )Nr  r  r  zexpected a digit, but found %rr   r   )rC   rt   r   r   r
   r   intr   )r$   r   r   r  r   r  r  s          r   r  z"Scanner.scan_yaml_directive_number  s     kkkk!!Ur S ,048;$$&	  S['C'aKF S['C'DKK&&v./Fr   c                    | j                   j                  }| j                   j                  } |       dk(  r |         |       dk(  r| j                  |      } |       dk(  r |         |       dk(  r| j	                  |      }||fS )Nr  )rC   rt   r   scan_tag_directive_handlescan_tag_directive_prefix)r$   r   r   r  handler   s         r   r  z Scanner.scan_tag_directive_value  s     kkkk!!eslE esl//
;eslE esl//
;r   c                     | j                  d|      }| j                  j                         }|dk7  r2t        d|dt	        |      z  | j                  j                               |S )N	directiver  r  expected ' ', but found %r)scan_tag_handlerC   rt   r   r
   r   r$   r   r  r   s       r   r$  z!Scanner.scan_tag_directive_handle  se     $$[*=[[9,,tBx7$$&	  r   c                     | j                  d|      }| j                  j                         }|dvr2t        d|dt	        |      z  | j                  j                               |S )Nr(  r  r  r)  )scan_tag_urirC   rt   r   r
   r   r+  s       r   r%  z!Scanner.scan_tag_directive_prefix  sg     !!+z:[[..,,tBx7$$&	  r   c                    | j                   j                  }| j                   j                  } |       dk(  r |         |       dk(  r |       dk(  r" |       t        vr |         |       t        vr |       }|t        vr2t	        d|dt        |      z  | j                   j                               | j                          y )Nr  r  r  0expected a comment or a line break, but found %rrC   rt   r   r  r   r
   r   r  )r$   r   r   r  r   s        r   r  z#Scanner.scan_directive_ignored_line  s     kkkk!!eslE esl5C<%x' %x'UX,BT"XM$$&	  	r   c                    | j                   j                  }| j                   j                         } |       }|dk(  rd}nd}| j                   j                          d} ||      }t	        |      r|dz  } ||      }t	        |      r|s5t        d||dt        |      z  | j                   j                               | j                   j                  |      }| j                   j                  |       |dvr5t        d||dt        |      z  | j                   j                               | j                   j                         }	 ||||	      S )	Nr	   aliasanchorr   r   zwhile scanning an r  u     	
  ?:,[]{}%@`)rC   rt   r   r   r   r   r
   r   )
r$   r   r   r   	indicatorr  r  r   r  r   s
             r   r   zScanner.scan_anchor  sC    kk[[))+
E	DD[ $B'aKFVB $B' *.0H4PR8S$$&	  ""6*F# ::*.0H4PR8S$$&	  ;;'')%X66r   c           	      ~   | j                   j                  }| j                   j                         } |d      }|dk(  rd }| j                   j                  d       | j	                  d|      } |       dk7  r7t        d|dt         |             z  | j                   j                               | j                   j                          n|t        v rd }d}| j                   j                          ngd}d	}|d
vr|dk(  rd}n|dz  } ||      }|d
vrd}|r| j                  d|      }nd}| j                   j                          | j	                  d|      } |       }|d
vr2t        d|dt        |      z  | j                   j                               ||f}| j                   j                         }	t        |||	      S )Nr   <   tagro   zwhile parsing a tagzexpected '>', but found %rrm   Fr  Tzwhile scanning a tagr)  )
rC   rt   r   r   r-  r   r
   r   r*  TagToken)
r$   r   r   r   r&  suffixr  
use_handler  r   s
             r   r   zScanner.scan_tagN  s    kk[[))+
V9FKK"&&uj9Fu|")04;>KK((*	  KK!%%FFKK!FJ559!%J![ 55 F--eZ@##%&&uj9FU..&,tBx7$$&	   ;;'')z844r   c                 X   | j                   j                  }|dk(  rd}nd}g }| j                   j                         }| j                   j                          | j	                  |      \  }}| j                  |      }	| j                  dz   }
|R|
dk  r,|dvs&| j                  dk(  rt        | j                  dd      rd}
| j                         \  }}}t        |
|      }n#|
dk  rd}
|
|z   dz
  }| j                  |      \  }}d}| j                   j                  |k(  rw |       d	k7  rl|j                  |        |       d
v}d} ||      t        vr|dz  } ||      t        vr|j!                  | j                   j#                  |             | j                   j                  |       | j%                         }| j                  |      \  }}|dv r&|
dk(  r!| j'                         s| j)                         rn| j                   j                  |k(  r\ |       d	k7  rR|r|r|dk(  r|j!                  d       |r$|dk(  r|r |       d
vr|s%|j!                  d       n|j!                  |       nn%| j                   j                  |k(  r |       d	k7  rlg }|dv r|j!                  |       |du r|j                  |       n|dv r|j                  |       t+        dj-                  |      d|||      }|	|j/                  |	g       t1        |      dkD  r| j3                         }|r:|j!                  d|d   j                  z  |d   z          | j3                         }|r:| j                   j                         }t5        dj-                  |      ||      }|j7                  |       |S )Nro   TFr   z|>r   0top_level_block_style_scalar_no_indent_error_1_1 ra   r   r   
r  r   r   )rC   rt   r   r   scan_block_scalar_indicatorsscan_block_scalar_ignored_liner9   rH   r*   r)   scan_block_scalar_indentationmaxscan_block_scalar_breaksr"   extendr  r   r   r  rx   rz   ScalarTokenjoinadd_pre_commentsr/   rr   CommentTokenadd_post_comment)r$   r   rtr   foldedchunksr   chomping	incrementblock_scalar_comment
min_indentbreaks
max_indentr   r9   
line_breakleading_non_spacer  trailingtokenr^   comment_end_marks                         r   r   zScanner.scan_block_scalar  s    kkC<FF[[))+
 	"??
K)#BB:N [[1_
A~T!33v=KKF 
+/+M+M+O(FJZ0FA~
)+a/F#<<VDFH
 kk  F*su}MM&! #U 2Ff+X-! f+X-MM$++,,V45KK'--/J#<<VDFH}q ,,.$2I2I2K{{!!V+ &Z4%7MM$'"d*)U*!c*MM*- ] kk  F*su}d |#MM*%tMM&!&OOF# BGGFOUJ%P+""$8#9:x=1 --/Ggaj&7&7 7'!* DE113   ${{335"2778#4h@PQG""7+r   c                    | j                   j                  }d }d } |       }|dv r|dk(  rd}nd}| j                   j                           |       }|dv rt        |      }|dk(  r&t	        d|d| j                   j                               | j                   j                          n|dv rt        |      }|dk(  r&t	        d|d| j                   j                               | j                   j                           |       }|dv r$|dk(  rd}nd}| j                   j                           |       }|d	vr2t	        d|d
t        |      z  | j                   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)rC   rt   r   r"  r   r   r
   )r$   r   r   rO  rP  r   s         r   rA  z$Scanner.scan_block_scalar_indicators  sq    kk	U:Sy KK!B\!G	>&7"&,,.  ##%<BIA~"3UKK((*	  KK!BTz9#H$H##%U../KdSUhV$$&	  ""r   c                    | j                   j                  }| j                   j                  }d}d } |       dk(  r| |       z  } |         |       dk(  r |       dk(  r.|} |       t        vr| |       z  } |         |       t        vr |       }|t        vr2t	        d|dt        |      z  | j                   j                               | j                          |S )Nr>  r  r  r]  r/  r0  )r$   r   r   r  r   r^   r   s          r   rB  z&Scanner.scan_block_scalar_ignored_line+  s     kkkk!!eslceOFE esl 5C<G%x'35  %x' UX/BT"XM$$&	  	r   c                    | j                   j                  }| j                   j                  }g }d}| j                   j                         } |       dv r |       dk7  r:|j	                  | j                                | j                   j                         }n6 |        | j                   j                  |kD  r| j                   j                  } |       dv r|||fS )Nr       
  r  )rC   rt   r   r   r   r  r"   )r$   r   r  rN  rT  r   s         r   rC  z%Scanner.scan_block_scalar_indentationE  s     kkkk!!
;;'')e..u|d2245;;//1;;%%
2!%!3!3J e.. z8++r   c                 j   g }| j                   j                  }| j                   j                  }| j                   j                         }| j                   j                  |k  r5 |       dk(  r+ |        | j                   j                  |k  r |       dk(  r+ |       dv r|j                  | j                                | j                   j                         }| j                   j                  |k  r5 |       dk(  r+ |        | j                   j                  |k  r |       dk(  r+ |       dv r||fS )Nr  
   
  )rC   rt   r   r   r"   r   r  )r$   r9   rN  r   r  r   s         r   rE  z Scanner.scan_block_scalar_breaksW  s     kkkk!!;;'')kk  6)ceslE kk  6)cesle--MM$..01{{++-H++$$v-#%3, ++$$v-#%3, e--
 xr   c                 P   |dk(  rd}nd}| j                   j                  }g }| j                   j                         } |       }| j                   j                          |j	                  | j                  ||              |       |k7  rM|j	                  | j                  ||             |j	                  | j                  ||              |       |k7  rM| j                   j                          | j                   j                         }t        dj                  |      d|||      S )Nrq   TFr>  )	rC   rt   r   r   rF  scan_flow_scalar_non_spacesscan_flow_scalar_spacesrG  rH  )r$   r   doubler   rN  r   quoter   s           r   r   zScanner.scan_flow_scalarg  s     C<FFkk[[))+
d66vzJKeunMM$66vzJKMM$::6:NO eun 	;;'')2776?E:xOOr   r  ra   r  r@  bt	nr?  vfrer  rq   /\N   _    Lu    Pu    r7        )xuUc                    g }| j                   j                  }| j                   j                  }	 d} ||      dvr|dz  } ||      dvr|dk7  r2|j                  | j                   j	                  |              ||        |       }|s+|dk(  r& |d      dk(  r|j                  d        |d       n|r|dk(  s|s|dv r|j                  |        |        nv|rq|dk(  rk |         |       }|| j
                  v r'|j                  | j
                  |           |        n*|| j                  v r| j                  |   } |        t        |      D ]F  } ||      dvst        d	|d
|t         ||            fz  | j                   j                                t        | j                   j	                  |      d      }	|j                  t        |	              ||       nj|dv r2| j                          |j                  | j                  ||             n4t        d	|dt        |      z  | j                   j                               |S &)Nr   u    
'"\ 	  r   rp   r7  z"\rv  0123456789ABCDEFabcdefz%while scanning a double-quoted scalarz?expected escape sequence of %d hexdecimal numbers, but found %r   u
   
  z!found unknown escape character %r)rC   rt   r   r   r   ESCAPE_REPLACEMENTSESCAPE_CODESranger   r
   r   r"  r   r  rF  scan_flow_scalar_breaks)
r$   rf  r   rN  r   r  r  r   kcodes
             r   rd  z#Scanner.scan_flow_scalar_non_spaces  s*    kkkk!!Ff+%EE! f+%EE{dkk0089FBbCiCFcMc"AR3Y2;b!B$JU111MM$":":2">?E4,,,!..r2FE"6] q6)AA". G *!8;A4A<:P!Q $ 4 4 6#  t{{11&92>DMM&,/K11((*MM$">">vz"RS&?";d2hF,,.	  ] r   c                 &   | j                   j                  }g }d} ||      dv r|dz  } ||      dv r| j                   j                  |      }| j                   j                  |        |       }|dk(  r&t	        d|d| j                   j                               |dv r_| j                         }| j                  ||      }	|dk7  r|j                  |       n|	s|j                  d	       |j                  |	       |S |j                  |       |S )
Nr   r   r   ra   while scanning a quoted scalarzfound unexpected end of streamrb  r?  r  )
rC   rt   r   r   r   r   r  r  r   rF  )
r$   rf  r   r   rN  r  whitespacesr   rU  rS  s
             r   re  zScanner.scan_flow_scalar_spaces  s    kk&kU"aKF &kU"kk((0F#U:00$$&	  ))--/J11&*EFT!j)c"MM&!  MM+&r   c                    g }| j                   j                  }| j                   j                  }	 | j                   j                  d      }|dk(  s|dk(  r4 |d      t        v r&t        d|d| j                   j                                |       dv r |         |       dv r |       dv r |j                  | j                                n|S )Nr   r   r   r  z#found unexpected document separatorr   rb  )	rC   rt   r   r   r   r   r   r   r  )r$   rf  r   rN  r   r  r   s          r   r  zScanner.scan_flow_scalar_breaks  s     kkkk!! [[''*F%6U?ABT8T"49KK((*	  %5. %5.u..d2245! r   c                 n   | j                   j                  }| j                   j                  }g }| j                   j                         }|}| j                  dz   }g }	 d} |       dk(  rns	  ||      }	|	dk(  r ||dz         t
        vrnP|	dk(  r| j                  dk7  rn;|	t
        v s2| j                  s|	dk(  r ||dz         t
        v s| j                  r|	dv rn|dz  }u| j                  rA|	dk(  r< ||dz         d	vr/ ||       t        d
|d| j                   j                         d      |dk(  rnd| _	        |j                  |       |j                  | j                   j                  |              ||       | j                   j                         }| j                  ||      }|r/ |       dk(  s%| j                  s| j                   j                  |k  rnt        dj!                  |      d||      }
|r8|d   dk(  r0t#        dj!                  |      dz   ||      }|
j%                  |       |
S )Nr   Tr   r  rk   rj   r   z,:?[]{}u     	
  ,[]{}zwhile scanning a plain scalarzfound unexpected ':'zGPlease check http://pyyaml.org/wiki/YAMLColonInFlowContext for details.Fr>  r?  )rC   rt   r   r   r9   r   rH   r2   r   r;   rF  r   r   scan_plain_spacesr"   rG  rH  rJ  rK  )r$   r   r  rN  r   r   r9   spacesr  r   rX  r^   s               r   r   zScanner.scan_plain  s&    kkkk!![[))+
q
 Fu|[9VaZ8J!J3Y4#B#Bf#L,, OO#I
O/AAB)O!! & #I
O+KKF"3*KK((*#  {$)D!MM&!MM$++,,V45K{{++-H++FJ?F5C<DKK,>,>,Ge h BGGFOT:xHfQi4'"2776?T#9:xPG""7+r   c                 H   | j                   j                  }| j                   j                  }g }d} ||      dv r|dz  } ||      dv r| j                   j                  |      }| j                   j                  |        |       }|dv r| j	                         }	d| _        | j                   j                  d      }
|
dk(  s|
dk(  r |d      t        v ry g } |       d	v ro |       dk(  r |        nS|j                  | j	                                | j                   j                  d      }
|
dk(  s|
dk(  r |d      t        v ry  |       d	v ro|	d
k7  r|j                  |	       n|s|j                  d       |j                  |       |S |r|j                  |       |S )Nr   r  r   rb  Tr   r   r   r`  r?  )	rC   rt   r   r   r  r;   r   r   rF  )r$   r9   r   r   r  rN  r  r  r   rU  r   rS  s               r   r  zScanner.scan_plain_spacesP  s   
 kkkk!!&kS aKF &kS kk((0F#U''--/J$(D![[''*F%6U?ABT8TF%225C<EMM$"6"6"89![[//2F%6U?A+A,  %22 T!j)c"MM&!  MM+&r   c                    | j                   j                  } |       }|dk7  r5t        d||dt        |      z  | j                   j	                               d} ||      }|dk7  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 r<|dz  } ||      }d|cxk  rdk  rn d|cxk  rd	k  r'n d
|cxk  rdk  r5n |dv r<|dk7  rP| j                   j                  |       t        d||dt        |      z  | j                   j	                               |dz  }| j                   j                  |      }| j                   j                  |       |S )Nrm   while scanning a zexpected '!', but found %rr   r  r  r  r  r  r  r  z-_)rC   rt   r   r
   r   r   r   )r$   r  r   r   r   r  r  s          r   r*  zScanner.scan_tag_handlex  sY   
 kkU9)-/,tBx7$$&	  [9r S C2$4$4r8HS8HBRVJ![ r S C2$4$4r8HS8HBRVJ Sy##F+"-13048;KK((*	  aKF""6*F#r   c                 j   | j                   j                  }g }d} ||      }d|cxk  rdk  s4n d|cxk  rdk  s'n d|cxk  rdk  sn |dv s| j                  d	kD  r|d
k(  r|dk(  ri|j                  | j                   j	                  |             | j                   j                  |       d}|j                  | j                  ||             n|dz  } ||      }d|cxk  rdk  rn d|cxk  rdk  rn d|cxk  rdk  rn |dv r| j                  d	kD  r|d
k(  r|dk7  rG|j                  | j                   j	                  |             | j                   j                  |       d}|s5t        d||dt        |      z  | j                   j                               dj                  |      S )Nr   r  r  r  r  r  r  z-;/?:@&=+$,_.!~*'()[]%r   r  rb   r   zwhile parsing a zexpected URI, but found %rr>  )rC   rt   rH   r   r   r   scan_uri_escapesr   r
   r   rH  )r$   r  r   r   rN  r  r   s          r   r-  zScanner.scan_tag_uri  s    kk[2bCbC--0069rSySydkk0089##F+d33D*EF!VB 2bCbC--0069rSy Q;MM$++,,V45KK'F(,.,tBx7$$&	  wwvr   c                 L   | j                   j                  }| j                   j                  }g }| j                   j                         } |       dk(  r |        t	        d      D ]G  } ||      dvst        d||dt         ||            z  | j                   j                                t        r5|j                  t        | j                   j                  d      d             n=|j                  t        t        | j                   j                  d      d                    |d        |       dk(  r	 t        rt        |      j                  d      }|S t        dj                  |      d      }	 |S # t         $ r}	t        d||t#        |	      |      d }	~	ww xY w)	Nrb   r7  r  r  zBexpected URI escape sequence of 2 hexdecimal numbers, but found %rr  zutf-8r   )rC   rt   r   r   r  r   r
   r   r   r"  r   chrbytesdecodeunicoderH  UnicodeDecodeErrorstr)
r$   r  r   r   r  
code_bytesr#   r  r  excs
             r   r  zScanner.scan_uri_escapes  sw    kkkk!!
{{##%eslE1X q6!99&157"(*.s1v,7,,.  !!#dkk&8&8&;R"@A!!#c$++*<*<Q*?&D"EFF esl 	j)009    4g>
 	 " 	)-/SXt 	s   ; E; E; ;	F#FF#c                 *   | j                   j                         }|dv rU| j                   j                  d      dk(  r| j                   j                  d       y| j                   j                          y|dv r| j                   j                          |S y)N   
r7  
r?       r>  rC   rt   r   r   )r$   r   s     r   r  zScanner.scan_line_break  s     [[{{!!!$.##A&  ##%>!KK!Ir   r   F)Rr   r   r   r%   propertyr2   r+   rC   rH   rR   rU   rX   rK   r_   rL   r[   rZ   r   r   rs   r   r7   ru   rw   ry   r{   r   r|   r}   r   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rv   rx   rz   r   r   r   r   rr   r   r  r  r  r  r$  r%  r  r   r   r   rA  rB  rC  rE  r   r  r  rd  re  r  r   r  r*  r-  r  r  r   r   r   r   r   B   s   !& & &4'l 	( 	( . ."&"l
`  5(=0;$:2X
2:8= NM==<=&
AB>;>;=z9:,++:**9	.		9
99&!
J%NA,8!6( (-7^05dun2#h4,$  P2TV 	V 	V	
 	f 	V 	V 	V 	V 	V 	V 	S 	S 	d 	V  	V!" 	X#$ 	X%* +L4l<0KZ&P!F"H Dr   r   c                   @    e Zd Zd Zd Zd Zd Zd Zd Zd
dZ	ddZ
y	)r   c                     | j                         r!| j                          | j                         r!| j                          t        | j                        r%|sy|D ]  }t        | j                  d   |      s y yrJ   )rK   rL   _gather_commentsrM   r6   rN   rO   s      r   rR   zRoundTripScanner.check_token  sq     ##%""$ ##%!  dkk!nf5  r   c                     | j                         r!| j                          | j                         r!| j                          t        | j                        r| j                  d   S y rT   )rK   rL   r  rM   r6   r1   s    r   rU   zRoundTripScanner.peek_token  sS     ##%""$ ##%;;q>!r   c                    g }| j                   s|S t        | j                   d   t              rA| j                   j                  d      }| xj                  dz  c_        |j                  |       | j                         r| j                          | j                   s|S t        | j                   d   t              rA| xj                  dz  c_        | j                   j                  d      }|j                  |       | j                         rt        |      dk\  r| j                   d   j                  |       | j                  s*t        | j                         dk  r| j                          yyy)zcombine multiple comment linesr   r   r7  N)r6   rN   rJ  rW   r8   r   rK   rL   r/   rI  r5   )r$   commentsr^   s      r   r  z!RoundTripScanner._gather_comments  s    {{Odkk!nl3kkooa(G"OOG$##%""$;;$++a.,7!!Q&!++//!,( ##% x=AKKN++H5yyS-1""$ 2yr   c                 	   | j                         r!| j                          | j                         r!| j                          t        | j                        rgt        | j                        dkD  rt        | j                  d   t        t        t        t        f      rt        | j                  d   t              r| j                  d   j                  j                  | j                  d   j                  j                  k(  rC| xj                  dz  c_        | j                  j!                  d      }| j                          t        | j                        dkD  rt        | j                  d   t              r| xj                  dz  c_        | j                  j!                  d      }|j"                  d|j                  j$                  z  z   |j"                  z   |_        | j                          t        | j                        dkD  rt        | j                  d   t              r| j                  d   j'                  |       nGt        | j                        dkD  r.t        | j                  d   t              rt        | j                  d   t              r| j                  d   j                  j                  | j                  d   j                  j                  k7  r| xj                  dz  c_        | j                  j!                  d      }d|j                  j                  | j                  d   j                  j                  z
  z  d|j                  j$                  z  z   |j"                  z   |_        | j                  d   j'                  |       | j                          t        | j                        dkD  rt        | j                  d   t              r| xj                  dz  c_        | j                  j!                  d      }|j"                  d|j                  j$                  z  z   |j"                  z   |_        | j                          t        | j                        dkD  rt        | j                  d   t              r| xj                  dz  c_        | j                  j!                  d      S y )Nr   r   r  r?  )rK   rL   r  rM   r6   r/   rN   rG  r   r   r   rJ  r   r!   r   r8   rW   r  r"   rK  )r$   cc1s      r   rX   zRoundTripScanner.get_token*  sh    ##%""$ ##% DKK 1$KKN#",+	 t{{1~|<KKN++00DKKN4M4M4R4RR!!Q&!KKOOA&&&($++&*z$++a.,/W%%*%+Bggr}}/C/C)CDrxxOAG**,	 $++&*z$++a.,/W
 A//2DKK 1$t{{1~{;t{{1~|<KKN++00DKKN4M4M4R4RR!!Q&!KKOOA&ALL--A0G0G0L0LLMQ\\0002gg 
 A//2&&($++&*z$++a.,/W%%*%+Bggr}}/C/C)CDrxxOAG**,	 $++&*z$++a.,/W
 ";;??1%%r   c                     |\  }}}|r|d   dk(  r|d d }|r	|d   dk(  r| j                   j                  t        |||             y )Nr4   r  )r6   r   rJ  )r$   r^   r  r   r   s        r   r_   zRoundTripScanner.fetch_commente  sV    &-#z8b	S( #2JE b	S( 	<z8DEr   c                 8   | j                   j                  }| j                   j                  }| j                   j                  dk(  r |       dk(  r |        d}|s |       dk(  r |         |       dk(  r |       }|dk(  r| j                   j	                         }|} |        |t
        vr' |       }|dk(  r|dz  }n||z  } |        |t
        vr'| j                         }t        |      dkD  r$||z  }| j                         }t        |      dkD  r$| j                   j	                         }| j                  sd| _	        |||fS t        | j                               r| j                   j	                         }| j                  sd| _	         |       }|dk(  r{| j                   j	                         }d	}|r| j                  d
      }||z  }|r |       dk(  r|j                  dd      d   dz   }| j                   j	                         }|||fS d}|sy )Nr   r   Fr  r  ra   r?  Tr>  )
empty_liner   )rC   rt   r   r    r   r  r  r/   r2   r;   rM   rsplit)r$   r   r  r  r   r   r^   r   s           r   rr   z#RoundTripScanner.scan_to_next_tokenp  s   * kkkk!!;;!cex&7E%3, %3,BSy![[113
(BTz  4rMGE ( ))+"gkrMG--/B "gk  ;;//1,0D)
H44D((*+![[113
,0D)U:!%!5!5!7J G!11T1B2  u|")..q"9!"<t"C#{{335H"J88Y Z r   c                 n   | j                   j                         }|dv rU| j                   j                  d      dk(  r| j                   j                  d       y| j                   j                          y|dv r| j                   j                          |S |r |dv r| j                   j                          |S y)Nr  r7  r  r?  r  z	 r>  r  )r$   r  r   s      r   r  z RoundTripScanner.scan_line_break  s     [[{{!!!$.##A&  ##%>!KK!IB%KKK!Ir   c                 2    t         j                  | ||      S )N)rL  )r   r   )r$   r   rL  s      r   r   z"RoundTripScanner.scan_block_scalar  s    ((u(<<r   Nr  )T)r   r   r   rR   rU   r  rX   r_   rr   r  r   r   r   r   r   r     s.    %29vFGR2=r   r   N)
__future__r   r   r   r   errorr   r6   compatr
   r   r   r   r   typingAnyDictOptionalListUnionTextVersionType__all__r  r   r   r   objectr   r   r   r   r   r   <module>r     sm    S R< #  D D : $0 
	? 	
 
sf sl5\=w \=r   