
    .PhZ                      d dl mZ d dlmZmZ d dlT d dlmZmZ d dl	m
Z
mZmZmZ 	 g dZd	Zd
ZdZed k    rd&dZ G d de          Z G d d          Z G d d          Z G d de          Zd Zd Z  G d d          Z! G d de!          Z" G d de!          Z# G d d e!          Z$ G d! d"          Z% G d# d$e          Z&d%S )'    )annotations)MarkedYAMLErrorCommentMark)*)VersionTag)check_anchorname_char_debugnprintnprintfF)AnyDictOptionalListUnionTextTuple)ScannerRoundTripScannerScannerErroru   
   u    
 	   	argsr   kwreturnc                     t          | i |S N)r   )r   r   s     S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/ruamel/yaml/scanner.pyxprintfr   1   s    ####    c                      e Zd ZdS )r   N)__name__
__module____qualname__ r   r   r   r   5   s        Dr   r   c                      e Zd ZddZdS )	SimpleKeytoken_numberr   requiredindexintlinecolumnmarkr   Nonec                Z    || _         || _        || _        || _        || _        || _        d S r   )r'   r(   r)   r+   r,   r-   )selfr'   r(   r)   r+   r,   r-   s          r   __init__zSimpleKey.__init__<   s3     ) 
				r   N)r'   r   r(   r   r)   r*   r+   r*   r,   r*   r-   r   r   r.   )r!   r"   r#   r1   r$   r   r   r&   r&   9   s(             r   r&   c                      e Zd ZdddZedd            Zdd	Zedd
            Zedd            ZddZ	ddZ
ddZddZddZddZddZddZddZddZddZddZddZddZddZddZdd Zdd"Zdd#Zdd$Zdd'Zdd(Zdd)Zdd*Z dd+Z!dd,Z"dd-Z#dd.Z$dd/Z%dd0Z&dd1Z'dd2Z(dd3Z)dd5Z*dd6Z+dd7Z,dd8Z-dd9Z.dd:Z/dd;Z0dd<Z1dd=Z2dd>Z3dd?Z4dd@Z5ddAZ6ddBZ7ddDZ8ddEZ9ddFZ:ddGZ;ddHZ<ddIZ=ddJZ>ddKZ?ddLZ@dddPZAddQZBddRZCddSZDddUZEddVZFi dWdXdYdZd[d\d]d^d^d^d_d`dadbdcdddedfdgdhdididjdjdkdkdldldmdndodpdqdrdsdtiZGdudvdwdxZHddzZIdd{ZJdd|ZKdd}ZLdd~ZMddZNddZOddZPddZQdS )r   Nloaderr   r   r.   c                    || _         | j         "t          | j         dd          | | j         _        |                                  d| _        dS )zInitialize the scanner.N_scannerF)r3   getattrr5   reset_scanner
first_time)r0   r3   s     r   r1   zScanner.__init__H   sM     ;"wt{J'M'M'U#'DK r   r*   c                *    t          | j                  S r   )lenflow_contextr0   s    r   
flow_levelzScanner.flow_levelY   s    4$%%%r   c                    d| _         g | _        g | _        |                                  d| _        d| _        g | _        d| _        i | _        d | _	        g | _
        d S )NFr   T)doner;   tokensfetch_stream_starttokens_takenindentindentsallow_simple_keypossible_simple_keysyaml_versiontag_directivesr<   s    r   r7   zScanner.reset_scanner]   sv    	 )+ "$ 	!!!   #%, !% 57!!%57r   c                    	 | j         S # t          $ rB t          | j        d          r| j        j        | _         n| j        j        | _         | j         cY S w xY wNtyp)_scanner_readerAttributeErrorhasattrr3   reader_readerr<   s    r   rP   zScanner.reader   sk    	('' 	( 	( 	(t{E** ;'+{'9$$'+{':$''''	(s   	 A	AAc                f    t          | j        d          r| j        j        j        S | j        j        S rK   )rO   r3   resolverprocessing_versionr<   s    r   scanner_processing_versionz"Scanner.scanner_processing_version   s/    4;&& 	;;'::{--r   choicesboolc                    |                                  r(|                                  |                                  (t          | j                  dk    r'|sdS |D ] }t	          | j        d         |          r dS !dS Nr   TF)need_more_tokensfetch_more_tokensr:   rA   
