
    .Ph                    P   d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm Z  d dlm!Z! d dlm"Z" d dlm#Z# d dlm$Z$ d dlm%Z% d dlm&Z& d d lm'Z' d d!lm(Z( d d"lm)Z) d d#lm*Z* d d$lm+Z+ d d%lm,Z, d d&lm-Z- d d'lm.Z. d d(lm/Z/ d d)lm0Z0 d d*l1m2Z2 d d+l3m4Z4 d d,l5m6Z6 d-Z7d.Z8d/Z9d0Z:d1Z; G d2 d3          Z<dS )4    )annotationsN)decode)RFC_3339_LOOSE)_escaped)parse_rfc3339)	Container)EmptyKeyError)EmptyTableNameError)InternalParserError)InvalidCharInStringError)InvalidControlChar)InvalidDateError)InvalidDateTimeError)InvalidNumberError)InvalidTimeError)InvalidUnicodeValueError)
ParseError)UnexpectedCharError)UnexpectedEofError)AoT)Array)Bool)BoolType)Comment)Date)DateTime)Float)InlineTable)Integer)Item)Key)KeyType)Null)	SingleKey)String)
StringType)Table)Time)Trivia)
Whitespace)Source)TOMLChar)TOMLDocument	   
            c                  z   e Zd ZdZdZdZed             Zed             Zed	             Zed
             Z	d[dZ
d\d]dZd\d^dZd_dZd`dZdadZefdZdbdZdcd!Zddd%Zded'Zdfdgd+Zdhdid/Zdjd0Zdjd1Zdjd2Zdkd3Zd4 Zd5 Zdld9Zdmd;Zdnd=Z dodBZ!dpdDZ"dpdEZ#dF Z$dqdIZ%	 drdsdNZ&dtdPZ'dudUZ(dvdVZ)dwdYZ*dS )xParserz$
    Parser for TOML documents.
    stringstr | bytesreturnNonec                V    t          t          |                    | _        g | _        d S N)r+   r   _src
_aot_stack)selfr5   s     N/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/tomlkit/parser.py__init__zParser.__init__?   s"    6&>>**	%'    c                    | j         j        S r:   )r;   stater=   s    r>   _statezParser._stateE   s    yr@   c                    | j         j        S r:   )r;   idxrC   s    r>   _idxzParser._idxI   s    y}r@   c                    | j         j        S r:   )r;   currentrC   s    r>   _currentzParser._currentM   s    y  r@   c                    | j         j        S r:   )r;   markerrC   s    r>   _markerzParser._markerQ   s    yr@   strc                4    | j                                         S )z=
        Extracts the value between marker and index
        )r;   extractrC   s    r>   rP   zParser.extractU   s     y  """r@   N	exceptiontype[ParseError] | Noneboolc                8    | j                             |          S )z
        Increments the parser if the end of the input has not been reached.
        Returns whether or not it was able to advance.
        rQ   )r;   inc)r=   rQ   s     r>   rV   z
Parser.inc[   s    
 y}}y}111r@   nintc                :    | j                             ||          S )zm
        Increments the parser by n characters
        if the end of the input has not been reached.
        )rW   rQ   )r;   inc_n)r=   rW   rQ   s      r>   rZ   zParser.inc_nb   s    
 yi888r@   r   c                <    | j                             |||          S )zD
        Consume chars until min/max is satisfied is valid.
        )charsminmax)r;   consume)r=   r]   r^   r_   s       r>   r`   zParser.consumei   s!     y  u#3 ???r@   c                4    | j                                         S )zN
        Returns True if the parser has reached the end of the input.
        )r;   endrC   s    r>   rb   z
Parser.endo   s     y}}r@   c                8    | j                                          dS )zA
        Sets the marker to the index's current position
        N)r;   markrC   s    r>   rd   zParser.marku   s     		r@   c                .     | j         j        |g|R i |S )zJ
        Creates a generic "parse error" at the current position.
        )r;   parse_error)r=   rQ   argskwargss       r>   rf   zParser.parse_error{   s)     %ty$Y@@@@@@@r@   r-   c                   t          d          }|                                 s| j        dk    rn|                                 }|sn|\  }}||                                s|                     ||          sS	 |                    ||           n;# t          $ r.}|                     t          t          |                    |d }~ww xY w|                                  |                                 |                                 s|                                 \  }}t          |t                    r*|                                r|                     ||          }	 |                    ||           n;# t          $ r.}|                     t          t          |                    |d }~ww xY w|                                 |                    d           |S )NT[F)r-   rb   rJ   _parse_itemis_multi	_merge_wsappend	Exceptionrf   r   rN   rd   _parse_table
