a
    ͝Gd\                    @   s   d dl Z d dlmZmZ d dlT d dlmZmZmZm	Z	 g dZdZdZdZd	d
 ZG dd deZG dd dZG dd dZG dd deZd Zd ZG dd dZG dd deZG dd deZG dd deZG dd dZ G dd deZ!dS )    N)MarkedYAMLErrorCommentMark)*)_Fcheck_anchorname_charnprintnprintf)ScannerRoundTripScannerScannerErroru   
   u    
 	   	c                  O   s   t | i |S N)r   )argskw r   O/var/www/html/django/DPS/env/lib/python3.9/site-packages/ruamel/yaml/scanner.pyxprintf0   s    r   c                   @   s   e Zd ZdS )r   N)__name__
__module____qualname__r   r   r   r   r   6   s   r   c                   @   s   e Zd Zdd ZdS )	SimpleKeyc                 C   s(   || _ || _|| _|| _|| _|| _d S r   )token_numberrequiredindexlinecolumnmark)selfr   r   r   r   r   r   r   r   r   __init__=   s    zSimpleKey.__init__N)r   r   r   r   r   r   r   r   r   :   s   r   c                   @   s  e Zd ZdddZedd Zdd Zedd	 Ze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 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- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Z d<d= Z!d>d? Z"d@dA Z#dBdC Z$dDdE Z%dFdG Z&dHdI Z'dJdK Z(dLdM Z)dNdO Z*dPdQ Z+dRdS Z,dTdU Z-dVdW Z.dXdY Z/dZd[ Z0d\d] Z1d^d_ Z2d`da Z3dbdc Z4ddde Z5dfdg Z6dhdi Z7djdk Z8dldm Z9dndo Z:dpdq Z;drds Z<dtdu Z=dvdw Z>dxdy Z?dzd{ Z@dd}d~ZAdd ZBdd ZCdd ZDdd ZEdd ZFdddddddddddddddddddZGddddZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdS )r	   Nc                 C   sB   || _ | j dur*t| j dddu r*| | j _|   d| _d| _dS )zInitialize the scanner.N_scannerF)loadergetattrr   reset_scannerZ
first_timeyaml_version)r   r    r   r   r   r   H   s    zScanner.__init__c                 C   s
   t | jS r   )lenflow_contextr   r   r   r   
flow_level[   s    zScanner.flow_levelc                 C   s<   d| _ g | _g | _|   d| _d| _g | _d| _i | _d S )NFr   T)	doner%   tokensfetch_stream_starttokens_takenindentindentsallow_simple_keypossible_simple_keysr&   r   r   r   r"   `   s    zScanner.reset_scannerc                 C   sH   z| j W S  tyB   t| jdr.| jj| _ n
| jj| _ | j  Y S 0 d S Ntyp)Z_scanner_readerAttributeErrorhasattrr    reader_readerr&   r   r   r   r5      s    
zScanner.readerc                 C   s   t | jdr| jjjS | jjS r1   )r4   r    resolverZprocessing_versionr&   r   r   r   scanner_processing_version   s    
z"Scanner.scanner_processing_versionc                 G   sL   |   r|   q t| jdkrH|s(dS |D ]}t| jd |r, dS q,dS Nr   TF)need_more_tokensfetch_more_tokensr$   r*   
isinstancer   choiceschoicer   r   r   check_token   s    
zScanner.check_tokenc                 C   s.   |   r|   q t| jdkr*| jd S d S Nr   )r:   r;   r$   r*   r&   r   r   r   
peek_token   s    
zScanner.peek_tokenc                 C   s>   |   r|   q t| jdkr:|  jd7  _| jdS d S Nr      )r:   r;   r$   r*   r,   popr&   r   r   r   	get_token   s
    
zScanner.get_tokenc                 C   s:   | j r
dS t| jdkrdS |   |  | jkr6dS dS )NFr   T)r)   r$   r*   stale_possible_simple_keysnext_possible_simple_keyr,   r&   r   r   r   r:      s    zScanner.need_more_tokensc                 C   s   t d S r   )NotImplementedError)r   commentr   r   r   fetch_comment   s    zScanner.fetch_commentc                 C   s  |   }|d ur| |S |   | | jj | j }|dkrJ|  S |dkrb|  rb| 	 S |dkrz| 
 rz|  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r2|  r2|  S |dkrD|  S |dkrV|  S |dkrh|  S |dkr| js|  S |dkr| js|  S |dkr|  S |dkr|   S | ! r| " S t#dd t$d|d| j% d S )N %-.[{]},?:r   &!|>'"z!while scanning for the next tokenz2found character {ch!r} that cannot start any tokench)&scan_to_next_tokenrK   rG   unwind_indentr5   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   r   get_mark)r   rJ   r^   r   r   r   r;      sh    

	






zScanner.fetch_more_tokensc                 C   s6   d }| j D ]&}| j | }|d u s*|j|k r
|j}q
|S r   )r0   r   )r   Zmin_token_numberlevelkeyr   r   r   rH   L  s    	

z Scanner.next_possible_simple_keyc                 C   sb   t | jD ]R}| j| }|j| jjks8| jj|j dkr
|jrTtd|jd| j | j|= q
d S )Ni   while scanning a simple keycould not find expected ':')	listr0   r   r5   r   r   r   r   r}   )r   r~   r   r   r   r   rG   \  s    
 z"Scanner.stale_possible_simple_keysc                 C   sh   | j  o| j| jjk}| jrd|   | jt| j }t	||| jj
