
    Ber                         d dl mZ d dl d dl d dlmZmZmZ d dlmZ d dl	m
Z
mZmZ d dlmZmZmZ 	 g dZd Z G d	 d
e      Z G d d      Z G d de      Z G d de      Zy)    )MarkedYAMLError)*)ScannerRoundTripScannerScannerError)BlankLineComment)C_PREC_POSTC_SPLIT_ON_FIRST_BLANK)_Fnprintnprintf)ParserRoundTripParserParserErrorc                      t        | i |S N)r   )argskws     2lib/python3.12/site-packages/ruamel/yaml/parser.pyxprintfr   [   s    DB    c                       e Zd Zy)r   N)__name__
__module____qualname__ r   r   r   r   a   s    r   r   c                      e Zd ZdddZd Zd Zd Zed        Zed        Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd)dZd Zd Zd Zd Zd Zd Zd Zd*dZd Z d  Z!d! Z"d" Z#d*d#Z$d$ Z%d% Z&d+d'Z'd,d(Z(y&)-r   !ztag:yaml.org,2002:)r   !!c                     || _         | j                   (t        | j                   dd       | | j                   _        | j                          y )N_parser)loadergetattrr"   reset_parser)selfr#   s     r   __init__zParser.__init__k   s=    ;;"wt{{It'L'T"&DKKr   c                 l    d x| _         | _        i | _        g | _        g | _        | j
                  | _        y r   )current_event
last_eventtag_handlesstatesmarksparse_stream_startstater&   s    r   r%   zParser.reset_parserr   s6     043T_
,,
r   c                 $    | j                          y r   )r%   r0   s    r   disposezParser.dispose{   s    r   c                     t        | j                  d      r| j                  j                  S | j                  j                  S Ntyp)hasattrr#   scanner_scannerr0   s    r   r7   zParser.scanner   s2     4;;&;;&&&{{###r   c                     t        | j                  d      r| j                  j                  S | j                  j                  S r4   )r6   r#   resolver	_resolverr0   s    r   r:   zParser.resolver   s2     4;;&;;'''{{$$$r   c                     | j                   !| j                  r| j                         | _         | j                   "|sy|D ]  }t        | j                   |      s y y)NTF)r)   r/   
isinstance)r&   choiceschoices      r   check_eventzParser.check_event   s^     %zz%)ZZ\")!  d00&9  r   c                 t    | j                   !| j                  r| j                         | _         | j                   S r   )r)   r/   r0   s    r   
peek_eventzParser.peek_event   s1     %zz%)ZZ\"!!!r   c                    | j                   !| j                  r| j                         | _         t        dt        | j                         | j	                         j
                  j                         | j                   x| _        }d | _         |S )N	get_event)r)   r/   r   reprrB   
start_markliner*   )r&   values     r   rD   zParser.get_event   sp     %zz%)ZZ\" 	T$"4"45t7H7S7S7X7XY"&"4"44%!r   c                     | j                   j                         }| j                  |       t        |j                  |j
                  |j                        }| j                  | _        |S )N)encoding)	r7   	get_tokenmove_token_commentStreamStartEventrF   end_markrJ   parse_implicit_document_startr/   r&   tokenevents      r   r.   zParser.parse_stream_start   sT     &&(& !1!15>>ENN[ 77
r   c                 r   | j                   j                  t        t        t              s| j
                  | _        | j                   j                         }|j                  x}}t        ||d      }| j                  j                  | j                         | j                  | _        |S | j                         S )NFexplicit)r7   check_tokenDirectiveTokenDocumentStartTokenStreamEndTokenDEFAULT_TAGSr+   