isinstancer'   is_aot_element
_parse_aotparsing)r=   bodyitemkeyvaluees         r>   parsezParser.parse   s   D!! ((** 	}## ##%%D JCCLLNN4>>%QU;V;VFKKU++++  F F F**:s1vv>>AEF IIKKK% ((** 	( ((** 
	B**,,JC%'' 4E,@,@,B,B 4 s33BC'''' B B B&&z3q66::AB ((** 
	B 	Us0   9B 
C)CCE5 5
F-?)F((F-rv   r    	containerr   c                h   |                                 }|sdS t          |t                    rt          |t                    sdS | j        t	          |j                  t	          |j                  z   z
  }|j        d         d         t          | j        || j                           f|j        d<   dS )z
        Merges the given Item with the last one currently in the given Container if
        both are whitespace items.

        Returns True if the items were merged.
        Fr[   r   T)	last_itemrq   r*   rG   lensru   r;   )r=   rv   r{   laststarts        r>   rm   zParser._merge_ws   s     ""$$ 	5$
++ 	:dJ3O3O 	5	S[[3tv;;67N2q!ty!2344
	r
 tr@   parentr!   childc                    t          |          }t          |          }||k    rdS ||dt          |                   k    S )z
        Returns whether a key is strictly a child of another key.
        AoT siblings are not considered children of one another.
        FN)tupler~   )r=   r   r   parent_partschild_partss        r>   	_is_childzParser._is_child   sH    
 V}}Ell;&&5{+>S->->+>???r@   tuple[Key | None, Item] | Nonec           
        |                                   | j        5 }	 | j        }|dk    rC|                                  dt	          |                                           fcddd           S |dv rD|                                 s/dt	          |                                           fcddd           S n{|dk    rY|                                 }|                                 \  }}}dt          t          ||||                    fcddd           S |dk    r	 ddd           dS d|_	        n	 ddd           n# 1 swxY w Y   | 
                    d          S )zw
        Attempts to parse the next item and returns it, along with its key
        if the item is value-like.
        T
N 	#rj   )rd   rD   rJ   rV   r*   rP   _parse_comment_trailr   r)   restore_parse_key_value)r=   rB   cindentcwscommenttrails          r>   rk   zParser._parse_item   s   
 			[ 	EM99HHJJJDLLNN!;!;;	 	 	 	 	 	 	 	 '\\88:: @#Z%?%??	 	 	 	 	 	 	 	@#XX!\\^^F*.*C*C*E*E'C%We)L)L!M!MM#	 	 	 	 	 	 	 	$ #XX)	 	 	 	 	 	 	 	2 %)EM32 5	 	 	 	 	 	 	 	 	 	 	 	 	 	 	8 $$T***s+   AE .:E 5AE E )
E  EETparse_trailtuple[str, str, str]c                *   |                                  rdS d}d}|                                  	 | j        }|dk    rnw|dk    r%|                                 }|                                  |                                  |                                  s| j                                        st          | j                  }|t          k    s|t          k    r'|t          k    r| 
                    t          |d          |                                 sn-|                                  s| j                                        |                                 }|                                  nK|dv r|                                  n| 
                    t          |          |                                  rnd}|r| j                                        rB|                                 r.	 | j                                        r|                                 .| j        dk    r|                                  | j        dk    r|                                  | j        | j        k    s| j                                        r|                                 }|||fS )	z
        Returns (comment_ws, comment, trail)
        If there is no comment, comment_ws and comment will
        simply be empty.
        ) r   r   r   Tr   r   commentsr   )rb   rd   rJ   rP   rV   is_nlordCHR_DELCTRL_CHAR_LIMITCTRL_Irf   r   r   	is_spacesrG   rM   is_ws)r=   r   r   
comment_wsr   coder   s          r>   r   zParser._parse_comment_trail   sS    88:: 	:
			ADyyc!\\^^
		


 ((** T]-@-@-B-B t}--Dw4?+B+Btv~~"../A4TTT88::  ((** T]-@-@-B-B  ,,..		g



&&':A>>>xxzz =	@  	'-))++ 

  -))++ 

  }$$


}$$


yDL((DM,?,?,A,A(7E))r@   Fparse_commenttuple[Key, Item]c                   |                                   | j                                        rB|                                 r.	 | j                                        r|                                 .|                                 }|                                 }|                                   | j        dk    }| j                                        rk|                                 rW| j        dk    r|r|                     t          d          d}| j                                        r|                                 W|s |                     t          | j                  |j	        s|                                 |_	        n"|xj	        |                                 z  c_	        | 
                                }|r<|                                 \  }}}|j        }	|	j        s||	_        ||	_        ||	_        nd|j        _        ||j        _        ||fS )N=Tr   )rd   rJ   r   rV   rP   
_parse_key	is_kv_seprf   r   sep_parse_valuer   triviar   r   r   r   )
r=   r   r   rw   found_equalsvalr   r   r   metas
             r>   r   zParser._parse_key_value-  s   		m%%'' 	DHHJJ 	 m%%'' 	DHHJJ 	  oo		}+m%%'' 	(DHHJJ 	(}## (**+>DDD#'L m%%'' 	(DHHJJ 	(  	G""#6FFFw 	&llnnCGGGGt||~~%GG !! 		""&";";"="=C%:D? &"%"DLDJJ!CJ"
Cxr@   c                B   |                                   | j                                        rB|                                 r.	 | j                                        r|                                 .| j        dv r|                                 S |                                 S )zz
        Parses a Key at the current position;
        WS before the key must be exhausted first at the callsite.
        z"')rd   rJ   r   rV   _parse_quoted_key_parse_bare_keyrC   s    r>   r   zParser._parse_key\  s    
 			m%%'' 	DHHJJ 	 m%%'' 	DHHJJ 	 =E!!))+++'')))r@   c                   |                                  }| j        t          fdt          D             d          }|t	          d          |                     |t          j        k    rt          j        nt          j	                  }|j
                                        r%|                     t          |j
        j                  ||                                z  }|                                  | j                                        rB|                                 r.	 | j                                        r|                                 .||                                  z  }t'          t)          |          |d|          }| j        dk    r;|                                  |                    |                                           }|S )zJ
        Parses a key enclosed in either single or double quotes.
        c              3  2   K   | ]}|j         k    |V  d S r:   )rx   ).0tquote_styles     r>   	<genexpr>z+Parser._parse_quoted_key.<locals>.<genexpr>q  s/      FFqqw+/E/E/E/E/E/EFFr@   Nz+Should not have entered _parse_quoted_key()r   )r   r   original.)rP   rJ   nextr"   RuntimeError_parse_stringBasicr&   SLBSLL_tis_multilinerf   r   rx   	as_stringrd   r   rV   r$   rN   concatr   )r=   r   key_typekey_strrw   r   s        @r>   r   zParser._parse_quoted_keyj  s   
 <<>>mFFFFGFFFMMLMMM$$&'-77JNNZ^
 
 :""$$ 	J""#6
8HIIIG%%'''		m%%'' 	DHHJJ 	 m%%'' 	DHHJJ 	DLLNN"Gb8LLL=CHHJJJ**T__..//C
r@   c                   | j                                         s| j                                         r[|                                 rG	 | j                                         s| j                                         r|                                 G|                                 }|                                }|s|                     t                    d|v r|                     t          d| d          t          |t          j        d|          }| j         dk    r;|                                  |                    |                                           }|S )z$
        Parses a bare key.
         zInvalid key ""r   r   )rJ   is_bare_key_charr   rV   rP   striprf   r	   r   r$   r"   Barer   r   )r=   r   rw   s      r>   r   zParser._parse_bare_key  s7   
 M**,,	040G0G0I0I	hhjj	  M**,,	040G0G0I0I	hhjj	
 <<>>nn 	2""=111#::"":/Es/E/E/EFFFW\2x88=CHHJJJ**T__..//C