| jj| jj| j }|| j| j < d S r   )r'   r-   r5   r   r/   remove_possible_simple_keyr,   r$   r*   r   r   r   r}   r0   )r   r   r   r   r   r   r   save_possible_simple_keyp  s    z Scanner.save_possible_simple_keyc                 C   sB   | j | jv r>| j| j  }|jr4td|jd| j | j| j = d S )Nr   r   )r'   r0   r   r   r   r5   r}   )r   r   r   r   r   r     s    z"Scanner.remove_possible_simple_keyc                 C   sF   t | jrd S | j|krB| j }| j | _| jt	|| qd S r   )
boolr'   r-   r5   r}   r.   rE   r*   appendBlockEndToken)r   r   r   r   r   r   r`     s    


zScanner.unwind_indentc                 C   s&   | j |k r"| j| j  || _ dS dS )NTF)r-   r.   r   )r   r   r   r   r   
add_indent  s
    
zScanner.add_indentc                 C   s(   | j  }| jt||| j jd d S )N)encoding)r5   r}   r*   r   ZStreamStartTokenr   r   r   r   r   r   r+     s    
zScanner.fetch_stream_startc                 C   sD   |  d |   d| _i | _| j }| jt|| d| _	d S )Nr(   FT)
r`   r   r/   r0   r5   r}   r*   r   ZStreamEndTokenr)   r   r   r   r   rb     s    

zScanner.fetch_stream_endc                 C   s,   |  d |   d| _| j|   d S )Nr(   F)r`   r   r/   r*   r   scan_directiver&   r   r   r   rd     s    
zScanner.fetch_directivec                 C   s   |  t d S r   )fetch_document_indicatorZDocumentStartTokenr&   r   r   r   rf     s    zScanner.fetch_document_startc                 C   s   |  t d S r   )r   ZDocumentEndTokenr&   r   r   r   rh     s    zScanner.fetch_document_endc                 C   sN   |  d |   d| _| j }| jd | j }| j||| d S )Nr(   F   )r`   r   r/   r5   r}   forwardr*   r   )r   
TokenClass
start_markend_markr   r   r   r     s    


z Scanner.fetch_document_indicatorc                 C   s   | j tdd d S )NrP   to_push)fetch_flow_collection_startZFlowSequenceStartTokenr&   r   r   r   ri     s    z!Scanner.fetch_flow_sequence_startc                 C   s   | j tdd d S )NrQ   r   )r   ZFlowMappingStartTokenr&   r   r   r   rj     s    z Scanner.fetch_flow_mapping_startc                 C   sN   |    | j| d| _| j }| j  | j }| j||| d S NT)r   r%   r   r/   r5   r}   r   r*   )r   r   r   r   r   r   r   r   r     s    


z#Scanner.fetch_flow_collection_startc                 C   s   |  t d S r   )fetch_flow_collection_endFlowSequenceEndTokenr&   r   r   r   rk     s    zScanner.fetch_flow_sequence_endc                 C   s   |  t d S r   )r   FlowMappingEndTokenr&   r   r   r   rl     s    zScanner.fetch_flow_mapping_endc                 C   sd   |    z| j }W n ty(   Y n0 d| _| j }| j  | j }| j	||| d S NF)
r   r%   rE   
IndexErrorr/   r5   r}   r   r*   r   )r   r   poppedr   r   r   r   r   r     s    


z!Scanner.fetch_flow_collection_endc                 C   sB   d| _ |   | j }| j  | j }| jt|| d S r   )r/   r   r5   r}   r   r*   r   ZFlowEntryToken)r   r   r   r   r   r   rm   +  s    


zScanner.fetch_flow_entryc                 C   s   | j sL| js td d d| j | | jjrL| j }| jt	|| n d| _| 
  | j }| j  | j }| jt|| d S )Nz%sequence entries are not allowed hereT)r'   r/   r   r5   r}   r   r   r*   r   ZBlockSequenceStartTokenr   r   BlockEntryTokenr   r   r   r   r   r   r   ro   7  s    



zScanner.fetch_block_entryc                 C   s   | j sJ| js td d d| j | | jjrJ| j }| jt	|| | j  | _| 
  | j }| j  | j }| jt|| d S )Nz!mapping keys are not allowed here)r'   r/   r   r5   r}   r   r   r*   r   BlockMappingStartTokenr   r   KeyTokenr   r   r   r   rq   S  s    




zScanner.fetch_keyc                 C   s  | j | jv r|| j| j  }| j| j = | j|j| j t|j|j | j st| |j	rt| j|j| j t
|j|j d| _nb| j s| jstd d d| j | j s| | jj	r| j }| jt
|| | j  | _|   | j }| j  | j }| jt|| d S )NFz#mapping values are not allowed here)r'   r0   r*   insertr   r,   r   r   r   r   r   r/   r   r5   r}   r   r   r   
ValueToken)r   r   r   r   r   r   r   r   rs   o  s>    







zScanner.fetch_valuec                 C   s$   |    d| _| j| t d S r   )r   r/   r*   r   scan_anchorZ
AliasTokenr&   r   r   r   rt     s    zScanner.fetch_aliasc                 C   s$   |    d| _| j| t d S r   )r   r/   r*   r   r   ZAnchorTokenr&   r   r   r   ru     s    zScanner.fetch_anchorc                 C   s"   |    d| _| j|   d S r   )r   r/   r*   r   scan_tagr&   r   r   r   rv     s    zScanner.fetch_tagc                 C   s   | j dd d S )NrY   stylefetch_block_scalarr&   r   r   r   rw     s    zScanner.fetch_literalc                 C   s   | j dd d S )NrZ   r   r   r&   r   r   r   rx     s    zScanner.fetch_foldedc                 C   s$   d| _ |   | j| | d S r   )r/   r   r*   r   scan_block_scalarr   r   r   r   r   r     s    zScanner.fetch_block_scalarc                 C   s   | j dd d S )Nr[   r   fetch_flow_scalarr&   r   r   r   ry     s    zScanner.fetch_singlec                 C   s   | j dd d S )Nr\   r   r   r&   r   r   r   rz     s    zScanner.fetch_doublec                 C   s$   |    d| _| j| | d S r   )r   r/   r*   r   scan_flow_scalarr   r   r   r   r     s    zScanner.fetch_flow_scalarc                 C   s"   |    d| _| j|   d S r   )r   r/   r*   r   
scan_plainr&   r   r   r   r|     s    zScanner.fetch_plainc                 C   s   | j jdkrdS d S )Nr   T)r5   r   r&   r   r   r   rc     s    zScanner.check_directivec                 C   s4   | j jdkr0| j ddkr0| j dtv r0dS d S )Nr   r   ---Tr5   r   prefixra   _THE_END_SPACE_TABr&   r   r   r   re     s     zScanner.check_document_startc                 C   s4   | j jdkr0| j ddkr0| j dtv r0dS d S )Nr   r   ...Tr   r&   r   r   r   rg     s     zScanner.check_document_endc                 C   s   | j dtv S )NrD   )r5   ra   r   r&   r   r   r   rn     s    zScanner.check_block_entryc                 C   s   t | jrdS | jdtv S )NTrD   )r   r'   r5   ra   r   r&   r   r   r   rp     s    
zScanner.check_keyc                 C   s   | j dkrt| jrvdS n\t| jrv| jd dkrH| jdtvrrdS n*| jrrt| jd t	rr| jdtvrrdS dS | jdtv S )NrD   rD   Tr(   rP   rD   F)
r8   r   r'   r%   r5   ra   r   r*   r<   r   r&   r   r   r   rr     s    


zScanner.check_valuec                 C   s   | j j}| }| jdkrD|dvpB|dtvoB|dkpB| j oB|dv S |dvrPdS |d}|dkrl|tvrldS |dkrt| jr|tvrdS |dtvo|dkp| j o|dv S )Nr   u      	
  -?:,[]{}#&*!|>'"%@`rD   rN   z?:TrV   )r5   ra   r8   r   r'   r   