peek_tokenrF   DocumentStartEventr,   appendparse_document_endparse_block_noder/   parse_document_start)r&   rQ   rF   rN   rR   s        r   rO   z$Parser.parse_implicit_document_start   s     ||''8JN[#00DLL++-E$)$4$44J&z8eLE KKt667..DJL ,,..r   c           	         | j                   j                  t              r:| j                   j                          | j                   j                  t              r:| j                   j                  t              s| j                         \  }}| j                   j                  t              s]t        d d t        d| j                   j                         j                        | j                   j                         j                        | j                   j                         }|j                  }|j                  }t        ||d|||j                        }| j                  j!                  | j"                         | j$                  | _        |S | j                   j                         }t)        |j                  |j                  |j                        }| j                  rJ | j*                  rJ d | _        |S )Nz-expected '<document start>', but found {pt!r})ptT)rU   versiontagscommentre   )r7   rV   DocumentEndTokenrK   rY   process_directivesrX   r   r   r[   idrF   rN   r\   re   r,   r]   r^   parse_document_contentr/   StreamEndEventr-   )r&   rc   rd   rQ   rF   rN   rR   s          r   r`   zParser.parse_document_start   s    ll&&'78LL""$ ll&&'78 ||''7 335MGT<<++,>?!G<<22477 LL++-88  LL**,E))J~~H 'HtW4E KKt66744DJ  LL**,E"5#3#3U^^U]][E{{"zz!DJr   c                 ~   | j                   j                         }|j                  x}}d}| j                   j                  t              r(| j                   j                         }|j                  }d}t        |||      }| j                  j                  dk(  r| j                  | _        |S | j                  | _        |S )NFTrT      rn   )r7   r[   rF   rV   rg   rK   rN   DocumentEndEventr:   processing_versionr`   r/   rO   )r&   rQ   rF   rN   rU   rR   s         r   r^   zParser.parse_document_end   s     '') % 0 00
X<<##$45LL**,E~~HH XI ==++v522DJ  ;;DJr   c                 &   | j                   j                  t        t        t        t
              rT| j                  | j                   j                         j                        }| j                  j                         | _        |S | j                         S r   )r7   rV   rW   rX   rg   rY   process_empty_scalarr[   rF   r,   popr/   r_   )r&   rR   s     r   rj   zParser.parse_document_content  sj    <<##.0@.
 --dll.E.E.G.R.RSE*DJL((**r   c                 P   d }i | _         | j                  j                  t              r| j                  j	                         }|j
                  dk(  rS|t        d d d|j                        |j                  \  }}|dk7  rt        d d d|j                        |j                  }n^|j
                  dk(  rO|j                  \  }}|| j                   v r#t        d d t        d|      |j                        || j                   |<   | j                  j                  t              rt        | j                         r|| j                   j                         f}n|d f}| j                  t        | j                  d      ro|| j                  _        | j                  j                  i | j                  _        | j                   D ](  }| j                   |   | j                  j                  |<   * | j                   D ]-  }	|	| j                   vs| j                   |	   | j                   |	<   / |S )	NYAMLzfound duplicate YAML directivern   z:found incompatible YAML document (version 1.* is required)TAGzduplicate tag handle {handle!r}handlerd   )r+   r7   rV   rW   rK   namer   rF   rH   r   boolcopyr#   r6   rc   rd   rZ   )
r&   yaml_versionrQ   majorminorrx   prefixrH   kkeys
             r   rh   zParser.process_directives  s   ll&&~6LL**,EzzV#+%d$DeFVFV   %{{uA:%T((	   %{{u$!&T---%<VL((	  ,2  (3 ll&&~64   ! $"2"2"7"7"99E $&E;;"wt{{F'C".DKK{{'#% %% :&*&6&6q&9  #:$$ 	?C$***(,(9(9#(>  %	? r   c                 &    | j                  d      S )NT)block
parse_noder0   s    r   r_   zParser.parse_block_nodeV  s    T**r   c                 "    | j                         S r   r   r0   s    r   parse_flow_nodezParser.parse_flow_nodeZ  s      r   c                 (    | j                  dd      S )NT)r   indentless_sequencer   r0   s    r   'parse_block_node_or_indentless_sequencez.Parser.parse_block_node_or_indentless_sequence^  s    TtDDr   c                 &    | j                   |   |z   S r   )r+   r&   rx   suffixs      r   transform_tagzParser.transform_tagb  s    '&00r   c           
         | j                   j                  t              rf| j                   j                         }t	        |j
                  |j                  |j                        }| j                  j                         | _
        |S d }d }d x}x}}	| j                   j                  t              r| j                   j                         }| j                  |       |j                  }|j                  }|j
                  }| j                   j                  t              r| j                   j                         }|j                  }	|j                  }|j
                  }n| j                   j                  t              r| j                   j                         }|j                  x}}	|j                  }|j
                  }| j                   j                  t              r@| j                   j                         }|j                  x}}	|j                  }|j
                  }|C|\  }
}|
:|
| j                  vrt        d|t!        d|
      |	      | j#                  |
