
    v;3h/                    H   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<y)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                  j   e Zd ZdZd(d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d/dZefdZd0dZd1dZd2dZd3dZd4d5dZd6d7dZd8dZd8dZd8dZd9dZd Zd Zd:dZd;dZd<dZ d=dZ!d>dZ"d>d Z#d! Z$d?d"Z%	 d@	 	 	 	 	 dAd#Z&dBd$Z'dCd%Z(dDd&Z)dEd'Z*y)FParserz$
    Parser for TOML documents.
    c                D    t        t        |            | _        g | _        y N)r+   r   _src
_aot_stack)selfstrings     N/var/www/html/audio-gradio/venv/lib/python3.12/site-packages/tomlkit/parser.py__init__zParser.__init__?   s    6&>*	%'    c                .    | j                   j                  S r6   )r7   stater9   s    r;   _statezParser._stateE   s    yyr=   c                .    | j                   j                  S r6   )r7   idxr@   s    r;   _idxzParser._idxI   s    yy}}r=   c                .    | j                   j                  S r6   )r7   currentr@   s    r;   _currentzParser._currentM   s    yy   r=   c                .    | j                   j                  S r6   )r7   markerr@   s    r;   _markerzParser._markerQ   s    yyr=   c                6    | j                   j                         S )z=
        Extracts the value between marker and index
        )r7   extractr@   s    r;   rL   zParser.extractU   s     yy  ""r=   Nc                :    | j                   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.
        	exception)r7   inc)r9   rO   s     r;   rP   z
Parser.inc[   s    
 yy}}y}11r=   c                <    | j                   j                  ||      S )zm
        Increments the parser by n characters
        if the end of the input has not been reached.
        )nrO   )r7   inc_n)r9   rR   rO   s      r;   rS   zParser.inc_nb   s    
 yyi88r=   c                >    | j                   j                  |||      S )zD
        Consume chars until min/max is satisfied is valid.
        )charsminmax)r7   consume)r9   rU   rV   rW   s       r;   rX   zParser.consumei   s      yy  u#3 ??r=   c                6    | j                   j                         S )zN
        Returns True if the parser has reached the end of the input.
        )r7   endr@   s    r;   rZ   z
Parser.endo   s     yy}}r=   c                8    | j                   j                          y)zA
        Sets the marker to the index's current position
        N)r7   markr@   s    r;   r\   zParser.marku   s     			r=   c                B     | j                   j                  |g|i |S )zJ
        Creates a generic "parse error" at the current position.
        )r7   parse_error)r9   rO   argskwargss       r;   r^   zParser.parse_error{   s%     %tyy$$Y@@@@r=   c                   t        d      }| j                         s| j                  dk(  rnp| j                         }|sn]|\  }}||j	                         s| j                  ||      s	 |j                  ||       | j                          | j                         s| j                         si| j                         \  }}t        |t              r"|j                         r| j!                  ||      }	 |j                  ||       | j                         si|j#                  d       |S # t        $ r%}| j                  t        t        |            |d }~ww xY w# t        $ r%}| j                  t        t        |            |d }~ww xY w)NT[F)r-   rZ   rG   _parse_itemis_multi	_merge_wsappend	Exceptionr^   r   strr\   _parse_table
isinstancer'   is_aot_element
_parse_aotparsing)r9   bodyitemkeyvaluees         r;   parsezParser.parse   sY   D! ((*}}# ##%DJCCLLN4>>%QU;VFKKU+ IIK% ((*( ((***,JC%'E,@,@,B s3BC' ((* 	U' ! F**:s1v>AEF  B&&z3q6:ABs0   )D( 2E (	E1 EE	F" FFc                ^   |j                         }|syt        |t              rt        |t              sy| j                  t	        |j
                        t	        |j
                        z   z
  }|j                  d   d   t        | j                  || j                         f|j                  d<   y)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   T)	last_itemrj   r*   rD   lensrn   r7   )r9   ro   	containerlaststarts        r;   re   zParser._merge_ws   s     ""$$