isinstancer0   rV   choices      r   check_tokenzScanner.check_token   s    ##%% 	%""$$$ ##%% 	%t{a t!    dk!nf55  44 ur   c                    |                                  r(|                                  |                                  (t          | j                  dk    r| j        d         S d S Nr   )rZ   r[   r:   rA   r<   s    r   
peek_tokenzScanner.peek_token   sg    ##%% 	%""$$$ ##%% 	%t{a;q>!  r   c                   |                                  r(|                                  |                                  (t          | j                  dk    r*| xj        dz  c_        | j                            d          S d S Nr      )rZ   r[   r:   rA   rC   popr<   s    r   	get_tokenzScanner.get_token   s    ##%% 	%""$$$ ##%% 	%t{a";??1%%%  r   c                    | j         rdS t          | j                  dk    rdS |                                  |                                 | j        k    rdS dS )NFr   T)r@   r:   rA   stale_possible_simple_keysnext_possible_simple_keyrC   r<   s    r   rZ   zScanner.need_more_tokens   sc    9 	5t{q  4 	'')))((**d.???4ur   commentc                    t           r   )NotImplementedError)r0   rk   s     r   fetch_commentzScanner.fetch_comment   s    !!r   c                   |                                  }||                     |          S |                                  |                     | j        j                   | j                                        }|dk    r|                                 S |dk    r(|                                 r| 	                                S |dk    r(| 
                                r|                                 S |dk    r(|                                 r|                                 S |dk    r|                                 S |dk    r|                                 S |dk    r|                                 S |dk    r|                                 S |d	k    r|                                 S |dk    r(|                                 r|                                 S |d
k    r(|                                 r|                                 S |dk    r(|                                 r|                                 S |dk    r|                                 S |dk    r|                                 S |dk    r|                                 S |dk    r| j        s|                                 S |dk    r| j        s|                                 S |dk    r|                                 S |dk    r|                                  S | !                                r| "                                S tG          dd d|d| j        $                                          )N %-.[{]},?:r   &!|>'"z!while scanning for the next tokenzfound character z that cannot start any token)%scan_to_next_tokenrn   ri   unwind_indentrP   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_tagr=   fetch_literalfetch_foldedfetch_singlefetch_doublecheck_plainfetch_plainr   get_mark)r0   rk   chs      r   r[   zScanner.fetch_more_tokens   s]   ))++%%g...''))) 	4;-... [ ::((*** 99--//9''))) 9922449,,... 9900229**,,, 9911333 9900222 99//111 99..000 99((*** 99//119))+++ 99))9>>### 99))++9##%%% 99##%%% 99$$&&& 99>>### 99T_9%%''' 99T_9$$&&& 99$$&&& 99$$&&&  	&##%%% /ArAAAK  ""	
 
 	
r   c                `    d }| j         D ]#}| j         |         }||j        |k     r|j        }$|S r   )rG   r'   )r0   min_token_numberlevelkeys       r   rj   z Scanner.next_possible_simple_keyB  sM      . 	4 	4E+E2C'3+;>N+N+N#&#3 r   c                "   t          | j                  D ]y}| j        |         }|j        | j        j        k    s| j        j        |j        z
  dk    r=|j        r.t          d|j        d| j                                                  | j        |= zd S )Ni   while scanning a simple keycould not find expected ':')	listrG   r+   rP   r)   r(   r   r-   r   )r0   r   r   s      r   ri   z"Scanner.stale_possible_simple_keysQ  s     $344 
	5 
	5E+E2Cx4;+++t{/@39/Lt/S/S< &55,,..	   -e4
	5 
	5r   c           	     b   | j          o| j        | j        j        k    }| j        r|                                  | j        t          | j                  z   }t          ||| j        j
        | j        j        | j        j        | j                                                  }|| j        | j         <   d S d S r   )r=   rD   rP   r,   rF   remove_possible_simple_keyrC   r:   rA   r&   r)   r+   r   rG   )r0   r(   r'   r   s       r   save_possible_simple_keyz Scanner.save_possible_simple_keyd  s     &L4;$+:L+L   	=++---,s4;/?/??L! "$$&& C :=D%do666	= 	=r   c                    | j         | j        v rV| j        | j                  }|j        r.t          d|j        d| j                                                  | j        | j         = d S d S )Nr   r   )r=   rG   r(   r   r-   rP   r   )r0   r   s     r   r   z"Scanner.remove_possible_simple_key{  sv    ?d777+DO<C| "1H1K((**	   )$/::: 87r   r,   c                    t          | j                  rd S | j        |k    rl| j                                        }| j                                        | _        | j                            t          ||                     | j        |k    jd S d S r   )
rW   r=   rD   rP   r   rE   rf   rA   appendBlockEndToken)r0   r,   r-   s      r   r   zScanner.unwind_indent  s        	F kF"";''))D,**,,DKK}T488999 kF""""""r   c                l    | j         |k     r(| j                            | j                    || _         dS dS )NTF)rD   rE   r   )r0   r,   s     r   
add_indentzScanner.add_indent  s8    ;L,,, DK4ur   c                    | j                                         }| j                            t	          ||| j         j                             d S )N)encoding)rP   r   rA   r   StreamStartTokenr   r0   r-   s     r   rB   zScanner.fetch_stream_start  sH     {##%%+D$AUVVVWWWWWr   c                   |                      d           |                                  d| _        i | _        | j                                        }| j                            t          ||                     d| _	        d S )Nr?   FT)
r   r   rF   rG   rP   r   rA   r   StreamEndTokenr@   r   s     r   r   zScanner.fetch_stream_end  sv    2''))) %$&!{##%%>$55666			r   c                    |                      d           |                                  d| _        | j                            |                                            d S )Nr?   F)r   r   rF   rA   r   scan_directiver<   s    r   r   zScanner.fetch_directive  s\    2 	''))) % 	4..0011111r   c                :    |                      t                     d S r   )fetch_document_indicatorDocumentStartTokenr<   s    r   r   zScanner.fetch_document_start  s    %%&899999r   c                :    |                      t                     d S r   )r   DocumentEndTokenr<   s    r   r   zScanner.fetch_document_end  s    %%&677777r   
TokenClassc                F   |                      d           |                                  d| _        | j                                        }| j                            d           | j                                        }| j                             |||                     d S )Nr?   F   )r   r   rF   rP   r   forwardrA   r   )r0   r   
start_markend_marks       r   r   z Scanner.fetch_document_indicator  s    2 	''))) % [))++
A;''))::j(;;<<<<<r   c                >    |                      t          d           d S )Nrt   to_push)fetch_flow_collection_startFlowSequenceStartTokenr<   s    r   r   z!Scanner.fetch_flow_sequence_start  s"    (()?(MMMMMr   c                >    |                      t          d           d S )Nru   r   )r   FlowMappingStartTokenr<   s    r   r   z Scanner.fetch_flow_mapping_start  s"    (()>(LLLLLr   r   r   c                N   |                                   | j                            |           d| _        | j                                        }| j                                         | j                                        }| j                             |||                     d S NT)r   r;   r   rF   rP   r   r   rA   )r0   r   r   r   r   s        r   r   z#Scanner.fetch_flow_collection_start  s    %%'''  ))) $[))++
;''))::j(;;<<<<<r   c                :    |                      t                     d S r   )fetch_flow_collection_endFlowSequenceEndTokenr<   s    r   r   zScanner.fetch_flow_sequence_end  s    &&';<<<<<r   c                :    |                      t                     d S r   )r   FlowMappingEndTokenr<   s    r   r   zScanner.fetch_flow_mapping_end  s    &&':;;;;;r   c                p   |                                   	 | j                                        }n# t          $ r Y nw xY wd| _        | j                                        }| j                                         | j                                        }| j        	                     |||                     d S NF)
r   r;   rf   
IndexErrorrF   rP   r   r   rA   r   )r0   r   poppedr   r   s        r   r   z!Scanner.fetch_flow_collection_end  s    '')))	&**,,FF 	 	 	 D	
 !&[))++
;''))::j(;;<<<<<s   0 
==c                "   d| _         |                                  | j                                        }| j                                         | j                                        }| j                            t          ||                     d S r   )rF   r   rP   r   r   rA   r   FlowEntryToken)r0   r   r   s      r   r   zScanner.fetch_flow_entry  s|     $'')))[))++
;''))>*h??@@@@@r   c                T   | j         s| j        s)t          d d d| j                                                  |                     | j        j                  rA| j                                        }| j                            t          ||                     n	 d| _        | 
                                 | j                                        }| j                                         | j                                        }| j                            t          ||                     d S )Nz%sequence entries are not allowed hereT)r=   rF   r   rP   r   r   r,   rA   r   BlockSequenceStartTokenr   r   BlockEntryTokenr0   r-   r   r   s       r   r   zScanner.fetch_block_entry  s    	( ";K((**	   t{122 H{++--""#:4#F#FGGG  $''))) [))++
;''))?:x@@AAAAAr   c                \   | j         s| j        s)t          d d d| j                                                  |                     | j        j                  rA| j                                        }| j                            t          ||                     | j          | _        | 
                                 | j                                        }| j                                         | j                                        }| j                            t          ||                     d S )Nz!mapping keys are not allowed here)r=   rF   r   rP   r   r   r,   rA   r   BlockMappingStartTokenr   r   KeyTokenr   s       r   r   zScanner.fetch_key8  s    	G ( "$ CT[EYEYE[E[  
 t{122 G{++--""#9$#E#EFFF %)O 3 	''))) [))++
;''))8J99:::::r   c                   | j         | j        v r| j        | j                  }| j        | j         = | j                            |j        | j        z
  t          |j        |j                             | j         sZ|                     |j	                  r@| j                            |j        | j        z
  t          |j        |j                             d| _        n| j         s0| j        s)t          d d d| j                                                  | j         s`|                     | j        j	                  rA| j                                        }| j                            t          ||                     | j          | _        |                                  | j                                        }| j                                         | j                                        }| j                            t%          ||                     d S )NFz#mapping values are not allowed here)r=   rG   rA   insertr'   rC   r   r-   r   r,   r   rF   r   rP   r   r   r   r   
ValueToken)r0   r   r-   r   r   s        r   r   zScanner.fetch_valueS  s   ?d777+DO<C)$/:K 4#44hsx6R6R   ? ??3:.. K&&(4+<<.sxBB   %*D!! ? 
 , &=,,..	   ? K??4;#566 K;//11DK&&'=dD'I'IJJJ )-$7D! ++--- [))++
;'')):j(;;<<<<<r   c                    |                                   d| _        | j                            |                     t
                               d S r   )r   rF   rA   r   scan_anchor
AliasTokenr<   s    r   r   zScanner.fetch_alias  sF    %%''' %4++J7788888r   c                    |                                   d| _        | j                            |                     t
                               d S r   )r   rF   rA   r   r   AnchorTokenr<   s    r   r   zScanner.fetch_anchor  sF    %%''' %4++K8899999r   c                    |                                   d| _        | j                            |                                            d S r   )r   rF   rA   r   scan_tagr<   s    r   r   zScanner.fetch_tag  s@    %%''' %4==??+++++r   c                2    |                      d           d S )Nr}   stylefetch_block_scalarr<   s    r   r   zScanner.fetch_literal      c*****r   c                2    |                      d           d S )Nr~   r   r   r<   s    r   r   zScanner.fetch_folded  r   r   r   c                    d| _         |                                  | j                            |                     |                     d S r   )rF   r   rA   r   scan_block_scalarr0   r   s     r   r   zScanner.fetch_block_scalar  sF     $'')))411%8899999r   c                2    |                      d           d S )Nr   r   fetch_flow_scalarr<   s    r   r   zScanner.fetch_single      S)))))r   c                2    |                      d           d S )Nr   r   r   r<   s    r   r   zScanner.fetch_double  r   r   c                    |                                   d| _        | j                            |                     |                     d S r   )r   rF   rA   r   scan_flow_scalarr   s     r   r   zScanner.fetch_flow_scalar  sF    %%''' %4007788888r   c                    |                                   d| _        | j                            |                                            d S r   )r   rF   rA   r   