r@   c                
   |                                   | j        }t                      }|t          j        j        k    r|                                 S |t          j        j        k    r|                                 S |t          j
        j        d         k    r|                                 S |t          j        j        d         k    r|                                 S |dk    r|                                 S |dk    r|                                 S |dv s|                     d          dv r| j        dvr2|                                 r	 | j        dvr|                                 |                                 }|                     ||          }||S |                     t*                    |t,          j        v r| j        dvr2|                                 r	 | j        dvr|                                 |                                 }t1          j        |          }|r|                    d	          r|                    d
          r	 t7          |          }t9          |t:          j                  sJ t=          |j        |j         |j!        |j"        |j#        |j$        |j%        |j&        ||
  
        S # tN          $ r |                     tP                    dw xY w|                    d	          r	 t7          |          }t9          |t:          j)                  sJ tU          |j        |j         |j!        ||          }|                                   | j        dvr2|                                 r	 | j        dvr|                                 |                                 }|+                                }	|tY          |	          d         |_-        |	s|S t7          ||	z             }t9          |t:          j                  sJ t=          |j        |j         |j!        |j"        |j#        |j$        |j%        |j&        |||	z   
  
        S # tN          $ r |                     t\                    dw xY w|                    d
          r	 t7          |          }
t9          |
t:          j/                  sJ ta          |
j"        |
j#        |
j$        |
j%        |
j&        ||          S # tN          $ r |                     tb                    dw xY w|                     ||          }||S |                     t*                    |                     td          |          )zD
        Attempts to parse a value at the current position.
        r   rj   {z+-   >   +inf+nan-inf-naninfnan 	
#,]}N      z	
#,]})3rd   rJ   r)   r&   r   rx   _parse_basic_stringr   _parse_literal_stringr   TRUE_parse_trueFALSE_parse_false_parse_array_parse_inline_table_peekrV   rP   _parse_numberrf   r   r5   digitsr   matchgroupr   rq   datetimer   yearmonthdayhourminutesecondmicrosecondtzinfo
ValueErrorr   dater   rstripr~   r   r   timer(   r   r   )r=   r   r   rawrv   mdtr   time_raw	time_partr   s              r>   r   zParser._parse_value  sF    			M
$$$++---*.&&&--///(-%a(((##%%%(.&q)))$$&&&#XX$$&&&#XX++---$YY$**Q-- ,
 
 
 -}444 -}444 ,,..C%%c622D""#5666&--}444 -}444 ,,..C$S))A CK771:: O!''!** OO*3//)"h.?@@@@@'GHFGIINI"     & O O O"../CDD$NO 771:: KK*3//)"hm<<<<<#BGRXrvvsKK		"m<??DHHJJ?  #m<??DHHJJ? $(<<>>$,OO$5$5	,4S^^5E5E,F)( (#'K*3?;;)"h.?@@@@@'GHFGIINI")O     & K K K"../?@@dJK 771:: KK)#..)!X];;;;;#FHHMH"     & K K K"../?@@dJK %%c622D""#5666""#6:::s.   A*J7 7&K7C#Q A0Q &Q2AS$ $&T