+:dJ3O		S[3tvv;67NN2q!tyy34
	r
 r=   c                \    t        |      }t        |      }||k(  ry||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)tuplerw   )r9   parentchildparent_partschild_partss        r;   	_is_childzParser._is_child   s9    
 V}El;&{+>S->???r=   c           
     J   | j                          | j                  5 }	 | j                  }|dk(  r4| j                          dt	        | j                               fcddd       S |dv r4| j                         sdt	        | j                               fcddd       S |dk(  rF| j                         }| j                         \  }}}dt        t        ||||            fcddd       S |dk(  r
	 ddd       yd|_	        n	 ddd       | j                  d      S # 1 sw Y   xY w)zw
        Attempts to parse the next item and returns it, along with its key
        if the item is value-like.
        T
N 	#rb   )r\   rA   rG   rP   r*   rL   _parse_comment_trailr   r)   restore_parse_key_value)r9   r?   cindentcwscommenttrails          r;   rc   zParser._parse_item   s   
 			[[ 	EMM9HHJDLLN!;;	 	 '\88:#Z%??	 	 #X!\\^F*.*C*C*E'C%We)L!MM#	 	$ #X)	 	2 %)EM3 2 5	8 $$T**9	 	s$   =D$.DAD'D6	DD"c                   | j                         ryd}d}| j                          	 | j                  }|dk(  rnA|dk(  r| j                         }| j                          | j	                          | j                         s| j                  j                         st        | j                        }|t        k(  s|t        k  r |t        k7  r| j                  t        |d      | j	                         sn+| j                         s| j                  j                         s| j                         }| j                          n>|dv r| j	                          n| j                  t        |      | j                         rnTd}|r| j                  j                         r<| j	                         r,	 | j                  j                         r| j	                         r,| j                  dk(  r| j	                          | j                  dk(  r| j	                          | j                  | j                  k7  s| j                  j!                         r| j                         }|||fS )z
        Returns (comment_ws, comment, trail)
        If there is no comment, comment_ws and comment will
        simply be empty.
        ) r   r   r   r   r   commentsr   )rZ   r\   rG   rL   rP   is_nlordCHR_DELCTRL_CHAR_LIMITCTRL_Ir^   r   r   	is_spacesrD   rJ   is_ws)r9   parse_trailr   