|      }n|}|&| j                   j%                         j                  x}}d }|d u xs |dk(  }|r| j                   j                  t&              rd }| j                   j%                         }| j(                  rR| j(                  j*                  <|j,                  rT|j,                  d   rE|j,                  d   g g}d |j,                  d<   n$| j(                  r|j,                  r|j,                  }| j                   j%                         j                  }t/        |||||d|      }| j0                  | _
        |S | j                   j                  t2              r| j                   j                         }|j                  }|j4                  r||dk(  rd}n|d	}nd
}t7        ||||j
                  |||j8                  |j,                        }| j                  j                         | _
        |S | j                   j                  t:              rU| j                   j%                         }|j                  }t/        |||||d|j,                        }| j<                  | _
        |S | j                   j                  t>              rU| j                   j%                         }|j                  }tA        |||||d|j,                        }| jB                  | _
        |S |r| j                   j                  tD              r| j                   j%                         j                  }| j                   j%                         }|j,                  }||d   |jG                         }t/        |||||d|      }| jH                  | _
        |S |r| j                   j                  tJ              rm| j                   j%                         j                  }| j                   j%                         j,                  }tA        |||||d|      }| jL                  | _
        |S ||3t7        |||dfd||      }| j                  j                         | _
        |S |rd}nd}| j                   j%                         }t        t!        d|      |t!        d|jN                        |j                        )Nzwhile parsing a nodez%found undefined tag handle {handle!r}rw   r   r   F)
