
    Be\                    6   d dl Z d dlmZmZ d dl d dlmZmZmZm	Z	 	 g dZdZdZdZd	 Z G d
 de      Z G d d      Z G d d      Z G d de      Zd Zd Z G d d      Z G d de      Z G d de      Z G d de      Z  G d d      Z! G d de      Z"y)    N)MarkedYAMLErrorCommentMark)*)_Fcheck_anchorname_charnprintnprintf)ScannerRoundTripScannerScannerErroru   
   u    
 	   	c                      t        | i |S N)r	   )argskws     3lib/python3.12/site-packages/ruamel/yaml/scanner.pyxprintfr   0   s    DB    c                       e Zd Zy)r   N)__name__
__module____qualname__ r   r   r   r   6   s    r   r   c                       e Zd Zd Zy)	SimpleKeyc                 X    || _         || _        || _        || _        || _        || _        y r   )token_numberrequiredindexlinecolumnmark)selfr   r   r   r    r!   r"   s          r   __init__zSimpleKey.__init__=   s-    ( 
		r   N)r   r   r   r$   r   r   r   r   r   :   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__H   sN     ;;"wt{{J'M'U#'DKK  r   c                 ,    t        | j                        S r   )lenflow_contextr#   s    r   
flow_levelzScanner.flow_level[   s     4$$%%r   c                     d| _         g | _        g | _        | j                          d| _        d| _        g | _        d| _        i | _        y )NFr   T)	doner/   tokensfetch_stream_starttokens_takenindentindentsallow_simple_keypossible_simple_keysr0   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_readerr0   s    r   rB   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=   )rA   r(   resolverprocessing_versionr0   s    r   scanner_processing_versionz"Scanner.scanner_processing_version   s8     4;;&;;'':::{{---r   c                     | j                         r!| j                          | j                         r!t        | j                        dkD  r%|sy|D ]  }t	        | j                  d   |      s y yNr   TF)need_more_tokensfetch_more_tokensr.   r5   
isinstancer#   choiceschoices      r   check_tokenzScanner.check_token   sj     ##%""$ ##%t{{a!  dkk!nf5  r   c                     | j                         r!| j                          | j                         r!t        | j                        dkD  r| j                  d   S y Nr   )rJ   rK   r.   r5   r0   s    r   
peek_tokenzScanner.peek_token   sN     ##%""$ ##%t{{a;;q>!  r   c                     | j                         r!| j                          | j                         r!t        | j                        dkD  r0| xj                  dz  c_        | j                  j                  d      S y Nr      )rJ   rK   r.   r5   r7   popr0   s    r   	get_tokenzScanner.get_token   sd     ##%""$ ##%t{{a";;??1%%  r   c                     | j                   ryt        | j                        dk(  ry| j                          | j	                         | j
                  k(  ryy)NFr   T)r4   r.   r5   stale_possible_simple_keysnext_possible_simple_keyr7   r0   s    r   rJ   zScanner.need_more_tokens   sK    99t{{q  	'')((*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 tI        d|      | j                  jK                               )N %-.[{]},?:r   &!|>'"z!while scanning for the next tokenz2found character {ch!r} that cannot start any tokench)&scan_to_next_tokenr_   rZ   unwind_indentrB   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_tagr1   fetch_literalfetch_foldedfetch_singlefetch_doublecheck_plainfetch_plainr   r   get_mark)r#   r^   rs   s      r   rK   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$$&& ##%% /CK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_keyL  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    rB   r   r   r   r"   r   )r#   r   r   s      r   rZ   z"Scanner.stale_possible_simple_keys\  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   )r1   r8   rB   r!   r:   remove_possible_simple_keyr7   r.   r5   r   r   r    r   r;   )r#   r   r   r   s       r   save_possible_simple_keyz Scanner.save_possible_simple_keyp  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   )r1   r;   r   r   r"   rB   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   )
boolr1   r8   rB   r   r9   rW   r5   appendBlockEndToken)r#   r!   r"   s      r   ru   zScanner.unwind_indent  sn        kkF";;'')D,,**,DKKK}T489 kkF"r   c                 |    | j                   |k  r-| j                  j                  | j                          || _         yy)NTF)r8   r9   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)rB   r   r5   r   StreamStartTokenr   r#   r"   s     r   r6   zScanner.fetch_stream_start  s<    
 {{##%+D$AUAUVWr   c                     | j                  d       | j                          d| _        i | _        | j                  j                         }| j                  j                  t        ||             d| _	        y )Nr3   FT)
ru   r   r:   r;   rB   r   r5   r   StreamEndTokenr4   r   s     r   rw   zScanner.fetch_stream_end  s`     	2'') %$&!{{##%>$56	r   c                     | j                  d       | j                          d| _        | j                  j	                  | j                                y )Nr3   F)ru   r   r:   r5   r   scan_directiver0   s    r   ry   zScanner.fetch_directive  sE     	2 	'') % 	4..01r   c                 .    | j                  t               y r   )fetch_document_indicatorDocumentStartTokenr0   s    r   r{   zScanner.fetch_document_start  s    %%&89r   c                 .    | j                  t               y r   )r   DocumentEndTokenr0   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 )Nr3   F   )ru   r   r:   rB   r   forwardr5   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FlowSequenceStartTokenr0   s    r   r~   z!Scanner.fetch_flow_sequence_start  s    (()?(Mr   c                 2    | j                  t        d       y )Nrf   r   )r   FlowMappingStartTokenr0   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   r/   r   r:   rB   r   r   r5   )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FlowSequenceEndTokenr0   s    r   r   zScanner.fetch_flow_sequence_end  s    &&';<r   c                 .    | j                  t               y r   )r   FlowMappingEndTokenr0   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   r/   rW   
IndexErrorr:   rB   r   r   r5   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   rB   r   r   r5   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)r1   r:   r   rB   r   r   r!   r5   r   BlockSequenceStartTokenr   r   BlockEntryTokenr#   r"   r   r   s       r   r   zScanner.fetch_block_entry7  s     (("$ GI]I]I_  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)r1   r:   r   rB   r   r   r!   r5   r   BlockMappingStartTokenr   r   KeyTokenr   s       r   r   zScanner.fetch_keyS  s      (("$ CT[[EYEYE[ 
 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)r1   r;   r5   insertr   r7   r   r"   r   r!   r   r:   r   rB   r   r   r   r   
ValueToken)r#   r   r"   r   r   s        r   r   zScanner.fetch_valueo  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:   r5   r   scan_anchor
AliasTokenr0   s    r   r   zScanner.fetch_alias  s5     	%%' %4++J78r   c                     | j                          d| _        | j                  j                  | j	                  t
                     y r   )r   r:   r5   r   r   AnchorTokenr0   s    r   r   zScanner.fetch_anchor  s5     	%%' %4++K89r   c                     | j                          d| _        | j                  j                  | j	                                y r   )r   r:   r5   r   scan_tagr0   s    r   r   zScanner.fetch_tag  s0     	%%' %4==?+r   c                 (    | j                  d       y )Nrn   stylefetch_block_scalarr0   s    r   r   zScanner.fetch_literal      c*r   c                 (    | j                  d       y )Nro   r   r   r0   s    r   r   zScanner.fetch_folded  r   r   c                     d| _         | j                          | j                  j                  | j	                  |             y r   )r:   r   r5   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_scalarr0   s    r   r   zScanner.fetch_single      S)r   c                 (    | j                  d       y )Nrq   r   r   r0   s    r   r   zScanner.fetch_double  r   r   c                     | j                          d| _        | j                  j                  | j	                  |             y r   )r   r:   r5   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:   r5   r   
scan_plainr0   s    r   r   zScanner.fetch_plain  s3     	%%' !&4??,-r   c                 8    | j                   j                  dk(  ryy )Nr   T)rB   r!   r0   s    r   rx   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rB   r!   prefixrv   _THE_END_SPACE_TABr0   s    r   rz   zScanner.check_document_start  J     ;;"{{!!!$-$++2B2B12EI[2[r   c                     | j                   j                  dk(  r@| j                   j                  d      dk(  r"| j                   j                  d      t        v ryy )Nr   r   ...Tr   r0   s    r   r|   zScanner.check_document_end  r   r   c                 D    | j                   j                  d      t        v S )NrV   )rB   rv   r   r0   s    r   r   zScanner.check_block_entry  s     {{"&888r   c                 p    t        | j                        ry| j                  j                  d      t        v S )NTrV   )r   r1   rB   rv   r   r0   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rV   rV   Tr3   re   rV   F)
rG   r   r1   r/   rB   rv   r   r5   rL   r   r0   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      	
  -?:,[]{}#&*!|>'"%@`rV   rc   z?:Trk   )rB   rv   rG   r   r1   r   
_SPACE_TAB)r#   srprs   ch1s       r   r   zScanner.check_plain.  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)rB   rv   r   r   _THE_ENDscan_line_breakr1   r:   )r#   r   srffound_the_ends        r   rt   zScanner.scan_to_next_tokenS  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)
rB   rv   r   r   scan_directive_namescan_yaml_directive_valuescan_tag_directive_valuer  scan_directive_ignored_lineDirectiveToken)r#   r   r  r   namevaluer   s          r   r   zScanner.scan_directivez  s     kkkk!![[))+
''
36>22:>E{{++-HU]11*=E{{++-H{{++-H%x' %x'((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 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<|s1t        d
|t        d|      | j                   j	                               | j                   j                  |      }| j                   j                  |        |       }|dvr1t        d
|t        d|      | j                   j	                               |S )Nr   09AZazz-_:.rV   while scanning a directive:expected alphabetic or numeric character, but found {ch!r}rr        
  )rB   rv   r   r   r   r   r   )r#   r   lengthr   rs   r  s         r   r  zScanner.scan_directive_name  s/    kk[R3#"2s"2cR6F36F"PV,aKFVB R3#"2s"2cR6F36F"PV, ,OTVW$$&	  ""6*F#U..,OTVW$$&	  r   c           	         | j                   j                  }| j                   j                  } |       dk(  r |         |       dk(  r| j                  |      } |       dk7  r6t	        d|t        d |             | j                   j                                |        | j                  |      } |       dvr6t	        d|t        d |             | j                   j                               ||f| _        | j                  S )Nr  rd   r  z/expected a digit or '.', but found {srp_call!r}srp_callr  )rB   rv   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<,DsuU$$&	  	//
;511,DsuU$$&	  #EN   r   c                    | j                   j                  }| j                   j                  } |       }d|cxk  rdk  s3n t        d|t	        d|      | 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 {ch!r}rr   r   rV   )rB   rv   r   r   r   r   intr   )r#   r   r   r  rs   r  r  s          r   r"  z"Scanner.scan_yaml_directive_number  s     kkkk!!Ur S ,7B?$$&	  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  )rB   rv   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  r1t        d|t	        d|      | j                  j                               |S )N	directiver  r  expected ' ', but found {ch!r}rr   )scan_tag_handlerB   rv   r   r   r   r#   r   r  rs   s       r   r(  z!Scanner.scan_tag_directive_handle  sd     $$[*=[[9,3;$$&	  r   c                     | j                  d|      }| j                  j                         }|dvr1t        d|t	        d|      | j                  j                               |S )Nr,  r  r  r-  rr   )scan_tag_urirB   rv   r   r   r   r/  s       r   r)  z!Scanner.scan_tag_directive_prefix  sf     !!+z:[[..,3;$$&	  r   c                    | j                   j                  }| j                   j                  } |       dk(  r |         |       dk(  r |       dk(  r" |       t        vr |         |       t        vr |       }|t        vr1t	        d|t        d|      | j                   j                               | j                          y )Nr  r  r  4expected a comment or a line break, but found {ch!r}rr   rB   rv   r   r  r   r   r   r  )r#   r   r   r  rs   s        r   r  z#Scanner.scan_directive_ignored_line  s     kkkk!!eslE esl5C<%x' %x'UX,IbQ$$&	  	r   c                    | j                   j                  }| j                   j                         } |       }|dk(  rd}nd}| j                   j                          d} ||      }t	        |      r|dz  } ||      }t	        |      r|s<t        t        d|      |t        d|	      | j                   j                               | j                   j                  |      }| j                   j                  |       |d
vr<t        t        d|      |t        d|	      | j                   j                               | j                   j                         }	 ||||	      S )Nr   aliasanchorr   rV   while scanning an {name!s}r  r  rr   u     	
  ?:,[]{}%@`)rB   rv   r   r   r   r   r   r   )
r#   r   r   r   	indicatorr  r  rs   r  r   s
             r   r   zScanner.scan_anchor  sK    kk[[))+
E	DD[ $B'aKFVB $B' /d;OTVW$$&	  ""6*F# ::/d;OTVW$$&	  ;;'')%X66r   c           	      z   | j                   j                  }| j                   j                         } |d      }|dk(  rd }| j                   j                  d       | j	                  d|      } |       dk7  r6t        d|t        d |             | 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r1t        d|t        d|      | j                   j                               ||f}| j                   j                         }	t        |||	      S )NrV   <   tagro   zwhile parsing a tagz$expected '>', but found {srp_call!r}r   rm   Fr  Tzwhile scanning a tagr-  rr   )
rB   rv   r   r   r1  r   r   r   r.  TagToken)
r#   r   r   rs   r*  suffixr  
use_handler  r   s
             r   r   zScanner.scan_tagG  s    kk[[))+
V9FKK"&&uj9Fu|")=NKK((*	  KK!%%FFKK!FJ559!%J![ 55 F--eZ@##%&&uj9FU..&3;$$&	   ;;'')z844r   c                    | 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                  -t        | j                  dd      }||	|j/                  |	g       t1        |      dkD  r(| j                  dt        | j                  dd       }|K|j2                  t1        |      z
  }|D ].  }|d   dk(  sJ | j4                  j7                  |d|       |dz  }0 | j9                         }|r:|j!                  d|d   j                  z  |d   z          | j9                         }|r:| j                  `t        | j                  dd      }|G| j                   j                         }t;        dj-                  |      ||      }|j=                  |       |S )Nro   TFrV   z|>r   0top_level_block_style_scalar_no_indent_error_1_1 ra   r   r   