_SPACE_TAB)r   srpr^   Zch1r   r   r   r{   .  s"    
zScanner.check_plainc                 C   s   | j j}| j j}| j jdkr,| dkr,|  d}t}|s| dkrJ|  q8| dkrf| |vrf|  qT|  r|| jsd| _q4d}q4d S )Nr      ﻿F #T)r5   ra   r   r   _THE_ENDscan_line_breakr'   r/   )r   r   srffoundZ_the_endr   r   r   r_   S  s"    


zScanner.scan_to_next_tokenc                 C   s   | j j}| j j}| j  }|  | |}d }|dkrL| |}| j  }n:|dkrj| |}| j  }n| j  }| tvr|  qt| | t	||||S )NYAMLZTAG)
r5   ra   r   r}   scan_directive_namescan_yaml_directive_valuescan_tag_directive_valuer   scan_directive_ignored_lineZDirectiveToken)r   r   r   r   namevaluer   r   r   r   r   z  s"    






zScanner.scan_directivec                 C   s   d}| j j}||}d|  kr(dks^n d|  kr>dks^n d|  krTdks^n |dv rp|d	7 }||}q|std
|td|d| j  | j |}| j | | }|dvrtd
|td|d| j  |S )Nr   09AZazz-_:.rD   while scanning a directive:expected alphabetic or numeric character, but found {ch!r}r]        
  )r5   ra   r   r   r}   r   r   )r   r   lengthr   r^   r   r   r   r   r     s0    J


zScanner.scan_directive_namec                 C   s   | j j}| j j}| dkr"|  q| |}| dkrTtd|td| d| j  |  | |}| dvrtd|td| d| j  ||f| _| jS )Nr   rO   r   z/expected a digit or '.', but found {srp_call!r}srp_callr   )r5   ra   r   scan_yaml_directive_numberr   r   r}   r#   )r   r   r   r   majorminorr   r   r   r     s.    





z!Scanner.scan_yaml_directive_valuec                 C   s   | j j}| j j}| }d|  kr*dksHn td|td|d| j  d}d||  krddkrrn n
|d7 }qLt| j |}|| |S )Nr   r   r   z"expected a digit, but found {ch!r}r]   r   rD   )r5   ra   r   r   r   r}   intr   )r   r   r   r   r^   r   r   r   r   r   r     s     