scan_plainr<   s    r   r   zScanner.fetch_plain  sD    %%''' !&4??,,-----r   c                *    | j         j        dk    rdS d S )Nr   T)rP   r,   r<   s    r   r   zScanner.check_directive  s     ;""4tr   c                    | j         j        dk    rA| j                             d          dk    r#| j                             d          t          v rdS d S )Nr   r   ---TrP   r,   prefixr   _THE_END_SPACE_TABr<   s    r   r   zScanner.check_document_start  R    ;""{!!!$$--$+2B2B12E2EI[2[2[ttr   c                    | j         j        dk    rA| j                             d          dk    r#| j                             d          t          v rdS d S )Nr   r   ...Tr   r<   s    r   r   zScanner.check_document_end  r  r   c                D    | j                             d          t          v S )Nre   )rP   r   r  r<   s    r   r   zScanner.check_block_entry  s    {""&888r   c                p    t          | j                  rdS | j                            d          t          v S )NTre   )rW   r=   rP   r   r  r<   s    r   r   zScanner.check_key  s5       	4{""&888r   c                   | j         dk    rt          | j                  rdS nt          | j                  r| j        d         dk    r$| j                            d          t          vrdS nJ| j        rCt          | j        d         t                    r#| j                            d          t          vrdS dS | j                            d          t          v S )Nre   re   Tr?   rt   re   F)
rU   rW   r=   r;   rP   r   r  rA   r\   r   r<   s    r   r   zScanner.check_value  s    *f44DO$$ t DO$$ $R(C//{''**2DDD$u E[ %ZB%L%L %{''**2DDD$ut{""&888r   c                j   | j         j        } |            }| j        dk    r(|dvp# |d          t          vo|dk    p| j         o|dv S |dvrdS  |d          }|dk    r|t          vrdS |dk    rt          | j                  r|t          vrdS  |d          t          vo|dk    p| j         o|dv S )Nr	  u      	
  -?:,[]{}#&*!|>'"%@`re   rr   z?:Trz   )rP   r   rU   r  r=   rW   
_SPACE_TAB)r0   srpr   ch1s       r   r   zScanner.check_plain  s     kSUU*f44LL A00 H3YFt#6#E2:
 DDD4c!ff99$666499do..93j3H3H4s1vv// 
#I=do-<"*	
r   c                   | j         j        }| j         j        }| j         j        dk    r |            dk    r
 |             d}t          }| j        dk    rdnd}|sy |            |v r |              |            |v  |            dk    r" |            |vr |              |            |v|                                 r| j        sd| _        nd}|yd S )Nr      ﻿Fr    #T)rP   r   r   r)   _THE_ENDr=   scan_line_breakrF   )r0   r  srffound_the_endwhite_spaces         r   r   zScanner.scan_to_next_token%  s   & kk!;!!cceex&7&7CEEE#22ee 
	#%%;&& #%%;&&suu||cee8++CEEE cee8++##%%  1,0D)  
	 tr   c                R   | j         j        }| j         j        }| j                                         } |             |                     |          }d }|dk    r/|                     |          }| j                                         }nz|dk    r/|                     |          }| j                                         }nE| j                                         } |            t          vr |              |            t          v|                     |           t          ||||          S )NYAMLTAG)
rP   r   r   r   scan_directive_namescan_yaml_directive_valuescan_tag_directive_valuer  scan_directive_ignored_lineDirectiveToken)r0   r  r  r   namevaluer   s          r   r   zScanner.scan_directiveL  s   kk![))++
''
336>>22:>>E{++--HHU]]11*==E{++--HH{++--H#%%x'' #%%x''((444dE:x@@@r   r   c                T   d}| j         j        } ||          }d|cxk    rdk    s$n d|cxk    rdk    sn d|cxk    rdk    sn |dv rA|d	z  } ||          }d|cxk    rdk    n d|cxk    rdk    ,n d|cxk    rdk    ;n |dv A|s,t          d
|d|| j                                                   | j                             |          }| j                             |            |            }|dvr,t          d
|d|| j                                                   |S )Nr   09AZazz-_:.re   while scanning a directive4expected alphabetic or numeric character, but found      
  )rP   r   r   r   r  r   )r0   r   lengthr  r   r!  s         r   r  zScanner.scan_directive_namea  s   kS[[R3#"2"2"2"2s"2"2"2"2cR6F6F6F6F36F6F6F6F"PV,,aKFVB R3#"2"2"2"2s"2"2"2"2cR6F6F6F6F36F6F6F6F"PV,,  	,MrMM$$&&	   ""6**F###SUU...,MrMM$$&&	   r   c                T   | j         j        }| j         j        } |            dk    r |              |            dk    |                     |          } |            dk    r4t	          d|d |            | j                                                    |             |                     |          } |            dvr4t	          d|d |            | j                                                   ||f| _        t          ||          | j        j	        d         _
        | j        S )Nr  rs   r)  z#expected a digit or '.', but found r+  r?   )rP   r   r   scan_yaml_directive_numberr   r   rH   r   r3   	doc_infosdoc_version)r0   r   r  r  majorminors         r   r  z!Scanner.scan_yaml_directive_value|  s<   kk!ceesllCEEE ceesll//
;;355C<<,?ccee??$$&&	   	//
;;355111,?ccee??$$&&	   #EN07u0E0Eb!-  r   c                   | j         j        }| j         j        } |            }d|cxk    rdk    s.n t          d|d|| j                                                   d}d ||          cxk    rdk    r n n|dz  }d ||          cxk    rdk    n t          | j                             |                    } ||           |S )Nr#  r$  r)  zexpected a digit, but found r   re   )rP   r   r   r   r   r*   r  )r0   r   r  r  r   r,  r!  s          r   r.  z"Scanner.scan_yaml_directive_number  s   kk!SUUr    S    ,5r55$$&&	   SS[[''''C'''''aKF SS[[''''C''''DK&&v..//Fr   c                ^   | j         j        }| j         j        } |            dk    r |              |            dk    |                     |          } |            dk    r |              |            dk    |                     |          }||f}| j                            |           |S )Nr  )rP   r   r   scan_tag_directive_handlescan_tag_directive_prefixrI   r   )r0   r   r  r  handler  ret_vals          r   r  z Scanner.scan_tag_directive_value  s    kk!ceesllCEEE ceesll//
;;ceesllCEEE ceesll//
;;6"""7+++r   c                    |                      d|          }| j                                        }|dk    r,t          d|d|| j                                                  |S )N	directiver  r)  expected ' ', but found )scan_tag_handlerP   r   r   r   r0   r   r!  r   s       r   r5  z!Scanner.scan_tag_directive_handle  sn    $$[*==[99,1211$$&&	   r   c                    |                      d|          }| j                                        }|dvr,t          d|d|| j                                                  |S )Nr:  r+  r)  r;  )scan_tag_urirP   r   r   r   r=  s       r   r6  z!Scanner.scan_tag_directive_prefix  sq    !!+z::[...,1211$$&&	   r   c                   | j         j        }| j         j        } |            dk    r |              |            dk     |            dk    r, |            t          vr |              |            t          v |            }|t          vr,t	          d|d|| j                                                   |                                  d S )Nr  r  r)  .expected a comment or a line break, but found rP   r   r   r  r   r   r  )r0   r   r  r  r   s        r   r  z#Scanner.scan_directive_ignored_line  s    kk!ceesllCEEE ceesll355C<<#%%x'' #%%x''SUUX,GGG$$&&	   	r   c                   | j         j        }| j                                         } |            }|dk    rd}nd}| j                                          d} ||          }t	          |          r|dz  } ||          }t	          |          |s/t          d||d|| j                                                   | j                             |          }| j                             |           |dvr/t          d||d|| j                                                   | j                                         }	 ||||	          S )	Nr   aliasanchorr   re   while scanning an r*  u     	
  ?:,[]{}%@`)rP   r   r   r   r	   r   r  )
r0   r   r  r   	indicatorr   r,  r   r!  r   s
             r   r   zScanner.scan_anchor  s    k[))++
CEE	DDDS[[ $B'' 	aKFVB $B'' 	  	-T--MrMM$$&&	   ""6**F### :::-T--MrMM$$&&	   ;''))z%X666r   c                   | j         j        }| j                                         } |d          }d}|dk    r2d}| j                                          | j         j        } |d          }|dk    rd }| j                             d           |                     d|          } |            dk    r4t          d|d	 |            | j                                                   | j                                          n|t          v rd }|}| j                                          nqd}d
}|dvr|dk    rd}n|dz  } ||          }|dv|}|r|                     d|          }n|}| j                                          |                     d|          } |            }|dvr,t          d|d|| j                                                   ||f}	| j                                         }
t          |	||
          S )Nre   r|   z!!<   tagr~   zwhile parsing a tagzexpected '>' but found Fr+  Tzwhile scanning a tagr;  )	rP   r   r   r   r?  r   r  r<  TagToken)r0   r  r   r   short_handler7  suffixr,  
use_handler!  r   s              r   r   zScanner.scan_tag  sM   k[))++
SVV99LK!!!+"CQB99FK"""&&uj99Fsuu||")7ccee77K((**	   K!!!!%%%F!FK!!!!FJ55599!%J!S[[ 555 "F &--eZ@@%##%%%&&uj99FSUU...&1211$$&&	    ;''))z8444r   FrtOptional[bool]c                X	   | j         j        }|dk    rd}nd}g }| j                                         }| j                                          |                     |          \  }}|                     |          }	| j        dz   }
|V|
dk     r'|dvs!| j        dk    rt          | j	        dd          rd}
| 
                                \  }}}t          |
|          }n(|
dk     rd}
|
|z   dz
  }|                     |          \  }}d}| j         j        |k    r |            d	k    r|                    |            |            d
v}d} ||          t          vr|dz  } ||          t          v|                    | j                             |                     | j                             |           |                                 }|                     |          \  }}|dv r/|
dk    r)|                                 s|                                 rn| j         j        |k    rq |            d	k    rc|r|r|dk    r|                    d           |r,|dk    r&|r$ |            d
vr|s|                    d           n|                    |           nn| j         j        |k    r |            d	k    g }|dv r|                    |           |du r|                    |           n|dv r|                    |           t+          d                    |          d|||          }| j	        0t          | j	        dd          }||	|                    |	g           t1          |          dk    r3| j	        ct          | j	        dd           }|K|j        t1          |          z
  }|D ]1}|d         dk    sJ | j                            |d|           |dz  }2|                                 }|rB|                    d|d         j        z  |d         z              |                                 }|B| j	        jt          | j	        dd          }|R| j                                         }t;          d                    |          ||          }|                    |           |S )Nr~   TFre   z|>r	  0top_level_block_style_scalar_no_indent_error_1_1 rp   r   r   
r  r   r   comment_handlingr?   )rP   r   r   r   scan_block_scalar_indicatorsscan_block_scalar_ignored_linerD   rU   r6   r3   scan_block_scalar_indentationmaxscan_block_scalar_breaksr,   extendr  r   r  r  r   r   ScalarTokenjoinadd_pre_commentsr:   r+   commentsadd_blank_liner   CommentTokenadd_post_comment)r0   r   rP  r  foldedchunksr   chomping	incrementblock_scalar_comment
min_indentbreaks
max_indentr   rD   
line_breakleading_non_spacer,  trailingtokencomment_handlerr+   xrk   comment_end_marks                            r   r   zScanner.scan_block_scalarK  s1   kC<<FFF[))++
 	"??
KK)#BB:NN [1_
A~~T!!3v==K!SUZ  >
 
+/+M+M+O+O(FJZ00FFA~~
)+a/F#<<VDDFH
 k F**ssuu}}MM&!!! #U 2F#f++X--! #f++X--MM$+,,V44555K'''--//J#<<VDDFH}}q ,,.. $2I2I2K2K {!V++  (& (Z4%7%7MM$''' .jD005F03355X]K]K]! +c***MM*---- S k F**ssuu}}Z !|##MM*%%%tMM&!!!!&&OOF### BGGFOOUJ%PP;"%dk3EuMMO&'3**,@+ABBBx==1{&")$+7I4"P"P".#=3x==8D% " " u}}}}44Q4@@@	--//G 4gaj&7 7'!* DEEE1133  4 {&")$+7I5"Q"Q"* (,{';';'='=$*2778+<+<hHXYYG**7333r   c                   | j         j        }d }d } |            }|dv r|dk    rd}nd}| j                                           |            }|dv rWt          |          }|dk    r)t	          d|d| j                                                   | j                                          n|dv rt          |          }|dk    r)t	          d|d| j                                                   | j                                           |            }|dv r$|dk    rd}nd}| j                                           |            }|d	vr,t	          d|d