r  r   r   comment_handlingr3   )rB   rv   r   r   scan_block_scalar_indicatorsscan_block_scalar_ignored_liner8   rG   r)   r(   scan_block_scalar_indentationmaxscan_block_scalar_breaksr!   extendr  r   r   r  rz   r|   ScalarTokenjoinadd_pre_commentsr.   r    commentsadd_blank_linert   CommentTokenadd_post_comment)r#   r   rtr   foldedchunksr   chomping	incrementblock_scalar_comment
min_indentbreaks
max_indentr   r8   
line_breakleading_non_spacer  trailingtokencomment_handlerr    xr^   comment_end_marks                            r   r   zScanner.scan_block_scalary  s<    kkC<FF[[))+
 	"??
K)#BB:N [[1_
A~T!33v=KK!SUZ 
+/+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$'jD05F35X]K]!c*MM*- S kk  F*su}Z |#MM*%tMM&!&OOF# BGGFOUJ%P;;"%dkk3EuMO&'3**,@+ABx=1{{&")$++7I4"P".#==3x=8D% " u},44Q4@	" --/Ggaj&7&7 7'!* DE113  {{&")$++7I5"Q"* (,{{';';'=$*2778+<hHXYG**73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r1t	        d|t        d
|      | j                   j                               ||fS )Nz+-+TF
0123456789r   while scanning a block scalarz<expected indentation indicator in the range 1-9, but found 0r  z=expected chomping or indentation indicators, but found {ch!r}rr   )rB   rv   r   r&  r   r   r   )r#   r   r   rX  rY  rs   s         r   rH  z$Scanner.scan_block_scalar_indicators  sn    kk	U:Sy KK!B\!G	>&7"Y,,.	  ##%<BIA~"3UKK((*	  KK!BTz9#H$H##%U../RWYZ$$&	  ""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r1t	        d|t        d|      | j                   j                               | j                          |S )NrD  r  r  rh  r3  rr   r4  )r#   r   r   r  r   r^   rs   s          r   rI  z&Scanner.scan_block_scalar_ignored_line(  s     kkkk!!eslceOFE esl 5C<G%x'35  %x' UX/IbQ$$&	  	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  )rB   rv   r   r   r   r  r!   )r#   r   r  rW  r]  r   s         r   rJ  z%Scanner.scan_block_scalar_indentationB  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  
   
  )rB   rv   r   r   r!   r   r  )r#   r8   rW  r   r  r   s         r   rL  z Scanner.scan_block_scalar_breaksT  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   TFrD  )	rB   rv   r   r   rM  scan_flow_scalar_non_spacesscan_flow_scalar_spacesrN  rO  )r#   r   doubler   rW  r   quoter   s           r   r   zScanner.scan_flow_scalard  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  rF  bt	nrE  vfrer  rq   /\N   _    Lu    Pu    r=        )rc  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                  |        |        ns|rn|dk(  rh |         |       }|| j
                  v r'|j                  | j
                  |           |        n'|| j                  v r| j                  |   } |        t        |      D ]D  } ||      dvst        d	|t        d