flow_stylere   TF)FTFF)stylere   Trn    r   flowzwhile parsing a {node!s} node)nodez1expected the node content, but found {token_id!r}token_id)(r7   rV   
AliasTokenrK   
AliasEventrH   rF   rN   r,   rs   r/   AnchorTokenrL   TagTokenr+   r   r   r   r[   BlockEntryTokenr#   comment_handlingre   SequenceStartEventparse_indentless_sequence_entryScalarTokenplainScalarEventr   FlowSequenceStartTokenparse_flow_sequence_first_entryFlowMappingStartTokenMappingStartEventparse_flow_mapping_first_keyBlockSequenceStartTokensplit_old_comment parse_block_sequence_first_entryBlockMappingStartTokenparse_block_mapping_first_keyri   )r&   r   r   rQ   rR   anchortagrF   rN   tag_markrx   r   implicitre   rb   r   s                   r   r   zParser.parse_nodef  s   <<##J/LL**,Eu{{E,<,<ennME*DJL+//
/X<<##K0LL**,E##E*))J~~H[[F||''1..0 ++ >>kk\\%%h/LL**,E$)$4$44J~~H++C||''4..0(-(8(88
X >>? NFF!!1!11%."B6R 	  ((8 $(LL$;$;$=$H$HHJ$;,#*4<<#;#;O#LG((*B{{t{{;;C::"**Q-!zz!}b1G$(BJJqM:: jjG||..099H&Xz8W^E ==DJL<<##K0LL**,E~~Hs
(()kk	E *DJB A \\%%&<=((*B{{H&

E ==DJh g \\%%&;<((*B{{H%

E ::DJN M t||//0GH||..0;;H ((*BjjG'!*"4..0&Xz8W^E >>DJ2 1 t||//0FG||..0;;Hll--/77G%Xz8W^E ;;DJ$ # 3?  h->JPXYE*DJ  LL++-E2>FQVQYQYZ  	 r   c                     | j                   j                         }| j                  j                  |j                         | j                         S r   )r7   rK   r-   r]   rF   parse_block_sequence_entryr&   rQ   s     r   r   z'Parser.parse_block_sequence_first_entry  s=    &&( 	

%**+..00r   c                    | j                   j                  t              r| j                   j                         }| j	                  |       | j                   j                  t        t
              s5| j                  j                  | j                         | j                         S | j                  | _
        | j                  |j                        S | j                   j                  t
              sT| j                   j                         }t        d| j                  d   t!        d|j"                        |j$                        | j                   j                         }t'        |j$                  |j                  |j(                        }| j                  j+                         | _
        | j                  j+                          |S )Nz while parsing a block collection,expected <block end>, but found {token_id!r}r   rf   )r7   rV   r   rK   rL   BlockEndTokenr,   r]   r   r_   r/   rr   rN   r[   r   r-   r   ri   rF   SequenceEndEventre   rs   rP   s      r   r   z!Parser.parse_block_sequence_entry  s=   <<##O4LL**,E##E*<<++O]K""4#B#BC,,..!<<
00@@||''6LL++-E2

2AEHHU  	  &&( !1!15>>5==Y[[__&


r   c                 8   | j                   j                  t              r| j                   j                         }| j	                  |       | j                   j                  t        t
        t        t              s5| j                  j                  | j                         | j                         S | j                  | _        | j                  |j                        S | j                   j                         }d }| j                   r/| j                   j"                  |j$                  }|j&                  }n<| j(                  j                  }| j+                  |j$                  |j,                        }t/        |||      }| j                  j1                         | _        |S )Nrf   )r7   rV   r   rK   rL   KeyToken
ValueTokenr   r,   r]   r   r_   r/   rr   rN   r[   r#   r   re   rF   r*   distribute_commentrG   r   rs   )r&   rQ   crF   rR   s        r   r   z&Parser.parse_indentless_sequence_entry0  s)   <<##O4LL**,E##E*<<++:} ""4#G#GH,,..!AA
00@@'');;4;;77?A))J11J''zGA ZC[[__&
r   c                     | j                   j                         }| j                  j                  |j                         | j                         S r   )r7   rK   r-   r]   rF   parse_block_mapping_keyr   s     r   r   z$Parser.parse_block_mapping_first_keyN  s;    &&(

%**+++--r   c                    | j                   j                  t              r| j                   j                         }| j	                  |       | j                   j                  t        t
        t              s5| j                  j                  | j                         | j                         S | j                  | _        | j                  |j                        S | j                  j                  dkD  rc| j                   j                  t
              rD| j                  | _        | j                  | j                   j!                         j"                        S | j                   j                  t              sT| j                   j!                         }t%        d| j&                  d   t)        d|j*                        |j"                        | j                   j                         }| j	                  |       t-        |j"                  |j                  |j.                        }| j                  j1                         | _        | j&                  j1                          |S )Nrm   zwhile parsing a block mappingr   r   r   rf   )r7   rV   r   rK   rL   r   r   r,   r]   parse_block_mapping_valuer   r/   rr   rN   r:   rp   r[   rF   r   r-   r   ri   MappingEndEventre   rs   rP   s      r   r   zParser.parse_block_mapping_keyT  s   <<##H-LL**,E##E*<<++Hj-P""4#A#ABCCEE!;;
00@@==++f49Q9QR\9]77DJ,,T\\-D-D-F-Q-QRR||''6LL++-E/

2AEHHU  	  &&(& 0 0%..%--X[[__&


r   c                 r   | j                   j                  t              rR| j                   j                         }| j                   j                  t              r| j	                  |       n2| j                   j                  t
              s| j	                  |d       | j                   j                  t
        t        t              s5| j                  j                  | j                         | j                         S | j                  | _        |j                  }|;| j                   j                         }|j                  }|rd |d   g|_        |d   d g}| j                  |j                   |      S | j                  | _        | j                   j                         }| j                  |j"                        S )NTemptyrn   r   rf   )r7   rV   r   rK   rL   r   r   r,   r]   r   r   r/   re   r[   _commentrr   rN   rF   )r&   rQ   re   s      r   r   z Parser.parse_block_mapping_valueq  sO   <<##J/LL**,E||''