|| j                                                   ||fS )Nz+-+TF
0123456789r   while scanning a block scalarz<expected indentation indicator in the range 1-9, but found 0r+  z7expected chomping or indentation indicators, but found )rP   r   r   r*   r   r   )r0   r   r  rg  rh  r   s         r   rX  z$Scanner.scan_block_scalar_indicators  s   k	SUU::Syy K!!!B\!!GG	>>&7"Y,,..	   ##%%%<BIA~~"3UK((**	   K!!!BTzz99#HH$H##%%%SUU.../P"PP$$&&	   ""r   c                   | j         j        }| j         j        }d}d } |            dk    r%| |            z  } |              |            dk    % |            dk    r;|} |            t          vr(| |            z  } |              |            t          v( |            }|t          vr,t	          d|d|| j                                                   |                                  |S )NrT  r  r  rw  rA  rB  )r0   r   r  r  r  rk   r   s          r   rY  z&Scanner.scan_block_scalar_ignored_line  s   kk!ceesllcceeOFCEEE ceesll 355C<<G#%%x''3355  #%%x'' SUUX/GGG$$&&	   	r   c                "   | j         j        }| j         j        }g }d}d}| j                                         } |            dv r |            dk    rS|dk     r| j         j        }|                    |                                            | j                                         }n& |             | j         j        |k    r| j         j        } |            dv |dk    r/||k    r)| j                                         }t          d|          |||fS )Nr?   r       
  r  z9more indented follow up line than first in a block scalar)rP   r   r   r   r,   r   r  r   )r0   r  r  rf  first_indentrl  r   r   s           r   rZ  z%Scanner.scan_block_scalar_indentation  s*   kk!
;''))cee...suu||!###';#5Ld2244555;//11;%
22!%!3J cee... !
\ 9 9--//JKZ   z8++r   rD   c                8   g }| j         j        }| j         j        }| j                                         }| j         j        |k     r6 |            dk    r( |             | j         j        |k     r |            dk    ( |            dv r|                    |                                            | j                                         }| j         j        |k     r6 |            dk    r( |             | j         j        |k     r |            dk    ( |            dv ||fS )Nr  
   
  )rP   r   r   r   r,   r   r  )r0   rD   rf  r  r  r   s         r   r\  z Scanner.scan_block_scalar_breaks*  s$   kk!;''))k 6))cceesllCEEE k 6))cceesllcee---MM$..00111{++--H+$v--##%%3,, +$v--##%%3,, cee---
 xr   c                   |dk    rd}nd}| j         j        }g }| j                                         } |            }| j                                          |                    |                     ||                      |            |k    r`|                    |                     ||                     |                    |                     ||                      |            |k    `| j                                          | j                                         }t          d                    |          d|||          S )Nr   TFrT  )	rP   r   r   r   r]  scan_flow_scalar_non_spacesscan_flow_scalar_spacesr^  r_  )r0   r   doubler  rf  r   quoter   s           r   r   zScanner.scan_flow_scalar9  s)    C<<FFFk[))++
d66vzJJKKKceeunnMM$66vzJJKKKMM$::6:NNOOO ceeunn 	;''))2776??E:xOOOr   r#  rp   r'  rV  bt	nrU  vfrer  r   /\N   _    Lu    Pu    rJ        )rr  uUr  c                    g }| j         j        }| j         j        }	 d} ||          dvr|dz  } ||          dv|dk    r8|                    | j                             |                      ||            |            }|s7|dk    r1 |d          dk    r"|                    d            |d           n|r|dk    s|s%|dv r!|                    |            |             n|r|dk    r |              |            }|| j        v r,|                    | j        |                     |             n>|| j        v r| j        |         } |             t          |          D ]H} ||          d	vr9t          d
|d|dd ||          | j         	                                          It          | j                             |          d          }	|                    t          |	                      ||           np|dv r>|                                  |                    |                     ||                     n.t          d
|d|| j         	                                          |S d)NTr   u    
'"\ 	  re   r   rJ  z"\r  0123456789ABCDEFabcdefz%while scanning a double-quoted scalarzexpected escape sequence of dz hexdecimal numbers, but found    u
   
  zfound unknown escape character )rP   r   r   r   r  ESCAPE_REPLACEMENTSESCAPE_CODESranger   r   r*   chrr  r]  scan_flow_scalar_breaks)