| ||            | j                   j                                t        | j                   j	                  |      d      }	|j                  t        |	              ||       ni|dv r2| j                          |j                  | j                  ||             n3t        d	|t        d|      | j                   j                               |S #)Nr   u    
'"\ 	  rV   rp   r=  z"\r  0123456789ABCDEFabcdefz%while scanning a double-quoted scalarzQexpected escape sequence of {length:d} hexdecimal numbers, but found {srp_call!r})r  r!     u
   
  z%found unknown escape character {ch!r}rr   )rB   rv   r   r   r   ESCAPE_REPLACEMENTSESCAPE_CODESranger   r   r   r&  chrr  rM  scan_flow_scalar_breaks)
r#   rq  r   rW  r   r  r  rs   kcodes
             r   ro  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 * "%F+1-0V	!" !% 4 4 6
# 
 t{{11&92>DMM#d),K11((*MM$">">vz"RS&?"BrJ,,.	  e 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   rV   ra   while scanning a quoted scalarzfound unexpected end of streamrm  rE  r  )
rB   rv   r   r   r   r   r  r  r   rM  )
r#   rq  r   r   rW  r  whitespacesrs   r^  r\  s
             r   rp  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   rm  )	rB   rv   r   r   r   r   r   r   r  )r#   rq  r   rW  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                 @   | 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||      }