c                @    |                      t          j                  S r:   )_parse_boolr   r   rC   s    r>   r   zParser._parse_true  s    ...r@   c                @    |                      t          j                  S r:   )r   r   r   rC   s    r>   r   zParser._parse_false!  s    ///r@   styler   r   c                    | j         5  t          |          }|D ]}|                     |dd           t          |t	                                cd d d            S # 1 swxY w Y   d S )Nr   )r^   r_   )rD   r   r`   r   r)   )r=   r   r   s      r>   r   zParser._parse_bool$  s    [ 	) 	)UOOE  . .QA1----vxx((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   AAA!$A!r   c           
        |                      t                     g }d }	 | j        }|                     t          j        t          j        z              | j        || j                 }t          t          j                  t          |          z  }|r#|	                    t          |                     | j        dk    rM|                     d          \  }}}|	                    t          t          ||||                               |r$|	                    t          |                     |s<	 |	                    |                                            d}B# t           $ r Y nw xY w|r| j        dk    rx|                      t                     t#          |d         t                    r|d         j        dz   |d         _        n"|	                    t          d                     d}| j        dk    r|                                   n |                     t           | j                  	 t+          |t                                }	|	S # t,          $ r Y d S w xY w)	NrU   Tr   F)r   ,r[   ])rV   r   rG   r`   r,   SPACESNLr;   setrn   r*   rJ   r   r   r)   r   r   rq   r   _srf   r   r   )