r0   r  r   rf  r  r  r,  r   kcodes
             r   r  z#Scanner.scan_flow_scalar_non_spacesh  s   kk!.	F#f++%EEE! #f++%EEE{{dk0088999FB &bCiiCCFFcMMc"""A #R3YYY2;;b!!!  B$JJSUU111MM$":2">???CEEEE4,,,!.r2FCEEE"6]]  3q66)AAA". G *!Lv J !L !LADQ!L !L $ 4 4 6 6# #  B t{11&992>>DMM#d)),,,CKKKK111((***MM$">">vz"R"RSSSS&?"@"@@,,..	   ].	r   c                V   | j         j        }g }d} ||          dv r|dz  } ||          dv | j                             |          }| j                             |            |            }|dk    r)t	          d|d| j                                                   |dv rs|                                 }|                     ||          }	|dk    r|                    |           n|	s|                    d	           |	                    |	           n|                    |           |S )
Nr   r   re   rp   while scanning a quoted scalarzfound unexpected end of streamr}  rU  r  )
rP   r   r  r   r   r   r  r  r   r]  )
r0   r  r   r  rf  r,  whitespacesr   rm  rk  s
             r   r  zScanner.scan_flow_scalar_spaces  sL   kc&kkU""aKF c&kkU""k((00F###SUU::00$$&&	   )))--//J11&*EEFT!!j)))) #c"""MM&!!!!MM+&&&r   c                   g }| j         j        }| j         j        }	 | j                             d          }|dk    s|dk    r; |d          t          v r)t          d|d| j                                                    |            dv r |              |            dv  |            dv r(|                    |                                            n|S )	NTr   r   r  r  z#found unexpected document separatorr   r}  )	rP   r   r   r  r  r   r   r   r  )r0   r  r   rf  r  r  r  s          r   r  zScanner.scan_flow_scalar_breaks  s    kk!	 [''**F%6U??ABT8T8T"49K((**	   #%%5.. #%%5..suu...d22445555!	r   c                <   | j         j        }| j         j        }g }| j                                         }|}| j        dz   }g }	 d} |            dk    rn~	  ||          }		 |	dk    r ||dz             t
          vrnI|	dk    r| j        d	k    rn7|	t
          v s-| j        s|	dk    r ||dz             t
          v s| j        r|	d
v rn|dz  }w| j        rK|	dk    rE ||dz             dvr5 ||           t          d|d| j                                         d          |dk    rnd| _	        |
                    |           |                    | j                             |                      ||           | j                                         }|                     ||          }|r% |            dk    s| j        s| j         j        |k     rnt          d                    |          d||          }
| j        t%          | j        dd          }|K|rH|d         dk    r<t'          d                    |          dz   ||          }|
                    |           n:|dur6|j        dz   }|D ])}	|	dk    r!| j                            dd|           |dz  }*|
S )Nre   Tr   r  Frz   rx   ry   r	  z,:?[]{}u     	
  ,[]{}zwhile scanning a plain scalarzfound unexpected ':'zGPlease check http://pyyaml.org/wiki/YAMLColonInFlowContext for details.rT  rW  rU  )rP   r   r   r   rD   r  rU   r=   r   rF   r]  r   r  scan_plain_spacesr,   r^  r_  r3   r6   rc  rd  r+   ra  rb  )r0   r  r  rf  r   r   rD   spacesr,  r   rp  rq  rk   r+   s                 r   r   zScanner.scan_plain  s    kk![))++