| j"                  t%        | j"                  dd      }|<|r8|d   dk(  r0t'        dj!                  |      dz   ||      }|
j)                  |       |
S |dur>|j*                  dz   }|D ]*  }	|	dk(  s	| j,                  j/                  dd|       |dz  }, |
S )NrV   Tr   r  rk   rj   r   z,:?[]{}u     	
  ,[]{}zwhile scanning a plain scalarzfound unexpected ':'zGPlease check http://pyyaml.org/wiki/YAMLColonInFlowContext for details.FrD  rG  rE  )rB   rv   r   r   r8   r   rG   r1   r   r:   rM  r   r   scan_plain_spacesr!   rN  rO  r(   r)   rS  rT  r    rQ  rR  )r#   r   r  rW  r   r   r8   spacesr  rs   ra  rb  r^   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 ;;"%dkk3EuMO&fQi4/*2776?T+A:xXG**73  !-!*  "BTz44T1dC	"
 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  rV   rm  Tr   r   r   rk  rE  )	rB   rv   r   r   r  r:   r   r   rM  )r#   r8   r   r   r  rW  r  r  rs   r^  r   r\  s               r   r  zScanner.scan_plain_spaces]  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J\@\ %22 T!j)c"MM&!  MM+&r   c                    | j                   j                  } |       }|dk7  r<t        t        d|      |t        d|      | 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  rW| j                   j                  |       t        t        d|      |t        d|      | j                   j	                               |dz  }| j                   j                  |      }| j                   j                  |       |S )Nrm   r8  r9  zexpected '!', but found {ch!r}rr   rV   r  r  r  r  r  r  r  z-_)rB   rv   r   r   r   r   r   )r#   r  r   r   rs   r  r  s          r   r.  zScanner.scan_tag_handle  sa   
 kkU9/d;3;$$&	  [9"s"cR&63&6#:Js:JbTXj![ "s"cR&63&6#:Js:JbTXj Sy##F+"3$?7B?KK((*	  aKF""6*F#r   c                 x   | 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}|s<t        t        d|      |t        d|      | j                   j                               dj                  |      S )Nr   r  r  r  r  r  r  z-;/?:@&=+$,_.!~*'()[]%r   r  rb   rV   zwhile parsing an {name!s}r9  zexpected URI, but found {ch!r}rr   rD  )rB   rv   rG   r   r   r   scan_uri_escapesr   r   r   rO  )r#   r  r   r   rW  r  rs   s          r   r1  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.T:3;$$&	  wwvr   c                    | j                   j                  }| j                   j                  }g }| j                   j                         } |       dk(  r |        t	        d      D ]N  } ||      dvst        t        d|      |t        d ||            | j                   j                                |j                  t        | j                   j                  d      d              |d        |       dk(  r	 t        |      j                  d	      }|S # t        $ r'}	t        t        d|      |t        |	      |      d }	~	ww xY w)
Nrb   r=  r  r8  r9  zLexpected URI escape sequence of 2 hexdecimal numbers, but found {srp_call!r}r   r  zutf-8)rB   rv   r   r   r  r   r   r   r&  r   bytesdecodeUnicodeDecodeErrorstr)
r#   r  r   r   r  
code_bytesr"   r  r  excs
             r   r  zScanner.scan_uri_escapes  s6    kkkk!!
{{##%eslE1X q6!99&7dC"6%(V
 ,,.	 	 c$++"4"4Q"7<=F esl 	*%,,W5E
 	 " 	/d;ZSSW 	s   >D 	E
#"EE
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   
r=  
rE       rD  rB   rv   r   r   )r#   rs   s     r   r  zScanner.scan_line_break  s     [[{{!!!$.##A&  ##%>!KK!Ir   r   F)Rr   r   r   r$   propertyr1   r*   rB   rG   rP   rS   rX   rJ   r_   rK   r[   rZ   r   r   ru   r   r6   rw   ry   r{   r}   r   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rx   rz   r|   r   r   r   r   rt   r   r  r  r"  r  r(  r)  r  r   r   r   rH  rI  rJ  rL  r   r  r  ro  rp  r  r   r  r.  r1  r  r  r   r   r   r
   r
   G   s   !& & &4'l 	( 	( . ."&"l
`  5(=0;$:2X
2:8= NM==<=&
AB8;8;=z9:,++:**9	.9
99&!
J%NA,8!6( (-7^05dzx1#f4,$  P2TV 	V 	V	
 	f 	V 	V 	V 	V 	V 	V 	S 	S 	d 	V  	V!" 	X#$ 	X%* +L8t<0Wr$LB"H>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                        dkD  r%|sy|D ]  }t        | j                  d   |      s y yrI   )rJ   rK   _gather_commentsr.   r5   rL   rM   s      r   rP   zRoundTripScanner.check_token  sv     ##%""$ ##%t{{a!  dkk!nf5  r   c                     | j                         r!| j                          | j                         r!| j                          t        | j                        dkD  r| j                  d   S y rR   )rJ   rK   r  r.   r5   r0   s    r   rS   zRoundTripScanner.peek_token  sX     ##%""$ ##%t{{a;;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)zCcombine multiple comment lines and assign to next non-comment-tokenr   rV   r=  N)r5   rL   rS  rW   r7   r   rJ   rK   r.   rP  r4   )r#   rQ  r^   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                        dkD  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   rV   r  rE  )rJ   rK   r  r.   r5   rL   rN  r   r   r   rS  r   r    r   r7   rW   r  r!   rT  )r#   cc1s      r   rX   zRoundTripScanner.get_token0  sj    ##%""$ ##%t{{a DKK 1$KKN *.BDWX 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 )Nr3   r  )r5   r   rS  )r#   r^   r  r   r   s        r   r_   zRoundTripScanner.fetch_commentf  sV    &-#z8b	S( #2JE b	S( 	<z8DEr   c                 ,   | 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 | j                         d	k7  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   rE  TrD  )
empty_linerV   )rB   rv   r   r   r   r  r  r.   r1   r:   rsplit)r#   r   r  r  rs   r   r^   r   s           r   rt   z#RoundTripScanner.scan_to_next_tokenq  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##%+![[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  r=  r  rE  r  z	 rD  r  )r#   r  rs   s      r   r  z RoundTripScanner.scan_line_break  s     [[{{!!!$.##A&  ##%>!KK!IB%KKK!Ir   c                 2    t         j                  | ||      S )N)rU  )r
   r   )r#   r   rU  s      r   r   z"RoundTripScanner.scan_block_scalar  s    ((u(<<r   Nr  )T)r   r   r   rP   rS   r  rX   r_   rt   r  r   r   r   r   r   r     s.    %24lFGR2=r   r   c                   6    e Zd ZdZd Zd	dZd Zd Zd Zd Z	y)
CommentBase)r  r    r!   usedfunctionflineufunulinec                     || _         || _        || _        d| _        t	        j
                  t	        j                         d   d         }|j                  | _        |j                  | _	        d | _
        d | _        y )Nr  r   r   )r  r    r!   r  inspectgetframeinfostackr  linenor  r  r  )r#   r  r    r!   infos        r   r$   zCommentBase.__init__  sb    
		##GMMOA$6q$9:[[
	
r   c                     || _         t        j                  t        j                         d   d         }|j                  | _        |j                  | _        y )NrV   r   )r  r  r  r  r  r  r  r  )r#   rx  r  s      r   set_usedzCommentBase.set_used  s?    	##GMMOA$6q$9:MM	[[
r   c                     d| _         y )Nrn   )r  r0   s    r   set_assignedzCommentBase.set_assigned  s	    	r   c                 0    t        d| j                        S )Nz{value}r  r   r  r0   s    r   __str__zCommentBase.__str__  s    )4::..r   c                 0    t        d| j                        S )Nz	{value!r}r  r  r0   s    r   __repr__zCommentBase.__repr__  s    +TZZ00r   c                     t        d| j                  | j                  | j                  | j                  dz   | j
                  | j                  | j                  | j                  | j                  
      S )NzP{name}{used} {line:2}:{column:<2} "{value:40s} {function}:{fline} {ufun}:{uline}rq   )	r  r    r!   r  r  r  r  r  r  )
r   r  r    r!   r  r  r  r  r  r  r0   s    r   r  zCommentBase.info  sV    ^;;**s"]]****
 	
r   N)rf  )
r   r   r   	__slots__r$   r  r  r  r  r  r   r   r   r  r    s%    YI
!/1
r   r  c                   "     e Zd ZdZ fdZ xZS )
EOLCommentEOLCc                 (    t         |   |||       y r   superr$   r#   r  r    r!   	__class__s       r   r$   zEOLComment.__init__      f-r   r   r   r   r  r$   __classcell__r  s   @r   r  r        D. .r   r  c                   "     e Zd ZdZ fdZ xZS )FullLineCommentFULLc                 (    t         |   |||       y r   r  r  s       r   r$   zFullLineComment.__init__  r  r   r  r  s   @r   r  r    r  r   r  c                   "     e Zd ZdZ fdZ xZS )BlankLineCommentBLNKc                 (    t         |   |||       y r   r  r  s       r   r$   zBlankLineComment.__init__%  r  r   r  r  s   @r   r  r  "  r  r   r  c                   \    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
dd	Zd
 Zd Zd Zd Zy)ScannedCommentsc                      i | _         g | _        y r   )rQ  unusedr0   s    r   r$   zScannedComments.__init__+  s    r   c                     |j                  d      dk(  r
|d   dk(  sJ d|vsJ t        |d d ||      x| j                  |<   }| j                  j	                  |       |S NrE  rV   r3   )countr  rQ  r  r   r#   r^   r!   r    retvals        r   add_eol_commentzScannedComments.add_eol_comment0  sh     ==!#2;$&&w&&'1'#2,f'MMdf4 r   c                     |j                  d      dk(  r|d   dk(  sJ || j                  vsJ t        |d d ||      x| j                  |<   }| j                  j	                  |       |S r  )r  rQ  r  r  r   r  s        r   rR  zScannedComments.add_blank_line;  sk     }}T"a'GBK4,??4==(('7dF'SSdf4 r   c                     |j                  d      dk(  r|d   dk(  sJ t        |d d ||      x| j                  |<   }| j                  j	                  |       |S r  )r  r  rQ  r  r   r  s        r   add_full_line_commentz%ScannedComments.add_full_line_commentD  s^     }}T"a'GBK4,?? (7ws|T6'RRdf4 r   c                      | j                   |   S r   )rQ  )r#   idxs     r   __getitem__zScannedComments.__getitem__O  s    }}S!!r   c                 n    ddj                  d | j                  j                         D              z   dz   S )NzParsedComments:
  z
  c              3   Z   K   | ]#  \  }}t        d ||j                                % yw)z{lineno:2} {x}r  rc  N)r   r  ).0r  rc  s      r   	<genexpr>z*ScannedComments.__str__.<locals>.<genexpr>X  s/      ! '!&&(CCs   )+rE  rO  rQ  itemsr0   s    r   r  zScannedComments.__str__S  sA     "kk%)]]%8%8%: 		
r   c                     t        | j                  j                               d   \  }}t        d||j	                               S )Nr3   z{lineno:2} {x}
r  )r   rQ  r  r   r  )r#   r  rc  s      r   lastzScannedComments.last`  s8    ,,./3	$Vqvvx@@r   c                 2    t        | j                        dkD  S rR   )r.   r  r0   s    r   any_unprocessedzScannedComments.any_unprocessede  s     4;;!##r   c              #     K   t        | j                        dkD  r|r| j                  j                  d      n| j                  d   }t        j                  t        j
                         d   d         }t        d|| j                  |   j                  |j                  |j                         || j                  |   f |r| j                  |   j                          t        | j                        dkD  ry y w)Nr   rV   using)r.   r  rW   r  r  r  r   rQ  r  r  r  r  )r#   usefirstr  s       r   unprocessedzScannedComments.unprocessedn  s     $++"*-DKKOOA&4;;q>E''(:1(=>DGUDMM%$8$>$>t{{[u---e$--/ $++"s   C6C;9C;c                    |j                   j                  }t        j                  t        j                         d   d         }t        d|| j                  |j                  |j                         d}| j                  r| j                  d   |k  rvd}| j                  j                  d      }t        d|       | j                  |   j                          |j                  |       | j                  r| j                  d   |k  rv|S )NrV   r   