3''.||//9++E+><<++Hj-P""4#?#?@CCEE!99
--? LL335E#mmG*.
);#*1:t"4000QQ55DJLL++-E,,U-=-=>>r   c                     | j                   j                         }| j                  j                  |j                         | j                  d      S NT)first)r7   rK   r-   r]   rF   parse_flow_sequence_entryr   s     r   r   z&Parser.parse_flow_sequence_first_entry  s@    &&(

%**+--D-99r   c                    | j                   j                  t              sU|s| j                   j                  t              r| j                   j	                          nT| j                   j                         }t        d| j                  d   t        d|j                        |j                        | j                   j                  t              rR| j                   j                         }t        d d d|j                  |j                  d      }| j                  | _        |S | j                   j                  t              s5| j                   j#                  | j$                         | j'                         S | j                   j	                         }t)        |j                  |j                  |j*                        }| j                   j-                         | _        | j                  j-                          |S )Nzwhile parsing a flow sequencer   z)expected ',' or ']', but got {token_id!r}r   T)r   rf   )r7   rV   FlowSequenceEndTokenFlowEntryTokenrK   r[   r   r-   r   ri   rF   r   r   rN   %parse_flow_sequence_entry_mapping_keyr/   r,   r]   r   r   r   re   rs   r&   r   rQ   rR   s       r   r   z Parser.parse_flow_sequence_entry  sk   ||''(<=<<++N;LL**, LL335E%7

2FQVQYQYZ((	  ||''1//1)$e&6&6SW "GG
\\--.BC""4#A#AB++--&&( !1!15>>5==Y[[__&


r   c                 J   | j                   j                         }| j                   j                  t        t        t
              s5| j                  j                  | j                         | j                         S | j                  | _
        | j                  |j                        S r   )r7   rK   rV   r   r   r   r,   r]   'parse_flow_sequence_entry_mapping_valuer   r/   rr   rN   r   s     r   r   z,Parser.parse_flow_sequence_entry_mapping_key  st    &&(||''
NDXYKKtKKL''))EEDJ,,U^^<<r   c                 
   | j                   j                  t              r| j                   j                         }| j                   j                  t        t
              s5| j                  j                  | j                         | j                         S | j                  | _
        | j                  |j                        S | j                  | _
        | j                   j                         }| j                  |j                        S r   )r7   rV   r   rK   r   r   r,   r]   %parse_flow_sequence_entry_mapping_endr   r/   rr   rN   r[   rF   r   s     r   r   z.Parser.parse_flow_sequence_entry_mapping_value  s    <<##J/LL**,E<<++N<PQ""4#M#MN++--!GG
00@@CCDJLL++-E,,U-=-=>>r   c                     | j                   | _        | j                  j                         }t	        |j
                  |j
                        S r   )r   r/   r7   r[   r   rF   r   s     r   r   z,Parser.parse_flow_sequence_entry_mapping_end  s:    33
'')u//1A1ABBr   c                     | j                   j                         }| j                  j                  |j                         | j                  d      S r   )r7   rK   r-   r]   rF   parse_flow_mapping_keyr   s     r   r   z#Parser.parse_flow_mapping_first_key  s@    &&(

%**+***66r   c                    | j                   j                  t              s#|s| j                   j                  t              r| j                   j	                          nT| j                   j                         }t        d| j                  d   t        d|j                        |j                        | j                   j                  t              r| j                   j	                         }| j                   j                  t        t        t              s5| j                  j                  | j                         | j!                         S | j                  | _        | j%                  |j&                        S | j(                  j*                  dkD  rc| j                   j                  t              rD| j                  | _        | j%                  | j                   j                         j&                        S | j                   j                  t              s5| j                  j                  | j,                         | j!                         S | j                   j	                         }t/        |j                  |j&                  |j0                        }| j                  j3                         | _        | j                  j3                          |S )Nzwhile parsing a flow mappingr   z*expected ',' or '}}', but got {token_id!r}r   rm   rf   )r7   rV   FlowMappingEndTokenr   rK   r[   r   r-   r   ri   rF   r   r   r,   r]   parse_flow_mapping_valuer   r/   rr   rN   r:   rp   parse_flow_mapping_empty_valuer   re   rs   r   s       r   r   zParser.parse_flow_mapping_key  s   ||''(;<<<++N;LL**, LL335E%6