z"Scanner.scan_yaml_directive_numberc                 C   sP   | j j}| j j}| dkr"|  q| |}| dkr>|  q,| |}||fS )Nr   )r5   ra   r   scan_tag_directive_handlescan_tag_directive_prefix)r   r   r   r   handler   r   r   r   r     s    



z Scanner.scan_tag_directive_valuec                 C   s>   |  d|}| j }|dkr:td|td|d| j |S )N	directiver   r   expected ' ', but found {ch!r}r]   )scan_tag_handler5   ra   r   r   r}   r   r   r   r^   r   r   r   r     s    

z!Scanner.scan_tag_directive_handlec                 C   s>   |  d|}| j }|dvr:td|td|d| j |S )Nr   r   r   r   r]   )scan_tag_urir5   ra   r   r   r}   r   r   r   r   r     s    

z!Scanner.scan_tag_directive_prefixc                 C   st   | j j}| j j}| dkr"|  q| dkr>| tvr>|  q,| }|tvrhtd|td|d| j  |   d S )Nr   r   r   4expected a comment or a line break, but found {ch!r}r]   r5   ra   r   r   r   r   r}   r   )r   r   r   r   r^   r   r   r   r     s     



z#Scanner.scan_directive_ignored_linec           
      C   s   | j j}| j  }| }|dkr&d}nd}| j   d}||}t|rZ|d7 }||}q@|sttd|d|td|d	| j  | j |}| j | |d
vrttd|d|td|d	| j  | j  }	||||	S )Nr   aliasanchorr   rD   while scanning an {name!s}r   r   r]   u     	
  ?:,[]{}%@`)r5   ra   r}   r   r   r   r   r   )
r   r   r   r   Z	indicatorr   r   r^   r   r   r   r   r   r     s<    








zScanner.scan_anchorc           
      C   s8  | j j}| j  }|d}|dkrrd }| j d | d|}| dkrftd|td| d| j  | j   n||tv rd }d	}| j   n`d}d
}|dvr|d	krd}q|d7 }||}qd	}|r| d|}nd	}| j   | d|}| }|dvrtd|td|d| j  ||f}| j  }	t	|||	S )NrD   <   tagrZ   zwhile parsing a tagz$expected '>', but found {srp_call!r}r   rX   Fr   Tzwhile scanning a tagr   r]   )
r5   ra   r}   r   r   r   r   r   r   ZTagToken)
r   r   r   r^   r   suffixr   Z
use_handler   r   r   r   r   r   G  sX    






zScanner.scan_tagFc                 C   s  | j j}|dkrd}nd}g }| j  }| j   | |\}}| |}	| jd }
|d u r|
dk r|dvs| jdkrt| j	ddrd}
| 
 \}}}t|
|}n&|
dk rd}
|
| d }| |\}}d}| j j|kr| d	kr|| | d
v}d}||tvr|d7 }q|| j | | j | |  }| |\}}|dv rv|
dkrv|  s|  rvq| j j|kr| d	kr|r|r|dkr|d |r|dkr|r| d
vr|s|d n
|| q̐qqg }|dv r|| |du r$|| n|dv r8|| td|d|||}| j	d urt| j	dd}|d u r|	d ur||	g t|dkr~| j	d urt| j	dd }|d ur|jt| }|D ]0}|d dksJ | j|d| |d7 }q|  }|r4|d|d j |d   |  }q| j	d ur~t| j	dd}|d u r~| j  }td|||}|| |S )NrZ   TFrD   z|>r   Z0top_level_block_style_scalar_no_indent_error_1_1 rL   r   r   
r   r   r   comment_handlingr(   )r5   ra   r}   r   scan_block_scalar_indicatorsscan_block_scalar_ignored_liner-   r8   r!   r    scan_block_scalar_indentationmaxscan_block_scalar_breaksr   extendr   r   r   r   re   rg   ScalarTokenjoinadd_pre_commentsr$   r   commentsadd_blank_liner_   CommentTokenadd_post_comment)r   r   rtr   foldedchunksr   chomping	incrementZblock_scalar_commentZ
min_indentbreaks
max_indentr   r-   
line_breakZleading_non_spacer   Ztrailingtokencomment_handlerr   xrJ   Zcomment_end_markr   r   r   r   y  s    







"