q
 4	Fsuu||S[[3YY33vz??:L#L#L3YY4#Bf#L#L,,, O - #IIC
OO/AAA B,.)OO!%* #IIC
OO+KKKF"3*K((**#   {{$)D!MM&!!!MM$+,,V44555CKKK{++--H++FJ??F355C<<  ,0K,>,G,Gi4	l BGGFOOT:xHH ;"%dk3EuMMO& 4fQi4//*2776??T+A:xXXG**7333 --!*  " "BTzz44T1dCCC	r   c                   | j         j        }| j         j        }g }d} ||          dv r|dz  } ||          dv | j                             |          }| j                             |            |            }|dv r2|                                 }	d| _        | j                             d          }
|
dk    s|
dk    r |d          t          v rd S g } |            d	v r |            dk    r |             na|                    |                                            | j                             d          }
|
dk    s|
dk    r |d          t          v rd S  |            d	v |	d
k    r|                    |	           n|s|                    d           |                    |           n|r|                    |           |S )Nr   r  re   r}  Tr   r   r  rz  rU  )	rP   r   r   r  r  rF   r  r   r]  )r0   rD   r   r  r  rf  r,  r  r   rm  r  rk  s               r   r  zScanner.scan_plain_spaces+  s    kk!c&kkS  aKF c&kkS  k((00F###SUU'''--//J$(D![''**F%6U??ABT8T8TF#%%222355C<<CEEEEMM$"6"6"8"8999![//22F%6U??AJ\@\@\ #%%222 T!!j)))) #c"""MM&!!!! 	'MM+&&&r   r   c                   | j         j        } |            }|dk    r/t          d||d|| j                                                   d} ||          }|dk    rd|cxk    rdk    s$n d|cxk    rd	k    sn d
|cxk    rdk    sn |dv rA|dz  } ||          }d|cxk    rdk    n d|cxk    rd	k    ,n d
|cxk    rdk    ;n |dv A|dk    rI| j                             |           t          d||d|| j                                                   |dz  }| j                             |          }| j                             |           |S )Nr|   rF  zexpected '!', but found re   r  r#  r$  r%  r&  r'  r(  z-_zexpected '!' but found )rP   r   r   r   r   r  )r0   r   r   r  r   r,  r!  s          r   r<  zScanner.scan_tag_handleP  s    kSUU99-T--1211$$&&	   S[[99""""s""""cR&6&6&6&63&6&6&6&6#:J:J:J:Js:J:J:J:JbTXjj!S[[ """"s""""cR&6&6&6&63&6&6&6&6#:J:J:J:Js:J:J:J:JbTXjj Syy##F+++"1114b44K((**	   aKF""6**F###r   c                |   | j         j        }g }d} ||          }d|cxk    rdk    s5n d|cxk    rdk    s&n d|cxk    rdk    sn |dv s| j        d	k    r|d
k    r|dk    rs|                    | j                             |                     | j                             |           d}|                    |                     ||                     n|dz  } ||          }d|cxk    rdk    n d|cxk    rdk    n d|cxk    rdk    n |dv | j        d	k    r|d
k    |dk    rI|                    | j                             |                     | j                             |           d}|s/t          d||d|| j                                                   d	                    |          S )Nr   r#  r$  r%  r&  r'  r(  z-;/?:@&=+$,_.!~*'()[]%r	  r  rq   re   zwhile parsing an zexpected URI, but found rT  )
rP   r   rU   r   r  r   scan_uri_escapesr   r   r_  )r0   r   r   r  rf  r,  r   s          r   r?  zScanner.scan_tag_urip  sD    kS[[2bCbC---0699rSyySyydk0088999##F+++d33D*EEFFFF!VB 2bCbC---0699rSyy Q;;MM$+,,V44555K'''F 	,D,,1211$$&&	   wwvr   c           	        | j         j        }| j         j        }g }| j                                         } |            dk    r |             t	          d          D ]G} ||          dvr8t          d||d ||          | j                                                   H|                    t          | j                             d          d                      |d            |            dk    	 t          |          
                    d          }n4# t          $ r'}	t          d||t          |	          |          d }	~	ww xY w|S )Nrq   rJ  r  rF  @expected URI escape sequence of 2 hexdecimal numbers, but found r  utf-8rP   r   r   r   r  r   r   r*   r  bytesdecodeUnicodeDecodeErrorstr)
r0   r   r   r  r  
code_bytesr-   r  r!  excs
             r   r  zScanner.scan_uri_escapes  s~   kk! "
{##%%ceesllCEEE1XX  3q66!999&5T55"0%(SVV0 0,,..   : c$+"4"4Q"7"7<<===CFFF ceesll	Z*%%,,W55EE! 	Z 	Z 	Z<D<<j#c((TXYYY	Zs   8"D 
E%"EEc                &   | j                                         }|dv rT| j                             d          dk    r| j                             d           n| j                                          dS |dv r| j                                          |S dS )N   
rJ  
rU       rT  rP   r   r  r   )r0   r   s     r   r  zScanner.scan_line_break  s     [{!!!$$..##A&&&&##%%%4>!!K!!!Irr   r   )r3   r   r   r.   )r   r*   r   r.   r   r   rV   r   r   rW   r   rW   rk   r   r   r.   )r,   r   r   r.   )r,   r*   r   rW   )r   r   r   r.   )r   r   r   r   r   r.   )r   r   r   r.   r   r   r   r   )r   r   r   r.   )r   r   r   r   Fr   r   rP  rQ  r   r   )rD   r*   r   r   )r   r   r   r   )r  r   r   r   r   r   )rD   r   r   r   r   r   r   r   r   r   r   r   )Rr!   r"   r#   r1   propertyr=   r7   rP   rU   r_   rb   rg   rZ   rn   r[   rj   ri   r   r   r   r   rB   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r.  r  r5  r6  r  r   r   r   rX  rY  rZ  r\  r   r  r  r  r  r  r   r  r<  r?  r  r  r$   r   r   r   r   G   s[                " & & & X&58 58 58 58n ( ( ( X( . . . X.
 
 
 
" " " "& & & &
 
 
 
" " " "k
 k
 k
 k
^       5 5 5 5&= = = =.; ; ; ;": : : :0   X X X X   	2 	2 	2 	2: : : :8 8 8 8= = = =N N N NM M M M= = = == = = =< < < <= = = =$	A 	A 	A 	AB B B B<; ; ; ;6:= := := :=x9 9 9 9: : : :, , , ,+ + + ++ + + +: : : :* * * ** * * *9 9 9 9. . . .         9 9 9 99 9 9 99 9 9 9$ 
  
  
  
H% % % %NA A A A*   6! ! ! !6   &            &,7 ,7 ,7 ,7\65 65 65 65py y y y yv0# 0# 0# 0#d   2, , , ,2       P P P P0TV 	V 	V	
 	f 	V 	V 	V 	V 	V 	V 	S 	S 	d 	V  	V!" 	X#$ 	X% * ++L3 3 3 3j   :   .X X X Xt# # # #J   @! ! ! !F   2     r   r   c                  Z    e Zd ZddZddZddZddZddZddZdddZ	dd dZ
d!dZdS )"r   rV   r   r   rW   c                $   |                                  r(|                                  |                                  (|                                  t          | j                  dk    r'|sdS |D ] }t          | j        d         |          r dS !dS rY   )rZ   r[   _gather_commentsr:   rA   r\   r]   s      r   r_   zRoundTripScanner.check_token  s    ##%% 	%""$$$ ##%% 	%t{a t!    dk!nf55  44 ur   c                    |                                  r(|                                  |                                  (|                                  t          | j                  dk    r| j        d         S d S ra   )rZ   r[   r  r:   rA   r<   s    r   rb   zRoundTripScanner.peek_token  sv    ##%% 	%""$$$ ##%% 	%t{a;q>!tr   c                   g }| j         s|S t          | j         d         t                    r?| j                             d          }| xj        dz  c_        |                    |           |                                 r|                                  | j         s|S t          | j         d         t                    r?| xj        dz  c_        | j                             d          }|                    |           |                                 t          |          dk    r | j         d         	                    |           | j
        s.t          | j                   dk     r|                                  dS dS dS )zCcombine multiple comment lines and assign to next non-comment-tokenr   re   rJ  N)rA   r\   rc  rf   rC   r   rZ   r[   r:   r`  r@   )r0   ra  rk   s      r   r  z!RoundTripScanner._gather_comments  sv    { 	Odk!nl33 	%kooa((G"OOG$$$##%% 	)""$$$;  $+a.,77 )!!Q&!!+//!,,((( ##%% 	) x==AKN++H555y 	%S--11""$$$$$	% 	%11r   c                   |                                  r(|                                  |                                  (|                                  t          | j                  dk    rt          | j                  dk    rt          | j        d         t          t          t          t          f          rt          | j        d         t                    rc| j        d         j        j        | j        d         j        j        k    r2| xj        dz  c_        | j                            d          }|                                  t          | j                  dk    rt          | j        d         t                    r| xj        dz  c_        | j                            d          }|j        d|j        j        z  z   |j        z   |_        |                                  t          | j                  dk    r t          | j        d         t                    | j        d                             |           n t          | j                  dk    rt          | j        d         t                    rt          | j        d         t                    r| j        d         j        j        | j        d         j        j        k    rt| xj        dz  c_        | j                            d          }d|j        j        | j        d         j        j        z
  z  d|j        j        z  z   |j        z   |_        | j        d                             |           |                                  t          | j                  dk    rt          | j        d         t                    r| xj        dz  c_        | j                            d          }|j        d|j        j        z  z   |j        z   |_        |                                  t          | j                  dk    r t          | j        d         t                    | xj        dz  c_        | j                            d          S d S )Nr   re   r  rU  )rZ   r[   r  r:   rA   r\   r^  r   r   r   rc  r   r+   r   rC   rf   r!  r,   rd  )r0   cc1s      r   rg   zRoundTripScanner.get_token  s   ##%% 	%""$$$ ##%% 	%t{a DK  1$$KN *.BDWX  %
 t{1~|<< % KN+0DKN4M4RRR!!Q&!!KOOA&&&&((($+&&**z$+a.,/W/W*%%*%%++Bgr}/C)CDrxOAG**,,,	 $+&&**z$+a.,/W/W*
 A//2222DK  1$$t{1~{;; %t{1~|<< % KN+0DKN4M4RRR!!Q&!!KOOA&&AL-A0G0LLMQ\002g 
 A//222&&((($+&&**z$+a.,/W/W*%%*%%++Bgr}/C)CDrxOAG**,,,	 $+&&**z$+a.,/W/W*
 ";??1%%%tr   rk   r.   c                    |\  }}}|r$|d         dk    r|d d         }|r|d         dk    | j                             t          |||                     d S )Nr?   r  )rA   r   rc  )r0   rk   r!  r   r   s        r   rn   zRoundTripScanner.fetch_comment&  su    &-#z8 	b	S(( #2#JE  	b	S(( 	<z8DDEEEEEr   c                |   | j         j        }| j         j        }| j         j        dk    r |            dk    r
 |             d}| j        dk    rdnd}|s |            |v r |              |            |v  |            }|dk    r| j                                         }|} |             |t          vr. |            }|dk    r|dz  }n||z  } |             |t          v.|                                 }t          |          dk    r,||z  }|                                 }t          |          dk    ,| j                                         }| j        sd	| _	        |||fS |                                 d
k    r| j                                         }| j        sd	| _	         |            }|dk    r| j                                         }d
}|r|                     d	          }||z  }| |            dk    r|
                    dd          d         dz   }| j                                         }|||fS nd	}|d S )Nr   r  Fr   r  r  rp   rU  TrT  )
empty_linere   )rP   r   r   r)   r=   r   r  r  r:   rF   rsplit)	r0   r  r  r  r  r   r   rk   r   s	            r   r   z#RoundTripScanner.scan_to_next_token0  s   & kk!;!!cceex&7&7CEEE#22ee ,	#%%;&& #%%;&&BSyy![1133
((BTzz  4rMGCEEE (( ))++"ggkkrMG--//B "ggkk  ;//11 1,0D)
H44##%%++![1133
 1,0D)SUU::!%!5!5!7!7J G &!11T1BB2  & suu||")..q"9"9!"<t"C#{3355H"J88  Y  ,	Z tr   Fr  r   c                h   | j                                         }|dv rT| j                             d          dk    r| j                             d           n| j                                          dS |dv r| j                                          |S |r|dv r| j                                          |S dS )Nr  rJ  r  rU  r  z	 rT  r  )r0   r  r   s      r   r  z RoundTripScanner.scan_line_breakx  s     ;##%%{!!!$$..##A&&&&##%%%4>!!K!!!I 	B%KKK!!!Irr   Tr   rP  rQ  c                <    t                               | ||          S )N)rP  )r   r   )r0   r   rP  s      r   r   z"RoundTripScanner.scan_block_scalar  s    ((u(<<<r   r   r   c           	        | j         j        }| j         j        }g }d}| j                                         } |            dk    r|dz  } |             t	          d          D ]G} ||          dvr8t          d||d ||          | j                                                   H|                    t          | j                             d          d                     || j                             d          z  } |d            |            dk    	 t          |          
                    d          }	n4# t          $ r'}
t          d||t          |
          |          d	}
~
ww xY w|S )
z>
        The roundtripscanner doesn't do URI escaping
        rT  rq   rJ  r  rF  r  r  r  Nr  )r0   r   r   r  r  r  chunkr-   r  r  r  s              r   r  z!RoundTripScanner.scan_uri_escapes  s   
 kk! "
{##%%ceesllSLECEEE1XX  3q66!999&5T55"0%(SVV0 0,,..   : c$+"4"4Q"7"7<<===T[''***ECFFF ceesll	Zj!!((11AA! 	Z 	Z 	Z<D<<j#c((TXYYY	Zs   "D? ?
E0	"E++E0Nr  r  r  r  )r  rW   r   r   )Tr  r  )r!   r"   r#   r_   rb   r  rg   rn   r   r  r   r  r$   r   r   r   r     s              % % % %03 3 3 3jF F F FF F F FP    0= = = = =     r   r   c                  D    e Zd ZdZddZdddZddZddZddZddZ	dS )CommentBase)r!  r+   r,   usedfunctionflineufunuliner!  r   r+   r,   r   r.   c                   || _         || _        || _        d| _        t          dk    r_dd l}|                    |                                d         d                   }|j        | _        |j	        | _
        d | _        d | _        d S d S )Nr  r   r   )r!  r+   r,   r  r
   inspectgetframeinfostackr  linenor  r  r  )r0   r!  r+   r,   r  infos         r   r1   zCommentBase.__init__  s    
		Q;;NNN''(:1(=>>D MDMDJDIDJJJ ;r   ru  r  c                    || _         t          dk    rQdd l}|                    |                                d         d                   }|j        | _        |j        | _        d S d S rd   )	r  r
   r  r  r  r  r  r  r  )r0   r  r  r  s       r   set_usedzCommentBase.set_used  s]    	Q;;NNN''(:1(=>>DDIDJJJ ;r   c                    d| _         d S )Nr}   )r  r<   s    r   set_assignedzCommentBase.set_assigned  s    			r   r  c                    | j          S r   r!  r<   s    r   __str__zCommentBase.__str__  s    *r   c                    | j         S r   r  r<   s    r   __repr__zCommentBase.__repr__  s    *  r   c                    | j         dz   }| j        }| | j         d| j        dd| j        dd|dd| j         d| j         d| j         d| j         S )Nr   r  2rz   z<2z "40s)	r!  r   r  r+   r,   r  r  r  r  )r0   xvr   s      r   r  zCommentBase.info  s    Z#y ETY E EJ E Et{J E EJ E E}E E#zE E,0IE E8<
E E	
r   Nr!  r   r+   r   r,   r   r   r.   )ru  )r  r   r   r.   r  r   r  )
r!   r"   r#   	__slots__r1   r  r  r  r  r  r$   r   r   r  r    s        YI   % % % % %      ! ! ! !
 
 
 
 
 
r   r  c                  $     e Zd ZdZd	 fdZ xZS )

EOLCommentEOLCr!  r   r+   r,   r   r.   c                N    t                                          |||           d S r   superr1   r0   r!  r+   r,   	__class__s       r   r1   zEOLComment.__init__  %    f-----r   r  r!   r"   r#   r   r1   __classcell__r  s   @r   r  r    B        D. . . . . . . . . .r   r  c                  $     e Zd ZdZd	 fdZ xZS )
FullLineCommentFULLr!  r   r+   r,   r   r.   c                N    t                                          |||           d S r   r  r  s       r   r1   zFullLineComment.__init__  r   r   r  r  r  s   @r   r  r    r  r   r  c                  $     e Zd ZdZd	 fdZ xZS )
BlankLineCommentBLNKr!  r   r+   r,   r   r.   c                N    t                                          |||           d S r   r  r  s       r   r1   zBlankLineComment.__init__  r   r   r  r  r  s   @r   r
  r
    r  r   r
  c                  x    e Zd ZddZdd	Zdd
ZddZddZd dZd!dZ	d"dZ
d#d$dZd%dZd&dZd%dZd dZdS )'ScannedCommentsr0   r   r   r.   c                "    i | _         g | _        d S r   )ra  unusedr<   s    r   r1   zScannedComments.__init__  s    r   rk   r,   r+   c                    |                     d          dk    r|d         dk    sJ nd|vsJ t          |d d         ||          x| j        |<   }| j                            |           |S NrU  re   r?   )countr  ra  r  r   r0   rk   r,   r+   retvals        r   add_eol_commentzScannedComments.add_eol_comment  s    ==!##2;$&&&&&w&&&&'1'#2#,f'M'MMdf4   r   c                    |                     d          dk    r|d         dk    sJ || j        vsJ t          |d d         ||          x| j        |<   }| j                            |           |S r  )r  ra  r
  r  r   r  s        r   rb  zScannedComments.add_blank_line  s    }}T""a''GBK4,?,?,?,?4=(((('7dF'S'SSdf4   r   c                    |                     d          dk    r|d         dk    sJ t          |d d         ||          x| j        |<   }| j                            |           |S r  )r  r  ra  r  r   r  s        r   add_full_line_commentz%ScannedComments.add_full_line_comment  so    }}T""a''GBK4,?,?,?,? (7wss|T6'R'RRdf4   r   idxc                    | j         |         S r   )ra  )r0   r  s     r   __getitem__zScannedComments.__getitem__  s    }S!!r   c                z    dd                     d | j                                        D                       z   dz   S )NzParsedComments:
  z
  c              3  P   K   | ]!\  }}|d d|                                  V  "dS )r  r  N)r  ).0r  rr  s      r   	<genexpr>z*ScannedComments.__str__.<locals>.<genexpr>#  s?      [[	f33333[[[[[[r   rU  r_  ra  itemsr<   s    r   r  zScannedComments.__str__   sD    !kk[[T]EXEXEZEZ[[[\\]	
r   r  c                    t          | j                                                  d         \  }}|dd|                                 dS )Nr?   r  r  rU  )r   ra  r"  r  )r0   r  rr  s      r   lastzScannedComments.last'  sH    ,,..//3	)))QVVXX))))r   rW   c                2    t          | j                  dk    S ra   )r:   r  r<   s    r   any_unprocessedzScannedComments.any_unprocessed+  s    4;!##r   Fusec              #    K   t          | j                  dk    rt          dk    rdd l}|r| j                            d          n| j        d         }|                    |                                d         d                   }t          d|| j        |         j	        |j
        |j                   || j        |         fV  |r| j        |                                          t          | j                  dk    d S d S )Nr   re   using)r:   r  r
   r  rf   r  r  r   ra  r!  r  r  r  )r0   r'  r  firstr  s        r   unprocessedzScannedComments.unprocessed3  s      $+""{{.1E***t{1~++GMMOOA,>q,ABBe(<(BDMSWS^___u----- 0e$--/// $+""""""r   rp  c                    |j         j        }t          dk    rYdd l}|                    |                                d         d                   }t          d|| j        |j        |j	                   d}| j        r| j        d         |k     rd}| j        
                    d          }t          dk    rt          d|           | j        |                                          |                    |           | j        r| j        d         |k     |S )Nr   re   
assign_preFTzassign_pre < )r   r+   r
   r  r  r  r   r  r  r  rf   ra  r  add_comment_prer0   rp  
token_liner  r  gobbledr*  s          r   r-  zScannedComments.assign_pre?  s    %*
Q;;NNN''(:1(=>>DL*dk4=$+VVVk 	)dk!nz99GKOOA&&E{{///M% ))+++!!%((( k 	)dk!nz99 r   rA   c                   	 | j         d         }n# t          $ r Y d S w xY wt          | j        |         t                    sd S d}||          j        j        |k    st          ||          t                    r8|dz  }||          j        j        |k    t          ||          t                    8t          dk    rt          d|           t          |          |k    r=t          ||          t                    r!t          ||dz             t                    rd S 	 t          ||          t                    rt          ||dz             t                    r	 | j                             d          }| j        |                                          t          dk    rt          d||t                     ||                              |t                     n# t          $ r t"          w xY wd S n*# t          $ r t          dk    rt          d           Y nw xY w	 t          ||          t                    rt          ||dz             t          t$          f          rt	 | j                             d          }| j        |                                          ||                              |t&                     n# t          $ r t"          w xY wd S n*# t          $ r t          dk    rt          d           Y nw xY w|D ]}t          d|           t          dk    r$t          dt)          ||                               dd l}|                    d           d S )	Nr   re   idx1z>>>>>aIndexError1IndexError2ztt-znot implemented EOL)r  r   r\   ra  r  r   r+   r   r
   r   r:   r^  r   rf   r  KEYCMNTadd_comment_eolrm   r   	VALUECMNTtypesysexit)r0   rA   comment_liner  eol_idxr  r:  s          r   
assign_eolzScannedComments.assign_eolP  s   	;q>LL 	 	 	FF	$-5zBB 	FcTl%*\99ZC4L*>
 >
9 1HC cTl%*\99ZC4L*>
 >
9 Q;;FC   KK#63$<55 6C!G*-{;;  F	&#,44 qz"H: : ."kooa00GM'*33555{{#w@@@C4L00'BBBB! . . .--. 	 	 	{{&&&D		&#,44 	qz"Z$A: : 	."kooa00GM'*33555C4L00)DDDD! . . .--. 	 	 	{{&&&D	  	 	AE1Q;;)4t+=+=>>>


sc    
;G. A=G G. G((G. .$HHAK AJ8 7K 8K

K $K76K7c                    |j         j        }t          dk    rYdd l}|                    |                                d         d                   }t          d|| j        |j        |j	                   d}| j        r| j        d         |k     rd}| j        
                    d          }t          dk    rt          d|           | j        |                                          |                    |           | j        r| j        d         |k     |S )Nr   re   assign_postFTzassign_post < )r   r+   r
   r  r  r  r   r  r  r  rf   ra  r  add_comment_postr/  s          r   r@  zScannedComments.assign_post  s   %*
Q;;NNN''(:1(=>>DM:t{DM4;WWWk 	*dk!nz99GKOOA&&E{{(%000M% ))+++""5))) k 	*dk!nz99 r   c                n    d                     d | j                                        D                       S )NrT  c              3  j   K   | ].\  }}|j         d k    d|dd |                                 dV  /dS )r  z  r  rU  N)r  r  )r  indrr  s      r   r   z2ScannedComments.str_unprocessed.<locals>.<genexpr>  sL      \\63afX[mm&#&&&!&&((&&&mmmm\\r   r!  r<   s    r   str_unprocessedzScannedComments.str_unprocessed  s7    ww\\T]5H5H5J5J\\\
 
 	
r   N)r0   r   r   r.   )rk   r   r,   r   r+   r   r   r   )r  r   r   r   r  r  r  r  )r'  r   r   r   )rp  r   r   r   )rA   r   r   r   )r!   r"   r#   r1   r  rb  r  r  r  r$  r&  r+  r-  r>  r@  rE  r$   r   r   r  r    s                   " " " "
 
 
 
* * * *$ $ $ $
0 
0 
0 
0 
0   ": : : :x   "
 
 
 
 
 
r   r  c                  H     e Zd Zd fdZddZdd	Zdd
ZddZddZ xZ	S )RoundTripScannerSCargr   r   r   r.   c                Z     t                      j        |i | | j        J d | _        d S r   )r  r1   r3   ra  )r0   rH  r   r  s      r   r1   zRoundTripScannerSC.__init__  s:    #$$$${&&& r   c                   |                                  r(|                                  |                                  (t          | j                  dk    rt	          | j        d         t
                    r&| j                            | j        d                    n%| j                            | j        d                    | xj	        dz  c_	        | j        
                    d          S d S rd   )rZ   r[   r:   rA   r\   r   ra  r@  r-  rC   rf   r<   s    r   rg   zRoundTripScannerSC.get_token  s    ##%% 	%""$$$ ##%% 	%t{a$+a.-88 9))$+a.9999((Q888";??1%%%  r   rW   c                   | j         t                      x| j        _        | _         | j        rdS t          | j                  dk    rdS |                                  |                                 | j	        k    rdS t          | j                  dk     rdS | j        d         j
        j        | j        d         j
        j        k    rdS 	 t          dk    rat          dt          | j                             | j        D ]}t          |           t          | j                                                    | j                             | j        d                    | j                             | j                   dS )NFr   TrJ  r?   z-x--)ra  r  r3   parsed_commentsr@   r:   rA   ri   rj   rC   r   r+   r
   r   rE  r-  r>  )r0   r  s     r   rZ   z#RoundTripScannerSC.need_more_tokens  sZ   = :I:K:KKDK'$-9 	5t{q  4 	'')))((**d.???4t{a4;q>$)T[_-G-LLL4	9{{DK 0 0111  AAJJJJ5577888  Q000  ---ur   c                v   | j         j        }| j         j        }| j         j        dk    r |            dk    r
 |             | j                                         }d}|sZ |            dk    r |              |            dk     |            }|dk    r| j                                         }|} |             |t
          vr. |            }|dk    r|dz  }n||z  } |             |t
          v.|j        dk    r'| j                            ||j        |j	                   n(| j        
                    ||j        |j	                   d}|                                  | j        sd	| _        d S t          |                                           r$| j        sd	| _        |                                  d S d	}|Zd S )
Nr   r  Fr  r  rp   rU  rT  T)rP   r   r   r)   r   r  r,   ra  r  r+   r   scan_empty_or_full_line_commentsr=   rF   rW   r  r  )	r0   r  r  r   r  r   comment_start_markrk   r  s	            r   r   z%RoundTripScannerSC.scan_to_next_token  s
   kk!;!!cceex&7&7CEEE[))++
 4	#%%3,, #%%3,,BSyy%)[%9%9%;%;"((BTzz  4rMGCEEE (( $))M77!3!:<N<S    M11!3!:<N<S   !G55777 1,0D)D((**++  1,0D)55777t i  4	j tr   c                ,   | j                                         }|j        dk    sJ d}d }d }| j                                         }	 |dv r| j                             d          dk    r| j                             d           n| j                                          |.|dz  }| j                            ||j        |j                   d }n+|dz  }| j        	                    ||j        |j                   d}| j                                         }| j                                         }|.|dv r||z  }n)|d	k    r| j                                         }d	}nd S ||z  }| j                                          | j                                         }O)
Nr   rT  Tr}  rJ  r  rU  r   r  )
rP   r   r,   r   r  r   ra  r  r+   rb  )r0   blmarkblanksrk   r-   r   s         r   rN  z3RoundTripScannerSC.scan_empty_or_full_line_comments	  s   %%''}!!!![	$+++;%%a((F22K''****K'')))&tOGM77diXXX"GGdNFM00TTT--//[%%'';;bLFF3YY;//11D!GG E2K!!!!!##B=	$r   r   c                h   | j         j        }| j         j        }d}d } |            dk    r%| |            z  } |              |            dk    % |            dk    rYd}| j                                         } |            t          vr(| |            z  } |              |            t          v(|dz  } |            }|t          vr,t          d|d|| j                                                   |&| j                            ||j        |j	                   | 
                                 d S )NrT  r  r  rU  rw  rA  )rP   r   r   r   r  r   ra  r  r,   r+   r  )r0   r   r  r  r  rk   r-   r   s           r   rY  z1RoundTripScannerSC.scan_block_scalar_ignored_line8	  sT   kk!ceesllcceeOFCEEE ceesll 355C<<G;''))D#%%x''3355  #%%x'' tOGSUUX/GGG$$&&	   M))'4;	JJJtr   )rH  r   r   r   r   r.   r  r  r  r  )
r!   r"   r#   r1   rg   rZ   r   rN  rY  r  r  s   @r   rG  rG    s             
& 
& 
& 
&   6= = = =~%$ %$ %$ %$N       r   rG  N)r   r   r   r   r   r   )'
__future__r   ruamel.yaml.errorr   r   ruamel.yaml.tokensruamel.yaml.docinfor   r   ruamel.yaml.compatr	   r
   r   r   typingr   r   r   r   r   r   r   __all__r  r  r  r   r   r&   r   r   r8  r6  r  r  r  r
  r  rG  r$   r   r   <module>r[     s   " " " " " "< ; : : : : : : :         , , , , , , , , M M M M M M M M M M M ME :
9
9 $0 
 
Q;;$ $ $ $	 	 	 	 	? 	 	 	       x x x x x x x xv3n n n n nw n n nf 	

)
 )
 )
 )
 )
 )
 )
 )
X. . . . . . . .. . . . .k . . .. . . . .{ . . .d
 d
 d
 d
 d
 d
 d
 d
Np p p p p p p p p pr   