2GRWRZRZ[((	  ||''1..0||//0C KK&&t'D'DE//11!%!>!>DJ44U^^DD11F:t||?W?W@ "::
001H1H1J1S1STT\\--.AB""4#F#FG++--&&( 0 0%..%--X[[__&


r   c                 
   | j                   j                  t              r| j                   j                         }| j                   j                  t        t
              s5| j                  j                  | j                         | j                         S | j                  | _
        | j                  |j                        S | j                  | _
        | j                   j                         }| j                  |j                        S r   )r7   rV   r   rK   r   r   r,   r]   r   r   r/   rr   rN   r[   rF   r   s     r   r   zParser.parse_flow_mapping_value  s    <<##J/LL**,E<<++N<OP""4#>#>?++--!88
00@@44DJLL++-E,,U-=-=>>r   c                     | j                   | _        | j                  | j                  j	                         j
                        S r   )r   r/   rr   r7   r[   rF   r0   s    r   r   z%Parser.parse_flow_mapping_empty_value  s3    00
(()@)@)B)M)MNNr   Nc           	      &    t        d d dd|||      S )Nr   r   rf   )r   )r&   markre   s      r   rr   zParser.process_empty_scalar#  s    4}b$gVVr   c                      y r   r   r&   rQ   ntr   s       r   rL   zParser.move_token_comment'  s    r   r   )Fr   NF))r   r   r   rZ   r'   r%   r2   propertyr7   r:   r@   rB   rD   r.   rO   r`   r^   rj   rh   r_   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rr   rL   r   r   r   r   r   e   s     $89L- $ $ % %"$
/$%N(	++z+!E1]D1@<.:?P:>=?C7$L?O
Wr   r   c                       e Zd ZdZd ZddZy)r   ?roundtrip is a safe loader, that wants to see the unmangled tagc                 L    |dk(  r|dv rt         j                  | ||      S ||z   S )Nr    )nullrz   intfloatbinary	timestampomappairssetstrseqmap)r   r   r   s      r   r   zRoundTripParser.transform_tag/  s8     T>f )
 
 ''ff==r   Nc                 b    |j                  || j                  j                         n||       y Nr   )move_old_commentr7   r[   r   s       r   rL   z"RoundTripParser.move_token_commentC  )    BJt||668BV[\r   r   )r   r   r   __doc__r   rL   r   r   r   r   r   ,  s    I(]r   r   c                       e Zd ZdZddZd Zy)RoundTripParserSCr   Nc                 b    |j                  || j                  j                         n||       y r   )move_new_commentr7   r[   r   s       r   rL   z$RoundTripParserSC.move_token_commentN  r   r   c                    |y |d   sy |d   d   |dz   k7  rt        d||       |d   d   |dz   k(  sJ | j                  j                  dz  }|t        k(  ry |t        k(  rd d |d   g}d |d<   |S t        |d         D ].  \  }}t        | j                  j                  |   t              s. n y |dk(  ry |t        k(  rd d |d   d | g}|d   |d  |d<   |S t        )Nr   rn   z>>>dcxxx   )r   r#   r   r
   r	   	enumerater=   r7   commentsr   r   NotImplementedError)r&   re   rG   r5   r   _idxcmntidxs          r   r   z$RoundTripParserSC.distribute_commentR  s    ?qz1:a=D1H$J.qz!}q(( kk**T1&=%<tWQZ(AGAJH&wqz2 	MD'$,,//8:JK	
 19((tWQZ./A DE*GAJH!!r   r   )r   r   r   r   rL   r   r   r   r   r   r   H  s    I
]""r   r   N)ruamel.yaml.errorr   ruamel.yaml.tokensruamel.yaml.eventsruamel.yaml.scannerr   r   r   r   ruamel.yaml.commentsr	   r
   r   ruamel.yaml.compatr   r   r   typingAnyDictOptionalList__all__r   r   r   r   r   r   r   r   <module>r     sh   Z .     G G 0 F F 2 2 7		/ 	D DN]f ]8," ,"r   