zScanner.scan_block_scalarc                 C   s  | j j}d }d }| }|dv rx|dkr,d}nd}| j   | }|dv rt|}|dkrltd|d| j  | j   n`|dv rt|}|dkrtd|d| j  | j   | }|dv r|dkrd}nd}| j   | }|d	vrtd|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   z=expected chomping or indentation indicators, but found {ch!r}r]   )r5   ra   r   r   r   r}   r   )r   r   r   r   r   r^   r   r   r   r     sZ    




z$Scanner.scan_block_scalar_indicatorsc                 C   s   | j j}| j j}d}d }| dkr4|| 7 }|  q| dkr^|}| tvr^|| 7 }|  qB| }|tvrtd|td|d| j  |   |S )Nr   r   r   r  r   r]   r   )r   r   r   r   r   rJ   r^   r   r   r   r   (  s,    





z&Scanner.scan_block_scalar_ignored_linec                 C   sv   | j j}| j j}g }d}| j  }| dv rl| dkrP||   | j  }q"|  | j j|kr"| j j}q"|||fS )Nr       
  r   )r5   ra   r   r}   r   r   r   )r   r   r   r   r   r   r   r   r   r   B  s    



z%Scanner.scan_block_scalar_indentationc                 C   s   g }| j j}| j j}| j  }| j j|k r<| dkr<|  q| dv r~||   | j  }| j j|k r<| dkr<|  q^q<||fS )Nr   
   
  )r5   ra   r   r}   r   r   r   )r   r-   r   r   r   r   r   r   r   r   T  s    



z Scanner.scan_block_scalar_breaksc                 C   s   |dkrd}nd}| j j}g }| j  }| }| j   || || | |krz|| || || || qJ| j   | j  }td|d|||S )Nr\   TFr   )	r5   ra   r}   r   r   scan_flow_scalar_non_spacesscan_flow_scalar_spacesr   r   )r   r   doubler   r   r   quoter   r   r   r   r   d  s    




zScanner.scan_flow_scalarrL   r   	r   r   r\   /\       u    u    )r   r   btr  nvfrer   r\   r  r  N_LPr         )r  uUc           
   	   C   s  g }| j j}| j j}d}||dvr.|d7 }q|dkrP|| j | || | }|s|dkr|ddkr|d |d q|r|dks|s|dv r|| |  q|r|dkr|  | }|| jv r|| j|  |  n|| jv rp| j| }|  t|D ]6}||dvrtd	|t	d
|||d| j 
 qt| j |d}	|t|	 || nB|dv r|   || || ntd	|t	d|d| j 
 q|S qd S )Nr   u    
'"\ 	  rD   r[   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}r]   )r5   ra   r   r   r   ESCAPE_REPLACEMENTSESCAPE_CODESranger   r   r}   r   chrr   r   scan_flow_scalar_breaks)
r   r	  r   r   r   r   r   r^   kcoder   r   r   r    sd    








z#Scanner.scan_flow_scalar_non_spacesc           
      C   s   | j j}g }d}||dv r&|d7 }q| j |}| j | | }|dkrbtd|d| j  nT|dv r|  }| ||}	|dkr|| n|	s|d	 |	|	 n
|| |S )
Nr   r   rD   rL   while scanning a quoted scalarzfound unexpected end of streamr  r   r   )
r5   ra   r   r   r   r}   r   r*  r   r   )
r   r	  r   r   r   r   whitespacesr^   r   r   r   r   r   r    s2    


zScanner.scan_flow_scalar_spacesc                 C   s   g }| j j}| j j}| j d}|dks0|dkrP|dtv rPtd|d| j  | dv rb|  qP| dv r|||   q|S qd S )Nr   r   r   r-  z#found unexpected document separatorr   r  )	r5   ra   r   r   r   r   r}   r   r   )r   r	  r   r   r   r   r   r   r   r   r*    s     

zScanner.scan_flow_scalar_breaksc                 C   s   | j j}| j j}g }| j  }|}| jd }g }d}| dkrBql||}	|	dkrd||d tvrdnJ|	dkrx| jdkrxn6|	tv s| js|	dkr||d tv s| jr|	dv rq|d7 }qB| jr|	dkr||d dvr|| td	|d
| j  d|dkrqld| _	|
| || j | || | j  }| ||}|rl| dksl| js0| j j|k r0qlq0td|d||}
| jd urt| jdd}|d u r|r|d dkrtd|d ||}|
| nB|dur|jd }|D ](}	|	dkr| jdd| |d7 }q|
S )NrD   r   r   rV   rU   r   z,:?[]{}u     	
  ,[]{}zwhile scanning a plain scalarzfound unexpected ':'zGPlease check http://pyyaml.org/wiki/YAMLColonInFlowContext for details.Fr   Tr   r   )r5   ra   r   r}   r-   r   r8   r'   r   r/   r   r   r   scan_plain_spacesr   r   r   r    r!   r   r   r   r   r   )r   r   r   r   r   r   r-   spacesr   r^   r   r   rJ   r   r   r   r   r     s    


	
	







zScanner.scan_plainc                 C   s2  | j j}| j j}g }d}||dv r.|d7 }q| j |}| j | | }|dv r|  }	d| _| j d}
|
dks|
dkr|dtv rd S g }| d	v r| dkr|  q||   | j d}
|
dks|
dkr|dtv rd S q|	d
kr||	 n|s|d || n|r.|| |S )Nr   r   rD   r  Tr   r   r   r  r   )	r5   ra   r   r   r   r/   r   r   r   )r   r-   r   r   r   r   r   r.  r^   r   r   r   r   r   r   r/  ]  s>    






zScanner.scan_plain_spacesc                 C   s  | j j}| }|dkr:ttd|d|td|d| j  d}||}|dkrd|  krbd	ksn d
|  krxdksn d|  krdksn |dv r|d7 }||}qN|dkr| j | ttd|d|td|d| j  |d7 }| j |}| j | |S )NrX   r   r   zexpected '!', but found {ch!r}r]   rD   r   r   r   r   r   r   r   z-_)r5   ra   r   r   r}   r   r   )r   r   r   r   r^   r   r   r   r   r   r     s6    

J


zScanner.scan_tag_handlec                 C   s"  | j j}g }d}||}d|  kr,dkstn d|  krBdkstn d|  krXdkstn |dv st| jd	kr|d
kr|dkr|| j | | j | d}|| || n|d7 }||}q|dkr|| j | | j | d}|sttd|d|td|d| j 	 d
|S )Nr   r   r   r   r   r   r   z-;/?:@&=+$,_.!~*'()[]%r   r   rM   rD   zwhile parsing an {name!s}r   zexpected URI, but found {ch!r}r]   r   )r5   ra   r8   r   r   r   scan_uri_escapesr   r   r}   r   )r   r   r   r   r   r   r^   r   r   r   r     sR    


zScanner.scan_tag_uric           
   
   C   s   | j j}| j j}g }| j  }| dkr|  tdD ]8}||dvr6ttd|d|td||d| j  q6|t| j 	dd |d qzt
|d	}W n> ty }	 z&ttd|d|t|	|W Y d }	~	n
d }	~	0 0 |S )
NrM   r   r$  r   r   zLexpected URI escape sequence of 2 hexdecimal numbers, but found {srp_call!r}r   r%  zutf-8)r5   ra   r   r}   r(  r   r   r   r   r   bytesdecodeUnicodeDecodeErrorstr)
r   r   r   r   r   Z
code_bytesr   r+  r   excr   r   r   r1    s4    




zScanner.scan_uri_escapesc                 C   sX   | j  }|dv r>| j ddkr0| j d n
| j   dS |dv rT| j   |S dS )N   
r   
r        r   r5   ra   r   r   )r   r^   r   r   r   r     s    



zScanner.scan_line_break)N)F)Rr   r   r   r   propertyr'   r"   r5   r8   r@   rB   rF   r:   rK   r;   rH   rG   r   r   r`   r   r+   rb   rd   rf   rh   r   ri   rj   r   rk   rl   r   rm   ro   rq   rs   rt   ru   rv   rw   rx   r   ry   rz   r   r|   rc   re   rg   rn   rp   rr   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   r1  r   r   r   r   r   r	   G   s   