assign_preFTzassign_pre < )r   r    r  r  r  r   r  r  r  rW   rQ  r  add_comment_prer#   ra  
token_liner  gobbledr	  s         r   r  zScannedComments.assign_prex  s    %%**
##GMMOA$6q$9:j$++t}}dkkRkkdkk!nz9GKKOOA&EOU+MM% ))+!!%( kkdkk!nz9 r   c                 H   	 | j                   d   }t        | j                  |   t              sy d}||    j
                  j                  |kD  st        ||    t              r8|dz  }||    j
                  j                  |kD  r#t        ||    t              r8t        d|       t        |      |kD  r,t        ||    t              rt        ||dz       t              ry 	 t        ||    t              r}t        ||dz       t              rf	 | j                   j                  d      }| j                  |   j                          t        d||t               ||    j                  |t               y 	 t        ||    t              rqt        ||dz       t        t"        f      rT	 | j                   j                  d      }| j                  |   j                          ||    j                  |t$               y |D ]  }t        d|        t        dt'        ||                 dd l}|j+                  d       y # t        $ r Y y w xY w# t        $ r t         w xY w# t        $ r t        d       Y w xY w# t        $ r t         w xY w# t        $ r t        d       Y w xY w)	Nr   rV   idx1z>>>>>aIndexError1IndexError2ztt-znot implemented EOL)r  r   rL   rQ  r  r   r    r   r   r.   rN  r   rW   r  KEYCMNTadd_comment_eolr]   r   	VALUECMNTtypesysexit)r#   r5   comment_liner  eol_idxru  r  s          r   