comment_wsr   coder   s          r;   r   zParser._parse_comment_trail   s    88:
		ADyc!\\^
		
 ((*T]]-@-@-Bt}}-Dw$/*Adfn"../A4TT88: ((*T]]-@-@-B ,,.		g
&&':A>>xxz= @ --))+
 --))+
 }}$
}}$
yyDLL(DMM,?,?,A7E))r=   c                
   | j                          | j                  j                         r<| j                         r,	 | j                  j                         r| j                         r,| j	                         }| j                         }| j                          | j                  dk(  }| j                  j                         rd| j                         rT| j                  dk(  r|r| j                  t        d      d}| j                  j                         r| j                         rT|s | j                  t        | j                        |j                  s| j	                         |_	        n#|xj                  | j	                         z  c_	        | j                         }|rB| j                         \  }}}|j                  }	|	j                  s||	_        ||	_        ||	_        nd|j                  _        ||j                  _        ||fS )N=Tr   )r\   rG   r   rP   rL   
_parse_key	is_kv_sepr^   r   sep_parse_valuer   triviar   r   r   r   )
r9   parse_commentr   rp   found_equalsvalr   r   r   metas
             r;   r   zParser._parse_key_value-  s   		mm%%'DHHJ mm%%'DHHJ  oo		}}+mm%%'DHHJ}}#**+>DD#'L mm%%'DHHJ ""#6FFwwllnCGGGt||~%G !"&";";"=C%::D??"%"DLDJ!CJJ"

Cxr=   c                *   | j                          | j                  j                         r<| j                         r,	 | j                  j                         r| j                         r,| j                  dv r| j	                         S | j                         S )zz
        Parses a Key at the current position;
        WS before the key must be exhausted first at the callsite.
        z"')r\   rG   r   rP   _parse_quoted_key_parse_bare_keyr@   s    r;   r   zParser._parse_key\  sn    
 			mm%%'DHHJ mm%%'DHHJ ==E!))++''))r=   c                \   | j                         }| j                  t        fdt        D        d      }|t	        d      | j                  |t        j                  k(  rt        j                  nt        j                        }|j                  j                         r*| j                  t        |j                  j                        ||j                         z  }| j!                          | j                  j#                         r<| j%                         r,	 | j                  j#                         r| j%                         r,|| j                         z  }t'        t)        |      |d|      }| j                  dk(  r/| j%                          |j+                  | j-                               }|S )zJ
        Parses a key enclosed in either single or double quotes.
        c              3  B   K   | ]  }|j                   k(  s|  y wr6   )rq   ).0tquote_styles     r;   	<genexpr>z+Parser._parse_quoted_key.<locals>.<genexpr>q  s     Fqqww+/EFs   Nz+Should not have entered _parse_quoted_key()r   )r   r   original.)rL   rG   nextr"   RuntimeError_parse_stringBasicr&   SLBSLL_tis_multiliner^   r   rq   	as_stringr\   r   rP   r$   rh   concatr   )r9   r   key_typekey_strrp   r   s        @r;   r   zParser._parse_quoted_keyj  s9   
 <<>mmFGFMLMM$$&'--7JNNZ^^
 ::""$""#6

8H8HIIG%%''		mm%%'DHHJ mm%%'DHHJDLLN"Gb8L==CHHJ**T__./C
r=   c                x   | j                   j                         s| j                   j                         rV| j                         rF	 | j                   j                         s| j                   j                         r| j                         rF| j	                         }|j                         }|s| j                  t              d|v r| j                  t        d| d      t        |t        j                  d|      }| j                   dk(  r/| j                          |j                  | j                               }|S )z$
        Parses a bare key.
         zInvalid key ""r   r   )rG   is_bare_key_charr   rP   rL   stripr^   r	   r   r$   r"   Barer   r   )r9   r   rp   s      r;   r   zParser._parse_bare_key  s    
 MM**,0G0G0Ihhj MM**,0G0G0Ihhj <<>nn""=11#:"":se1/EFFW\\2x8==CHHJ**T__./C
r=   c                
   | j                          | j                  }t               }|t        j                  j
                  k(  r| j                         S |t        j                  j
                  k(  r| j                         S |t        j                  j
                  d   k(  r| j                         S |t        j                  j
                  d   k(  r| j                         S |dk(  r| j                         S |dk(  r| j                         S |dv s| j!                  d      dv ry| j                  dvr0| j#                         r 	 | j                  dvr| j#                         r | j%                         }| j'                  ||      }||S | j)                  t*              |t,        j.                  v r8| j                  dvr0| j#                         r 	 | j                  dvr| j#                         r | j%                         }t1        j2                  |      }|r|j5                  d	      r|j5                  d
      r	 t7        |      }t9        |t:        j:                        sJ t=        |j>                  |j@                  |jB                  |jD                  |jF                  |jH                  |jJ                  |jL                  ||
      S |j5                  d	      rk	 t7        |      }t9        |t:        jR                        sJ tU        |j>                  |j@                  |jB                  ||      }| j                          | j                  dvr0| j#                         r 	 | j                  dvr| j#                         r | j%                         }|jW                         }	|tY        |	      d |_-        |	s|S t7        ||	z         }t9        |t:        j:                        sJ t=        |j>                  |j@                  |jB                  |jD                  |jF                  |jH                  |jJ                  |jL                  |||	z   
      S |j5                  d
      rk	 t7        |      }
t9        |
t:        j^                        sJ ta        |
jD                  |
jF                  |
jH                  |
jJ                  |
jL                  ||      S | j'                  ||      }||S | j)                  t*              | j)                  td        |      # tN        $ r | j)                  tP              dw xY w# tN        $ r | j)                  t\              dw xY w# tN        $ r | j)                  tb              dw xY w)zD
        Attempts to parse a value at the current position.
        r   rb   {z+-   >   +inf+nan-inf-naninfnan 	
#,]}N      z	
#,]})3r\   rG   r)   r&   r   rq   _parse_basic_stringr   _parse_literal_stringr   TRUE_parse_trueFALSE_parse_false_parse_array_parse_inline_table_peekrP   rL   _parse_numberr^   r   r:   digitsr   matchgroupr   rj   datetimer   yearmonthdayhourminutesecondmicrosecondtzinfo
ValueErrorr   dater   rstriprw   r   r   timer(   r   r   )r9   r   r   rawro   mdtr   time_raw	time_partr   s              r;   r   zParser._parse_value  s    			MM
$$$++--*..&&&--//(--%%a((##%%(..&&q))$$&&#X$$&&#X++--$Y$**Q- ,
 
 --}4 --}4 ,,.C%%c62D""#566&----}4 --}4 ,,.C$$S)A771:!''!*O*3/)"h.?.?@@@'GGHHFFGGIIIINNII"   771:K*3/)"hmm<<<#BGGRXXrvvvsK		"mm<?DHHJ  #mm<?DHHJ $(<<>$,OO$5	,4S^5E,F)(#'K*3?;)"h.?.?@@@'GGHHFFGGIIIINNII")O   771:K)#.)!X]];;;#FFHHHHMMHH"   %%c62D""#566""#6::s & O"../CD$NO@ & K"../?@dJK  & K"../?@dJKs4   7B
S< B!T 76T .BT A)U < T T? U"c                @    | j                  t        j                        S r6   )_parse_boolr   r   r@   s    r;   r   zParser._parse_true  s    ..r=   c                @    | j                  t        j                        S r6   )r   r   r   r@   s    r;   r   zParser._parse_false!  s    //r=   c                    | j                   5  t        |      }|D ]  }| j                  |dd        t        |t	                     cd d d        S # 1 sw Y   y xY w)Nr   )rV   rW   )rA   r   rX   r   r)   )r9   styler   s      r;   r   zParser._parse_bool$  sX    [[ 	)UOE  .QA1-. vx(	) 	) 	)s   :AAc           
        | j                  t               g }d }	 | j                  }| j                  t        j
                  t        j                  z          | j                  || j                   }t        t        j                        t        |      z  }|r|j                  t        |             | j                  dk(  r=| j                  d      \  }}}|j                  t        t        ||||                   |r|j                  t        |             |s$	 |j                  | j                                d}(|rC| j                  dk(  r4| j                  t               |j                  t        d             d}m| j                  dk(  r| j                          n | j#                  t         | j                        	 t%        |t                     }	|	S # t         $ r Y w xY w# t&        $ r Y y w xY w)NrN   Tr   F)r   ,])rP   r   rD   rX   r,   SPACESNLr7   setrf   r*   rG   r   r   r)   r   r   r^   r   r   )
r9   elems
prev_valuer\   r   newliner   r   r   ress
             r;   r   zParser._parse_array/  s   -.
99DLL8;;67YYtdii0F(++&V4GZ/0 }}#&*&?&?E&?&R#WeWVFC%%HIJ Z/0 LL!2!2!45!%J
 dmms2#56Z_-"
 }}#
""#6FF	vx(C J/ + (  		s$    !G 	G. 	G+*G+.	G:9G:c                   | j                  t               t        d      }d }	 | j                  }| j	                  t
        j                         | j                  || j                   }|r|j                  t        |             |sV| j                  dk(  r| j                          n"|du s|m| j                  dk(  r^| j                  t        | j                        | j                  dk(  s| j                  dk(  r | j                  t        | j                        | j                  d      \  }}|j                  ||       | j                  }| j	                  t
        j                         | j                  || j                   }|r|j                  t        |             | j                  dk(  }|r| j                  t               t        |t                     S )NrN   T}Fr   )rP   r   r   rD   rX   r,   r   r7   addr*   rG   r^   r   r   r   r)   )r9   r   trailing_commar\   r   rp   r   s          r;   r   zParser._parse_inline_tablei  s   -.$99DLL)))D499-C		*S/*! ==C'HHJ #e+%-, **+>NN ==C'4==C+?**+>NN,,U3HCIIc3 99DLL)))D499-C		*S/* "]]c1N#56W Z 5&(++r=   c                   d}|j                  d      r
|d   }|dd  }t        |      dkD  r6|j                  d      r|j                  d      r|r|j                  d      ry |j                  d      r|ry d	}d
}|j                  d      rd}d}n+|j                  d      rd}d}n|j                  d      rd}d}t        j                  d| d| dd|      j	                         }d|v ry |j                  d      s5|j                  d      s%|j                  dd      d   j                  d      ry 	 t        t        ||z   |      |||z         S # t        $ r0 	 t        t        ||z         |||z         cY S # t        $ r Y Y y 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)_(?=)_rr   )
startswithrw   resublowerendswithsplitr   intr   r   float)r9   r   r   signr   basecleans          r;   r   zParser._parse_number  s   >>*%q6Dab'Cs8a<NN3NN#ABs#>>,-$>>$FD^^D!FD^^D!FD &vha8"cBHHJ%< NN3##D)C#A&//4	3te|T2FD3JGG 	U4%<0&$*EE 	s0   4E 	F
E96F
9	FF
FF
c                    | j                   5  | j                  t        j                        cd d d        S # 1 sw Y   y xY wr6   )rA   r   r&   r   r@   s    r;   r   zParser._parse_literal_string  0    [[ 	6%%jnn5	6 	6 	6   6?c                    | j                   5  | j                  t        j                        cd d d        S # 1 sw Y   y xY wr6   )rA   r   r&   r   r@   s    r;   r   zParser._parse_basic_string  r  r  c                   |r| j                   j                         rgd}| j                   j                         r&|| j                   z  }| j                  t               @d|vr | j	                  t
        | j                         y| j                   t        v r+t        | j                      }| j                  t               |S | j                   dv rW| j                  | j                   dk(        \  }}|| j                  t        |      dz          |S | j	                  t              | j	                  t
        | j                         )Nr   rN   r      Uur!  r   )rG   r   rP   r   r^   r   r   _peek_unicoderS   rw   r   )r9   	multilinetmpr   r"  ues         r;   _parse_escaped_charzParser._parse_escaped_char  s   ,,. C--%%'t}}$ #56 3&&'?OO==H$'A HH1H2H==J&&&t}}';<EAr}

3r7Q;'""#;<<7GGr=   c                   | j                   |j                  k7  r| j                  t        d|       | j	                  t
               | j                   |j                  k(  re| j	                         r| j                   |j                  k7  rt        |ddt                     S | j	                  t
               |j                         }| j                          d}|j                         r| j                   dk(  r| j	                  t
               nb| j                   }| j                  d      5  | j	                         r|| j                   z  }d d d        |dk(  r| j                  dt
               d	}	 t        | j                         }|j                         r|s|t        k(  sI|t         k  r	|t"        k7  s7|j                         r>|s<|t        k(  s|t         k  r*|t"        t$        t&        fvr| j                  t(        |d
      |sC| j                   |j                  k(  r)| j+                         }d}|j                         rd}| j                   |j                  k(  r9|| j                   z  }| j	                          | j                   |j                  k(  r9t-        |      dk  r||z  }9t-        |      dk(  rt        |||t                     S t-        |      dk\  r | j                  t.        | j                         ||d d z  }||d d z  }t        |||t                     S | j	                          t        |||t                     S |j1                         r'|r%|| j3                  |j                               z  }d	}n]|j1                         r(| j                   dk(  rd}| j	                  t
               n%|| j                   z  }| j	                  t
               l# 1 sw Y   xY w)Nz"Invalid character for string type rN   r   r   Tr   z
r  Fstrings      \)rG   unitr^   r   rP   r   r%   r)   toggler\   r   rA   rS   r   is_singleliner   r   r   CTRL_JCTRL_Mr   rL   rw   r   is_basicr'  )r9   delimrq   curescapedr   r   closes           r;   r   zParser._parse_string  sL   ==EJJ&""#4UG<  	-.==EJJ& 88:%**!<eRVX66 HH1H2LLNE		 }}$#56mm[[[. -xxzt}},- &=JJq,>J?t}}%D##%W_(?DFN""$GO.VVV$<< &&'94KK%**!<<<>%%'E--5::5.
 --5::5 5zA~  5zQ%eUHfhGG5zQ"../GWWU3BZ'Ecr
*H!%&(CC HHJeUHfh??!g 11%2D2D2FGG  !dmmt&; #56 & #56M - -s   - O  O*c                
   | j                   dk7  r| j                  t        d      | j                         }| j	                          | j                         r| j                  t              d}| j                   dk(  r'| j	                         s| j                  t              d}	 | j                         }| j                         r| j                  t              | j                   dk7  r | j                  t        | j                         d|_        |}t        |      }t        d |D              r(| j                  t        d	|j                          d
      d}|rt        |      }	nd}	t!        |      t!        |	      dz   kD  rd}|t!        |	      d }t#        d      }
| j	                          |r| j	                          | j%                         \  }}}t'               }t)        |
t+        ||||      ||r|d   j,                  n|j,                  |j                         d      }t!        |      dkD  rE|rEt)        t#        d      t+        d|||      |xr |d   | j.                  v d|d   j,                        }|}|d   }t1        |dd       D ]  \  }}|j3                  |t)        t#        d      t+        ||||      |xr |t!        |      dz
  k(  |t!        |      dz
  k  |j,                  |t!        |      dz
  k(  r|j                         nd            }|r;|t!        |      dz
  k(  r*|j5                  |t7        |g|j8                  d             n|j5                  ||       |}|j:                  }
 n|r|d   }| j                         s.| j=                         }|r*|\  }}| j?                  ||
      s|j5                  ||       n| j                   dk(  r| jA                         \  }}| jC                  ||      r| jE                  ||      \  }}|j5                  ||       | j                         s^| jA                         \  }}| jC                  ||      sn8| jE                  ||      \  }}|j5                  ||       | j                         s^n(| j                  t        d      | j                         s.|j:                  jG                          tI        |t&              r4|}|r0| j.                  r|| j.                  d   k7  r| jK                  ||      }||fS # t        $ r | j                  t              dw xY w)z)
        Parses a table element.
        rb   z/_parse_table() called on non-bracket character.FTNr   r   c              3  x   K   | ]2  }d |j                   j                         v xr |j                          4 yw)r   N)rp   r   is_bare)r   parts     r;   r   z&Parser._parse_table.<locals>.<genexpr>  s.     Qdsdhhnn&&94<<>9Qs   8:zInvalid table name "r    r   r   )namedisplay_nameis_super_table)r@  r>  r  )r@  r>  r?  )r>  parsedz7_parse_item() returned None on a non-bracket character.ru   )&rG   r^   r   rL   rP   rZ   r   r   r	   r
   r   r   r}   anyr   r   rw   r   r   r#   r'   r)   rp   r8   	enumerateget
raw_appendr   r>  rq   rc   re   _peek_tabler   ri   _validate_out_of_order_tablerj   rl   )r9   parent_namer~   r   is_aotrp   full_key
name_partsmissing_tableparent_name_partsvaluesr   r   r   resulttablei_namer   ro   _keyr  key_next
table_nexts                           r;   ri   zParser._parse_tablew  s    ==C""#%V  
88:""#566==C88:&&'9::F	B//#C 88:""#566]]c!""#6FF3Z
QjQQ""283E3E3G2HJ   %k 2 "z?S!23a77 M$5 6 89
4
HHJ"779We63/&0A""cgg!++- 
 z?Q dO2sGU3?z!}?#'#A** FQ-C%jn5 %5		!$vsGU;;1J!(;#;'(3z?Q+>'>"YY45Z19L4LH..0RV	 a3z?Q#66$$UCejjQU,VW$$UE2+%.  m((*##%D!
d~~dF3$$T40==C'"&"2"2"4KAx~~h9/3/@/@5/Q,*((:> #'((**.*:*:*<KAx#'>>(H#E %373D3DXu3U0Hj!,,XzB #'((* **+Q 9 ((*@ 	002fd#Ft(doob>Q2Q:F{A  	B""#67TA	Bs   $T  T?c                p   | j                  dd      5  | j                  dk7  r| j                  t        d      | j	                          d}| j                  dk(  r| j	                          d}	 || j                         fcddd       S # t        $ r | j                  t              dw xY w# 1 sw Y   yxY w)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   rb   z._peek_table() entered on non-bracket characterFN)rA   rG   r^   r   rP   r   r	   r
   )r9   rI  s     r;   rF  zParser._peek_table  s     [[T4[8 	F}}#&&'D  HHJF}}#
Ft00	F 	F ! F&&':;EF	F 	Fs   AB,.B		 B))B,,B5c                P   |g}| j                   j                  |       | j                         sR| j                         \  }}|r+||k(  r&| j	                  |      \  }}|j                  |       nn| j                         sR| j                   j                          t        |d      S )zg
        Parses all siblings of the provided table first and bundles them into
        an AoT.
        T)rA  )r8   rf   rZ   rF  ri   popr   )r9   first
name_firstpayloadis_aot_next	name_nextr  rP  s           r;   rl   zParser._parse_aot-  s    
 'z*((*%)%5%5%7"KyJ6,,Z85u% ((* 	74((r=   c                   | j                  d      5  d}t        |      D ]H  }| j                  d| j                  j                  z   vr || j                  z  }| j                          H n |cddd       S # 1 sw Y   yxY w)zk
        Peeks ahead n characters.

        n is the max number of characters that will be peeked.
        Tr)  r   r   N)rA   rangerG   r7   EOFrP   )r9   rR   bufr  s       r;   r   zParser._peek@  sz     [[[& 		C1X ==		(EE4==(CHHJ 		 		 		s   AA77B c                   | j                  dd      5  | j                  dvr| j                  t        d      | j	                          | j                          |rd}nd}| j                  |      sd\  }}nZ| j                         }|d   j                         d	k(  r|d
   j                  d      r
	 ddd       y	 t        t        |d            }||fcddd       S # t        t        f$ r d}Y  w xY w# 1 sw Y   yxY w)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.
        TrW  r   z,_peek_unicode() entered on non-unicode valuer  r   NNr   dr   01234567Nr  )rA   rG   r^   r   rP   r\   rS   rL   r  r   chrr  r   OverflowError)r9   is_longrU   rq   	extracteds        r;   r#  zParser._peek_unicodeR  s    [[T4[8 	$}}J.&&')W  HHJIIK::e$#- y LLN	Q<%%'3.9Q<3E3Ej3Q%)	$ 	$,!Ir 23E )#7	$ 	$0 #M2 ! E!1	$ 	$s0   BC5<CC5C2/C51C22C55C>)r:   zstr | bytesreturnNone)rl  rh   r6   )rO   type[ParseError] | Nonerl  bool)rR   r  rO   rn  rl  ro  )r   ru   )rl  ro  )rl  rm  )rl  r-   )ro   r    ry   r   rl  ro  )r~   r!   r   r!   rl  ro  )rl  ztuple[Key | None, Item] | None)T)r   ro  rl  ztuple[str, str, str])F)r   ro  rl  ztuple[Key, Item])rl  r!   )rl  r    )r   r   rl  r   )rl  r   )rl  r   )r   rh   r   r)   rl  zItem | None)rl  r%   )r5  r&   rl  r%   re  )rH  z
Key | Noner~   zTable | Nonerl  ztuple[Key, Table | AoT])rl  ztuple[bool, Key])r[  r'   r\  r!   rl  r   )rR   r  rl  rh   )rj  ro  rl  ztuple[str | None, str | None])+__name__
__module____qualname____doc__r<   propertyrA   rD   rG   rJ   rL   rP   rS   rX   rZ   r\   r   r^   rs   re   r   rc   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r'  r   ri   rF  rl   r   r#  r=  r=   r;   r4   r4   :   s6   (     ! !    #29@ %/ A&P,@"+H;*z-^*:6z;x/0	)8t3,j1f66+HZo7d FJY%Y6BY	 YvF6)&$#$r=   r4   )=
__future__r   r   r  r:   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   r2  r3  r   r   r4   r=  r=   r;   <module>r~     s    "  	  " ) # ( ' , 2 2 7 1 / 3 1 / 7 ) 2 1    " !  "  % !   !  #   $     $ ! & . 
		
{$ {$r=   