6

p	=					%'/2
|3:Y&!$r	   c                   @   sP   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S )r
   c                 G   sT   |   r|   q |   t| jdkrP|s0dS |D ]}t| jd |r4 dS q4dS r9   )r:   r;   _gather_commentsr$   r*   r<   r=   r   r   r   r@     s    
zRoundTripScanner.check_tokenc                 C   s6   |   r|   q |   t| jdkr2| jd S d S rA   )r:   r;   r<  r$   r*   r&   r   r   r   rB     s    

zRoundTripScanner.peek_tokenc                 C   s   g }| j s|S t| j d trB| j d}|  jd7  _|| |  r|   | j s\|S t| j d trB|  jd7  _| j d}|| qBt|dkr| j d 	| | j
st| j dk r|   dS )zCcombine multiple comment lines and assign to next non-comment-tokenr   rD   r   N)r*   r<   r   rE   r,   r   r:   r;   r$   r   r)   )r   r   rJ   r   r   r   r<    s&    
z!RoundTripScanner._gather_commentsc                 C   sL  |   r|   q |   t| jdkrHt| jdkrt| jd tttt	frt| jd t
r| jd jj| jd jjkr|  jd7  _| jd}|   t| jdkrt| jd t
r|  jd7  _| jd}|jd|jj  |j |_|   q| jd | nt| jdkr.t| jd tr.t| jd t
r.| jd jj| jd jjkr.|  jd7  _| jd}d|jj| jd jj  d|jj  |j |_| jd | |   t| jdkr.t| jd t
r.|  jd7  _| jd}|jd|jj  |j |_|   q|  jd7  _| jdS d S )Nr   rD   r   r   )r:   r;   r<  r$   r*   r<   r   r   r   r   r   r   r   r   r,   rE   r   r   r   )r   cc1r   r   r   rF   0  sd    

	"

"zRoundTripScanner.get_tokenc                 C   s@   |\}}}|r(|d dkr(|d d }q
| j t||| d S )Nr(   r   )r*   r   r   )r   rJ   r   r   r   r   r   r   rK   f  s    
zRoundTripScanner.fetch_commentc                 C   s  | j j}| j j}| j jdkr,| dkr,|  d}|s~| dkrH|  q6| }|dkr| j  }|}|  |tvr| }|dkr|d7 }q||7 }|  qj|  }t|dkr||7 }|  }q| j  }| jsd| _	|||fS |  d	krx| j  }| jsd| _	| }|dkr|| j  }d	}|rB| jdd
}||7 }q$| dkrb|
ddd d }| j  }|||fS q0d}q0d S )Nr   r   Fr   r   rL   r   Tr   
empty_linerD   )r5   ra   r   r   r}   r   r   r$   r'   r/   rsplit)r   r   r   r   r^   r   rJ   r   r   r   r   r_   q  sZ    








z#RoundTripScanner.scan_to_next_tokenFc                 C   sr   | j  }|dv r>| j ddkr0| j d n
| j   dS |dv rT| j   |S |rn|dv rn| j   |S dS )Nr7  r   r8  r   r9  z	 r   r:  )r   r@  r^   r   r   r   r     s    