assign_eolzScannedComments.assign_eol  s   	;;q>L $--5zBcTl%%**\9ZC4L*>
 1HC cTl%%**\9ZC4L*>
 	K#63$<56C!G*-{;	&#,4qz"H:."kkooa0GMM'*335Hc7G<C4L00'B 	&#,4qz"Z$A:."kkooa0GMM'*335C4L00)D   	AE1	%tFC4L'9:e  		2 " .--.  	M"	 " .--.  	M"	s[   H: !+I A$I	 31J
 %AI7 :	II	II I43I47JJ
 
J! J!c                    |j                   j                  }t        j                  t        j                         d   d         }t        d|| j                  |j                  |j                         d}| j                  r| j                  d   |k  rvd}| j                  j                  d      }t        d|       | j                  |   j                          |j                  |       | j                  r| j                  d   |k  rv|S )NrV   r   assign_postFTzassign_post < )r   r    r  r  r  r   r  r  r  rW   rQ  r  add_comment_postr  s         r   r  zScannedComments.assign_post  s    %%**
##GMMOA$6q$9:z4;;t{{Skkdkk!nz9GKKOOA&E$e,MM% ))+""5) kkdkk!nz9 r   c                 b    dj                  d | j                  j                         D              S )NrD  c              3   x   K   | ]2  \  }}|j                   d k(  rt        d||j                                4 yw)r  z  {ind:2} {x}
)indrc  N)r  r   r  )r  r#  rc  s      r   r  z2ScannedComments.str_unprocessed.<locals>.<genexpr>  s:      C66S= $#::s   8:r   r0   s    r   str_unprocessedzScannedComments.str_unprocessed  s-    ww"mm113
 	