r=   elems
prev_valuerd   r   newliner   r   r   ress
             r>   r   zParser._parse_array/  sb   -...
/	G9DLL8;6777Ytdi/0F(+&&V4G Z//000 }##&*&?&?E&?&R&R#WeWVFC%%H%HIIJJJ  Z//000  LL!2!2!4!4555!%J*   D  dms22#5666eBi44 2#(9;#4E"ILLLLC111"
 }##


""#6FFF	vxx((C J  	 	 	DD	s$   7)E" "
E/.E/8I 
I$#I$r   c                   |                      t                     t          d          }d }	 | j        }|                     t
          j                   | j        || j                 }|r"|                    t          |                     |sS| j
        dk    r|                                   n|du s|+| j
        dk    r |                     t          | j
                  n6| j
        dk    s| j
        dk    r |                     t          | j
                  |                     d          \  }}|                    ||           | j        }|                     t
          j                   | j        || j                 }|r"|                    t          |                     | j
        dk    }|r|                      t                     t          |t                                S )NrU   T}Fr   )rV   r   r   rG   r`   r,   r  r;   addr*   rJ   rf   r   r   r   r)   )r=   r  trailing_commard   r   rw   r   s          r>   r   zParser._parse_inline_tablem  s   -...$)	79DLL))))D49,-C +		*S//***! O =C''HHJJJ!U**"*t}/C/C **+>NNN =C''4=C+?+?**+>NNN,,U33HCIIc3 9DLL))))D49,-C +		*S//*** "]c1N 7#5666S)	7V 5&((+++r@   r   r   r)   Item | Nonec                   d}|                     d          r|d         }|dd          }t          |          dk    rC|                     d          r|                     d          r|r|                     d          rd S |                     d          r|rd S d	}d
}|                     d          rd}d}n3|                     d          rd}d}n|                     d          rd}d}t          j        d| d| dd|                                          }d|v rd S |                    d          sD|                     d          s1|                    dd          d                             d          rd S 	 t          t          ||z   |          |||z             S # t          $ r: 	 t          t          ||z             |||z             cY S # t          $ r Y Y d S w xY ww xY w)Nr   )+-r   r   0)z0.0o0x0b0er   )r  r  r  z[0-9]r/   r  z[01]   r  z[0-7]   r  z[0-9a-f]   z(?i)(?<=z)_(?=)_ry   )
startswithr~   resublowerendswithsplitr   rX   r   r   float)r=   r   r   signr   basecleans          r>   r   zParser._parse_number  sG   >>*%% 	q6Dabb'Cs88a<<^^C   ),8V)W)W  ,,  4>>,-- 	$ 	4>>$ 	FDD^^D!! 	FDD^^D!! 	FD 8&88v888"cBBHHJJ%<<4>># 	  &&	+0;;sA+>+>q+A+J+J3+O+O	 4	3te|T22FD3JGGG 	 	 	U4%<00&$*EEEEE   ttt	s0   ;$F   
G$+#GG$
G G$G  G$r%   c                    | j         5  |                     t          j                  cd d d            S # 1 swxY w Y   d S r:   )rD   r   r&   r   rC   s    r>   r   zParser._parse_literal_string      [ 	6 	6%%jn55	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6   488c                    | j         5  |                     t          j                  cd d d            S # 1 swxY w Y   d S r:   )rD   r   r&   r   rC   s    r>   r   zParser._parse_basic_string  r&  r'  c                   |r| j                                         rgd}| j                                         r&|| j         z  }|                     t                     ?d|vr |                     t
          | j                   dS | j         t          v r/t          | j                  }|                     t                     |S | j         dv rd|                     | j         dk              \  }}|'|                     t          |          dz              |S |                     t                    |                     t
          | j                   )Nr   rU   r      Uur+  r   )rJ   r   rV   r   rf   r   r   _peek_unicoderZ   r~   r   )r=   	multilinetmpr   r,  ues         r>   _parse_escaped_charzParser._parse_escaped_char  s?    	,,.. 	 C-%%'' t}$ #5666 3&&'?OOO2=H$$'A HH1H222H=J&&&&t}';<<EAr}

3r77Q;'''""#;<<<7GGGr@   delimr&   c                   | j         |j        k    r|                     t          d|           |                     t
                     | j         |j        k    rq|                                 r| j         |j        k    rt          |ddt                                S |                     t
                     |                                }| 	                                 d}|
                                r| j         dk    r|                     t
                     nu| j         }|                     d          5  |                                 r
|| j         z  }d d d            n# 1 swxY w Y   |dk    r|                     dt
                     d	}	 t          | j                   }|                                r#|s!|t          k    sX|t           k    r|t"          k    sB|
                                rJ|sH|t          k    s!|t           k    r2|t"          t$          t&          fvr|                     t(          |d
          |sc| j         |j        k    rR|                                 }d}|
                                rd}| j         |j        k    r.|| j         z  }|                                  | j         |j        k    .t-          |          dk     r||z  }Bt-          |          dk    rt          |||t                                S t-          |          dk    r |                     t.          | j                   ||d d         z  }||d d         z  }t          |||t                                S |                                  t          |||t                                S |                                r/|r-||                     |
                                          z  }d	}nb|                                r)| j         dk    rd}|                     t
                     n%|| j         z  }|                     t
                     )Nz"Invalid character for string type rU   r   r   Tr   z
r  Fstrings      \)rJ   unitrf   r   rV   r   r%   r)   togglerd   r   rD   rZ   r   is_singleliner   r   r   CTRL_JCTRL_Mr   rP   r~   r   is_basicr1  )r=   r2  rx   curescapedr   r   closes           r>   r   zParser._parse_string  sk   =EJ&&""#<U<<   	-...=EJ&& 88:: 7%*!<!<eRVXX666 HH1H222LLNNE		  
	@}$$#56666m[[[.. - -xxzz -t},- - - - - - - - - - - - - - - &==JJq,>J???G	7t}%%D##%%E7E7 W__)@)@TV^^""$$ FT   FT
 GOO//DQW@X4X4X &&'94KKK 67%*!<!<<<>>%%'' E-5:55.


 -5:55 5zzA~~  5zzQ%eUHfhhGGG5zzQ"../GWWWU3B3Z'Ecrc
*H!%&((CCC HHJJJeUHfhh???!! 7g 7 11%2D2D2F2FGGG  !! 7dmt&;&; #56666 & #5666OG	7s   9E$$E(+E(parent_name
Key | NoneTable | Nonetuple[Key, Table | AoT]c                N   | j         dk    r|                     t          d          |                                 }|                                  |                                 r|                     t                    d}| j         dk    r0|                                 s|                     t                    d}	 |                                 }n)# t          $ r |                     t                    dw xY w|                                 r|                     t                    | j         dk    r |                     t          | j                   d|_        |}t          |          }t          d |D                       r1|                     t          d	|                                 d
          d}|rt          |          }	nd}	t!          |          t!          |	          dz   k    rd}|t!          |	          d         }t#          d          }
|                                  |r|                                  |                                 \  }}}t'                      }t)          |
t+          ||||          ||r|d         j        n|j        |                                d          }t!          |          dk    rz|rKt)          t#          d          t+          d|||          |o|d         | j        v d|d         j                  }|}|d         }t1          |dd                   D ]	\  }}|                    |t)          t#          d          t+          ||||          |o|t!          |          dz
  k    |t!          |          dz
  k     |j        |t!          |          dz
  k    r|                                nd                    }|rC|t!          |          dz
  k    r-|                    |t7          |g|j        d                     n|                    ||           |}|j        }
n
|r|d         }|                                 sf|                                 }|r3|\  }}|                     ||
          s|                    ||           n| j         dk    r|                                  \  }}| !                    ||          r| "                    ||          \  }}|                    ||           |                                 sq|                                  \  }}| !                    ||          snC| "                    ||          \  }}|                    ||           |                                 qn0|                     t          d          |                                 f|j        #                                 tI          |t&                    r2|}|r.| j        r|| j        d         k    r| %                    ||          }||fS )z)
        Parses a table element.
        rj   z/_parse_table() called on non-bracket character.FTNr   r   c              3  t   K   | ]3}d |j                                         v o|                                V  4dS )r   N)rw   r   is_bare)r   parts     r>   r   z&Parser._parse_table.<locals>.<genexpr>  s@      QQdsdhnn&&&94<<>>QQQQQQr@   zInvalid table name "r    r   r   )namedisplay_nameis_super_table)rN  rL  r  )rN  rL  rM  )rL  parsedz7_parse_item() returned None on a non-bracket character.r[   )&rJ   rf   r   rP   rV   rb   r   r   r	   r
   r   r   r   anyr   r   r~   r   r   r#   r'   r)   rw   r<   	enumerateget
raw_appendr   rL  rx   rk   rm   _peek_tabler   rp   _validate_out_of_order_tablerq   rs   )r=   rC  r   r   is_aotrw   full_key
name_partsmissing_tableparent_name_partsvaluesr   r   r   resulttablei_namer   rv   _keyr  key_next
table_nexts                           r>   rp   zParser._parse_tablev  sd    =C""#%V   


88:: 	7""#5666=C88:: ;&&'9:::F	B//##CC 	B 	B 	B""#677TA	B88:: 	G""#5666]c!!""#6FFF3ZZ
QQjQQQQQ 	""J83E3E3G3GJJJ    	# %k 2 2 "z??S!233a777 M$5 6 6 8 89
4


 	HHJJJ"7799We63//&0=A""cg!++-- 
 
 
 z??Q  dOO2sGU33?z!}?#'#A*   FQ-C%jn55 % %5		!$vsGU;;;1J!(;#;'(3z??Q+>'>"Y45Z19L4L4LH..000RV	 	 	   3a3z??Q#666$$UCejQU,V,V,VWWWW$$UE222+%.  $ m((** 	##%%D !
d~~dF33 1$$T4000=C''"&"2"2"4"4KAx~~h99 C/3/@/@5/Q/Q,*((:>>> #'((** C*.*:*:*<*<KAx#'>>(H#E#E & %373D3DXu3U3U0Hj!,,XzBBB #'((** C **+Q  9 ((** 	@ 	00222fd## 	;F ;t ;(dob>Q2Q2Q::F{s   ;C &C6tuple[bool, Key]c                   |                      dd          5  | j        dk    r|                     t          d          |                                  d}| j        dk    r|                                  d}	 ||                                 fcddd           S # t          $ r |                     t                    dw xY w# 1 swxY w Y   dS )z
        Peeks ahead non-intrusively by cloning then restoring the
        initial state of the parser.

        Returns the name of the table about to be parsed,
        as well as whether it is part of an AoT.
        Tsave_markerr   rj   z._peek_table() entered on non-bracket characterFN)rD   rJ   rf   r   rV   r   r	   r
   )r=   rV  s     r>   rT  zParser._peek_table  s@    [[T4[88 	F 	F}##&&'D   HHJJJF}##


Ft000	F 	F 	F 	F 	F 	F 	F 	F ! F F F&&':;;EF	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs$   AC7B&B??CC	Cfirstr'   
name_firstr   c                |   |g}| j                             |           |                                 sb|                                 \  }}|r4||k    r.|                     |          \  }}|                    |           nn|                                 b| j                                          t          |d          S )zg
        Parses all siblings of the provided table first and bundles them into
        an AoT.
        T)rO  )r<   rn   rb   rT  rp   popr   )r=   rg  rh  payloadis_aot_next	name_nextr  r]  s           r>   rs   zParser._parse_aot,  s    
 'z***((** 	%)%5%5%7%7"K yJ66,,Z885u%%%% ((** 	 	74((((r@   c                    |                      d          5  d}t          |          D ]7}| j        d| j        j        z   vr|| j        z  }|                                  7 |cddd           S # 1 swxY w Y   dS )zk
        Peeks ahead n characters.

        n is the max number of characters that will be peeked.
        Tr4  r   r   N)rD   rangerJ   r;   EOFrV   )r=   rW   bufr  s       r>   r   zParser._peek?  s     [[[&& 		 		C1XX  =	(EEE4=(CHHJJJ		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		s   AA//A36A3is_longtuple[str | None, str | None]c                n   |                      dd          5  | j        dvr|                     t          d          |                                  |                                  |rd}nd}|                     |          sd\  }}n|                                 }|d                                         d	k    r)|d
         	                    d          r	 ddd           dS 	 t          t          |d                    }n# t          t          f$ r d}Y nw xY w||fcddd           S # 1 swxY w Y   dS )z
        Peeks ahead non-intrusively by cloning then restoring the
        initial state of the parser.

        Returns the unicode value is it's a valid one else None.
        Tre  r*  z,_peek_unicode() entered on non-unicode valuer  r   NNr   dr   01234567Nr  )rD   rJ   rf   r   rV   rd   rZ   rP   r  r   chrrX   r   OverflowError)r=   rr  r]   rx   	extracteds        r>   r-  zParser._peek_unicodeQ  s    [[T4[88 	$ 	$}J..&&')W   HHJJJIIKKK ::e$$ !#- yy LLNN	Q<%%''3..9Q<3E3Ej3Q3Q.%)	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$,!Ir 2 233EE"M2 ! ! ! EEE! )#7	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s6   B=D*#D D*DD*DD**D.1D.)r5   r6   r7   r8   )r7   rN   r:   )rQ   rR   r7   rS   )rW   rX   rQ   rR   r7   rS   )r   r[   )r7   rS   )r7   r8   )r7   r-   )rv   r    r{   r   r7   rS   )r   r!   r   r!   r7   rS   )r7   r   )T)r   rS   r7   r   )F)r   rS   r7   r   )r7   r!   )r7   r    )r   r   r7   r   )r7   r   )r7   r   )r   rN   r   r)   r7   r  )r7   r%   )r2  r&   r7   r%   ru  )rC  rD  r   rE  r7   rF  )r7   rc  )rg  r'   rh  r!   r7   r   )rW   rX   r7   rN   )rr  rS   r7   rs  )+__name__
__module____qualname____doc__r?   propertyrD   rG   rJ   rM   rP   rV   rZ   r`   rb   rd   r   rf   rz   rm   r   rk   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1  r   rp   rT  rs   r   r-  rK  r@   r>   r4   r4   :   s_        ( ( ( (   X   X ! ! X!     X # # # #2 2 2 2 29 9 9 9 9@ @ @ @       %/ A A A A& & & &P   ,@ @ @ @"+ "+ "+ "+H;* ;* ;* ;* ;*z- - - - -^* * * *   :   6z; z; z; z;x/ / /0 0 0	) 	) 	) 	)< < < <|1, 1, 1, 1,f- - - -^6 6 6 66 6 6 6+H +H +HZp7 p7 p7 p7f FJY Y Y Y YvF F F F6) ) ) )&   $#$ #$ #$ #$ #$ #$r@   r4   )=
__future__r   r   r  r5   tomlkit._compatr   tomlkit._utilsr   r   r   tomlkit.containerr   tomlkit.exceptionsr	   r
   r   r   r   r   r   r   r   r   r   r   r   tomlkit.itemsr   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   tomlkit.sourcer+   tomlkit.toml_charr,   tomlkit.toml_documentr-   r   r=  r>  r   r   r4   rK  r@   r>   <module>r     s}   " " " " " "  				  " " " " " " ) ) ) ) ) ) # # # # # # ( ( ( ( ( ( ' ' ' ' ' ' , , , , , , 2 2 2 2 2 2 2 2 2 2 2 2 7 7 7 7 7 7 1 1 1 1 1 1 / / / / / / 3 3 3 3 3 3 1 1 1 1 1 1 / / / / / / 7 7 7 7 7 7 ) ) ) ) ) ) 2 2 2 2 2 2 1 1 1 1 1 1                   " " " " " " ! ! ! ! ! !       " " " " " "       % % % % % % ! ! ! ! ! !             ! ! ! ! ! !       # # # # # #             $ $ $ $ $ $                         $ $ $ $ $ $ ! ! ! ! ! ! & & & & & & . . . . . . 
		
z$ z$ z$ z$ z$ z$ z$ z$ z$ z$r@   