z RoundTripScanner.scan_line_breakTc                 C   s   t j| ||dS )N)r   )r	   r   )r   r   r   r   r   r   r     s    z"RoundTripScanner.scan_block_scalarN)F)T)r   r   r   r@   rB   r<  rF   rK   r_   r   r   r   r   r   r   r
     s   
6I
r
   c                   @   sB   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ulinec                 C   sN   || _ || _|| _d| _tt d d }|j| _|j| _	d | _
d | _d S )Nr   r   r   )r   r   r   rC  inspectgetframeinfostackrD  linenorE  rF  rG  )r   r   r   r   infor   r   r   r     s    zCommentBase.__init__r  c                 C   s0   || _ tt d d }|j| _|j| _d S )NrD   r   )rC  rH  rI  rJ  rD  rF  rK  rG  )r   r  rL  r   r   r   set_used  s    zCommentBase.set_usedc                 C   s
   d| _ d S )NrY   )rC  r&   r   r   r   set_assigned  s    zCommentBase.set_assignedc                 C   s   t d| jdS )Nz{value}r   r   r   r&   r   r   r   __str__  s    zCommentBase.__str__c                 C   s   t d| jdS )Nz	{value!r}rO  rP  r&   r   r   r   __repr__  s    zCommentBase.__repr__c                 C   s2   t d| j| j| j| jd | j| j| j| j| j	d
S )NzP{name}{used} {line:2}:{column:<2} "{value:40s} {function}:{fline} {ufun}:{uline}r\   )	r   r   r   r   rC  rD  rE  rF  rG  )
r   r   r   r   r   rC  rD  rE  rF  rG  r&   r   r   r   rL    s    zCommentBase.infoN)r  )
r   r   r   	__slots__r   rM  rN  rQ  rR  rL  r   r   r   r   rB    s   
rB  c                       s    e Zd ZdZ fddZ  ZS )
EOLCommentZEOLCc                    s   t  ||| d S r   superr   r   r   r   r   	__class__r   r   r     s    zEOLComment.__init__r   r   r   r   r   __classcell__r   r   rX  r   rT    s   rT  c                       s    e Zd ZdZ fddZ  ZS )FullLineCommentZFULLc                    s   t  ||| d S r   rU  rW  rX  r   r   r     s    zFullLineComment.__init__rZ  r   r   rX  r   r\    s   r\  c                       s    e Zd ZdZ fddZ  ZS )BlankLineCommentZBLNKc                    s   t  ||| d S r   rU  rW  rX  r   r   r   %  s    zBlankLineComment.__init__rZ  r   r   rX  r   r]  "  s   r]  c                   @   sv   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 )ScannedCommentsc                 C   s   i | _ g | _d S r   )r   unusedr&   r   r   r   r   +  s    zScannedComments.__init__c                 C   sZ   | ddkr |d dks,J nd|vs,J t|d d || | j|< }| j| |S Nr   rD   r(   )countrT  r   r_  r   r   rJ   r   r   retvalr   r   r   add_eol_comment0  s    zScannedComments.add_eol_commentc                 C   sZ   | ddkr|d dksJ || jvs,J t|d d || | j|< }| j| |S r`  )ra  r   r]  r_  r   rb  r   r   r   r   ;  s
    zScannedComments.add_blank_linec                 C   sL   | ddkr|d dksJ t|d d || | j|< }| j| |S r`  )ra  r\  r   r_  r   rb  r   r   r   add_full_line_commentD  s    z%ScannedComments.add_full_line_commentc                 C   s
   | j | S r   )r   )r   idxr   r   r   __getitem__O  s    zScannedComments.__getitem__c                 C   s"   dd dd | j D  d S )NzParsedComments:
  z
  c                 s   s$   | ]\}}t d || dV  qdS )z{lineno:2} {x}rK  r  N)r   rL  ).0rK  r  r   r   r   	<genexpr>X  s   z*ScannedComments.__str__.<locals>.<genexpr>r   r   r   itemsr&   r   r   r   rQ  S  s    zScannedComments.__str__c                 C   s(   t | j d \}}td|| dS )Nr(   z{lineno:2} {x}
rh  )r   r   rl  r   rL  )r   rK  r  r   r   r   last`  s    zScannedComments.lastc                 C   s   t | jdkS rA   )r$   r_  r&   r   r   r   any_unprocessede  s    zScannedComments.any_unprocessedFc                 c   s   t | jdkr~|r| jdn| jd }tt d d }td|| j| j|j	|j
 || j| fV  |r | j|   q d S )Nr   rD   using)r$   r_  rE   rH  rI  rJ  r   r   r   rD  rK  rM  )r   ZusefirstrL  r   r   r   unprocessedn  s    zScannedComments.unprocessedc                 C   s   |j j}tt d d }td|| j|j|j d}| jr| jd |k rd}| j	d}td| | j