r   Nr  )r   r   r   r$   r  rR  r  r  r  r  r  r
  r  r  r  r$  r   r   r   r  r  *  sE    
		"
A
$06p
r   r  c                   <     e Zd Z fdZd Zd Zd Zd Zd Z xZ	S )RoundTripScannerSCc                 N    t        |   |i | | j                  J d | _        y r   )r  r$   r(   rQ  )r#   argr   r  s      r   r$   zRoundTripScannerSC.__init__  s+    #$${{&& r   c                    | j                         r!| j                          | j                         r!t        | j                        dkD  rt	        | j                  d   t
              r)| j                  j                  | j                  d          n(| j                  j                  | j                  d          | xj                  dz  c_	        | j                  j                  d      S y rU   )rJ   rK   r.   r5   rL   r   rQ  r  r  r7   rW   r0   s    r   rX   zRoundTripScannerSC.get_token  s     ##%""$ ##%t{{a$++a.-8))$++a.9((Q8";;??1%%  r   c                    | j                    t               x| j                  _        | _         | j                  ryt        | j                        dk(  ry| j                          | j                         | j                  k(  ryt        | j                        dk  ry| j                  d   j                  j                  | j                  d   j                  j                  k(  ry	 t        dt        | j                               | j                  D ]  }t        |        t        | j                   j                                | j                   j                  | j                  d          | j                   j                  | j                         y)NFr   Tr=  r3   z-x--)rQ  r  r(   parsed_commentsr4   r.   r5   rZ   r[   r7   r   r    r   r$  r  r  )r#   ru  s     r   rJ   z#RoundTripScannerSC.need_more_tokens  s)   == :I:KKDKK'$-99t{{q  	'')((*d.?.??t{{a;;q>$$))T[[_-G-G-L-LLFC,-[[ 
 DMM1134  Q0  -r   c                    | j                   j                  }| j                   j                  }| j                   j                  dk(  r |       dk(  r |        | j                   j	                         }d}|sU |       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                  dk(  r2| j                  j                  ||j                  |j                         n3| j                  j                  ||j                  |j                         d}| j                          | j                  sd	| _        y t        | j                               r$| j                  sd	| _        | j                          y d	}|sUy )
Nr   r  Fr  r  ra   rE  rD  T)rB   rv   r   r   r   r  r!   rQ  r  r    r   scan_empty_or_full_line_commentsr1   r:   r   r  r  )	r#   r   r  r   r  rs   comment_start_markr^   r  s	            r   rt   z%RoundTripScannerSC.scan_to_next_token	  s   kkkk!!;;!cex&7E[[))+
%3, %3,BSy%)[[%9%9%;"(BTz  4rMGE ( $$)MM77!3!:!:<N<S<S MM11!3!:!:<N<S<S !G557,0D)D((*+,0D)557 i j r   c                 p   | j                   j                         }|j                  dk(  sJ d}d }d }| j                   j                         }	 |dv r| j                   j	                  d      dk(  r| j                   j                  d       n| j                   j                          |9|dz  }| j                  j                  ||j                  |j                         d }n6|dz  }| j                  j                  ||j                  |j                         d}| j                   j                         }| j                   j                         }|-|dv r||z  }n(|dk(  r| j                   j                         }d}ny ||z  }| j                   j                          | j                   j                         }k)	Nr   rD  rm  r=  r  rE  r   r  )
rB   r   r!   rv   r   r   rQ  r  r    rR  )r#   blmarkblanksr^   r"   rs   s         r   r-  z3RoundTripScannerSC.scan_empty_or_full_line_commentsH	  sv   %%'}}!![[++;;%%a(F2KK''*KK'')&tOGMM77diiX"GdNFMM00T--/[[%%';bLF3Y;;//1D!G 2KK!!!#B= r   c                 d   | j                   j                  }| j                   j                  }d}d } |       dk(  r| |       z  } |         |       dk(  r |       dk(  rMd}| j                   j                         } |       t        vr| |       z  } |         |       t        vr|dz  } |       }|t        vr1t        d|t        d|      | j                   j                               |1| j                  j                  |j                  |j                         | j                          y )NrD  r  r  rE  rh  r3  rr   )rB   rv   r   r   r  r   r   rQ  r  r!   r    r  )r#   r   r   r  r   r^   r"   rs   s           r   rI  z1RoundTripScannerSC.scan_block_scalar_ignored_linep	  s    kkkk!!eslceOFE esl 5C<G;;'')D%x'35  %x' tOGUX/IbQ$$&	  MM))'4;;		Jr   )
r   r   r   r$   rX   rJ   rt   r-  rI  r  r  s   @r   r&  r&    s#    &6>@&$Pr   r&  )#r  ruamel.yaml.errorr   r   ruamel.yaml.tokensruamel.yaml.compatr   r   r   r	   typingAnyDictOptionalListUnionTextVersionType__all__r  r   r   r   r   r   r
   r   r  r  r  r  r  r  r  r&  r   r   r   <module>r?     s   >  :   I I : $0 
		? 	
 
t tn5W=w W=x 	

/
 /
d. ..k ..{ .j
 j
Zu ur   