|   || q8|S )NrD   r   
assign_preFTzassign_pre < )r   r   rH  rI  rJ  r   r_  rD  rK  rE   r   rM  Zadd_comment_prer   r   Z
token_linerL  Zgobbledrp  r   r   r   rr  x  s    
zScannedComments.assign_prec                 C   s,  z| j d }W n ty"   Y d S 0 t| j| ts8d S d}||  jj|ks^t||  trh|d7 }q<td| t	||krt||  t
rt||d   t
rd S zt||  t
r.t||d   tr.z>| j d}| j|   td||t ||  |t W n ty&   tY n0 W d S W n tyL   td Y n0 zt||  t
rt||d   ttfrz0| j d}| j|   ||  |t W n ty   tY n0 W d S W n ty   td Y n0 |D ]}td| qtdt||   dd l}|d d S )	Nr   rD   Zidx1z>>>>>aZIndexError1ZIndexError2ztt-znot implemented EOL)r_  r   r<   r   rT  r   r   r   r   r$   r   r   rE   rM  KEYCMNTZadd_comment_eolrI   r   	VALUECMNTtypesysexit)r   r*   Zcomment_linerf  Zeol_idxr  rw  r   r   r   
assign_eol  sj    







zScannedComments.assign_eolc                 C   s   |j j}tt d d }td|| j|j|j d}| jr| jd |k rd}| j	d}td| | j
|   || q8|S )NrD   r   assign_postFTzassign_post < )r   r   rH  rI  rJ  r   r_  rD  rK  rE   r   rM  Zadd_comment_postrs  r   r   r   rz    s    
zScannedComments.assign_postc                 C   s   d dd | j D S )Nr   c                 s   s.   | ]&\}}|j d krtd|| dV  qdS )r   z  {ind:2} {x}
)indr  N)rC  r   rL  )ri  r{  r  r   r   r   rj    s   
z2ScannedComments.str_unprocessed.<locals>.<genexpr>rk  r&   r   r   r   str_unprocessed  s
    zScannedComments.str_unprocessedN)F)r   r   r   r   rd  r   re  rg  rQ  rm  rn  rq  rr  ry  rz  r|  r   r   r   r   r^  *  s   		

8r^  c                       sD   e Zd Z fddZdd Zdd Zdd Zd	d
 Zdd Z  Z	S )RoundTripScannerSCc                    s*   t  j|i | | jd us J d | _d S r   )rV  r   r    r   )r   argr   rX  r   r   r     s    zRoundTripScannerSC.__init__c                 C   st   |   r|   q t| jdkrpt| jd trD| j| jd  n| j| jd  |  j	d7  _	| j
dS d S rC   )r:   r;   r$   r*   r<   r   r   rz  rr  r,   rE   r&   r   r   r   rF     s    
zRoundTripScannerSC.get_tokenc                 C   s   | j d u rt  | j_| _ | jr$dS t| jdkr6dS |   |  | j	krPdS t| jdk rbdS | jd j
j| jd j
jkrdS tdt| j | jD ]}t| qt| j   | j | jd  | j | j dS )NFr   Tr   r(   z-x--)r   r^  r    Zparsed_commentsr)   r$   r*   rG   rH   r,   r   r   r   r|  rr  ry  )r   r  r   r   r   r:     s(    


z#RoundTripScannerSC.need_more_tokensc           	      C   st  | j j}| j j}| j jdkr,| dkr,|  | j  }d}|sp| dkrR|  q@| }|dkr| j  }|}|  |tvr| }|dkr|d7 }q||7 }|  qt|jdkr| j||j|j	 n| j
||j|j	 d}|   | jsd	| _d S t|  rj| jsd	| _|   d S |r:| jd	d
}||7 }q| dkrZ|ddd d }| j  }d S q:d	}q:d S )Nr   r   Fr   r   rL   r   r   Tr?  rD   )r5   ra   r   r   r}   r   r   r   re  r   rd   scan_empty_or_full_line_commentsr'   r/   r   r   rA  )	r   r   r   r   r   r^   Zcomment_start_markrJ   r  r   r   r   r_   	  sf    





    
z%RoundTripScannerSC.scan_to_next_tokenc                 C   s  | j  }|jdksJ d}d }d }| j  }|dv r| j ddkrT| j d n
| j   |d ur|d7 }| j||j|j d }n|d7 }| j	||j|j d}| j  }| j  }q.|d u r|dv r||7 }q|dkr| j  }d}qqn||7 }| j   | j  }q.d S )	Nr   r   r  r   r8  r   r   r   )
r5   r}   r   ra   r   r   r   re  r   r   )r   ZblmarkZblanksrJ   r   r^   r   r   r   r  H	  s<    







z3RoundTripScannerSC.scan_empty_or_full_line_commentsc                 C   s   | j j}| j j}d}d }| dkr4|| 7 }|  q| dkrpd}| j  }| tvrh|| 7 }|  qL|d7 }| }|tvrtd|td|d| j  |d ur| j||j	|j
 |   d S )Nr   r   r   r   r  r   r]   )r5   ra   r   r}   r   r   r   r   rd  r   r   r   )r   r   r   r   r   rJ   r   r^   r   r   r   r   p	  s4    






z1RoundTripScannerSC.scan_block_scalar_ignored_line)
r   r   r   r   rF   r:   r_   r  r   r[  r   r   rX  r   r}    s   @(r}  )"rH  Zruamel.yaml.errorr   r   Zruamel.yaml.tokensZruamel.yaml.compatr   r   r   r   AnyDictOptionalListUnionTextZVersionType__all__r   r   r   r   r   r   r	   r
   ru  rt  rB  rT  r\  r]  r^  r}  r   r   r   r   <module>   sF                D ]2 .