
    Iis                    4   S SK Jr  S SKrS SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  \" 5       r " S S\	5      r " S S\	5      rSS jr g)    )annotationsN)Any)Iterator)decode)_CustomDict)merge_dicts)KeyAlreadyPresent)NonExistentKey)TOMLKitError)AoT)Comment)Item)Key)Null)	SingleKey)Table)Trivia)
Whitespace)itemc                  &  ^  \ rS rSrSrS.S/S jjr\S0S j5       rS1S jr\S1S j5       r	S2S jr
S3S4S	 jjrS5S
 jrS6S jrS3S7S jjr S8       S9S jjrS:S jrS;S jrS<S jr        S=S jrS>S jrS?S jrS@S jrSAS jrS3SBS jjrS3S jrS3SCS jjrS3S jrS6S jrSDS jrSES jrSFS jrSGS jr SHU 4S jjr!SIS  jr"        SJS! jr#SAS" jr$SAS# jr%SKS$ jr&S% r'S& r(S' r)S( r*SLS) jr+SLS* jr,S\-44   SMS+ jjr.S\-44SNS, jjr/S-r0U =r1$ )O	Container   zw
A container for items within a TOMLDocument.

This class implements the `dict` interface with copy/deepcopy protocol.
c                :    0 U l         / U l        Xl        / U l        g N)_map_body_parsed_table_keys)selfparseds     7/venv/lib/python3.13/site-packages/tomlkit/container.py__init__Container.__init__$   s    <>	46
    c                    U R                   $ r   r   r   s    r!   bodyContainer.body*   s    zzr$   c                    0 nU R                  5        He  u  p#Uc  M
  [        U[        5      (       a  UR                  n[	        US5      (       a  UR                  5       nX!;   a  [        X   U5        Ma  X1U'   Mg     U$ )z#Returns as pure python object (ppo)unwrap)items
isinstancer   keyhasattrr+   r   )r   	unwrappedkvs       r!   r+   Container.unwrap.   so    	JJLDAy!S!!EEq(##HHJ~IL!, ! ! r$   c                    0 nU R                    H\  u  p#Uc  M
  UR                  nUR                  n[        U[        5      (       a  UR                  nX!;   a  [        X   U5        MX  X1U'   M^     U$ )zThe wrapped dict value)r   r.   valuer-   r   r   )r   dr1   r2   s       r!   r5   Container.valueB   sh     JJDAyAA!Y''GGvAD!$!  r$   c                (   Xl         U R                   H|  u  p#[        U[        5      (       a  UR                  R                  U5        M7  [        U[        5      (       d  MN  UR                   H  nUR                  R                  U5        M      M~     g r   )r   r   r-   r   r5   parsingr   r(   )r   r9   _r2   ts        r!   r9   Container.parsingW   s_    JJDA!U##(As##AGGOOG,  	 r$   Nc                |    Uc)  [        U[        [        45      (       d  [        S5      eSUp!U R	                  X5      $ )z
Adds an item to the current Container.

:Example:

>>> # add a key-value pair
>>> doc.add('key', 'value')
>>> # add a comment or whitespace or newline
>>> doc.add(comment('# comment'))
Nz8Non comment/whitespace items must have an associated key)r-   r   r   
ValueErrorappendr   r.   r   s      r!   addContainer.adda   sC     <cGZ#899 N  c{{3%%r$   c                   [        U[        [        45      (       a  [        S5      eUGtp4nSUl        [        [        S5      [        5       SSS9=pgU H:  nSUl        [        [        S5      [        5       SSS9n	UR                  X5        U	nM<     UR                  Ul        UR                  XR5        U R                  X65        g )Nz!Can't add a table to a dotted keyTF)is_super_table)	r-   r   r   r   _dottedr   r   r?   sep)
r   r.   r5   namemidlasttablecurrent_name	new_tables
             r!   _handle_dotted_keyContainer._handle_dotted_keyv   s    eeS\**BCCD	$5QUVVE EMiovxtTINN5,G	  77t#D r$   c                H   Sn[        U R                  5       H  u  nu  p4[        U[        5      (       a  M  [        U[        5      (       a  UR                  5       (       d  MK  [        U[        [        45      (       a  UR                  5       (       d    US-   $ UnM     US-   $ N   )		enumerater   r-   r   r   is_fixedr   r   	is_dotted)r   
last_indexir1   r2   s        r!   _get_last_index_before_table&Container._get_last_index_before_table   s    
"4::.IAv!T""!Z((!eS\**1;;==A~ J / A~r$   c                   Uc*  U R                    H  nUc   eU R                  U5        M     g XR                   ;  d"  [        U R                   U   [        5      (       d  g [        R                  X R                   U   5        g r   )r   _validate_out_of_order_tabler-   tupleOutOfOrderTableProxyvalidate)r   r.   r1   s      r!   r\   &Container._validate_out_of_order_table   si    ;YY}$}11!4  iiz$))C.%'H'H%%dIIcN;r$   c                H   [        U[        5      (       d  Ub  [        U5      n[        U[        5      (       d  [	        U5      nUb(  UR                  5       (       a  U R                  X5        U $ [        U[        [        45      (       a  UR                  c  UR                  Ul	        U R                  5       n[        U[        5      =(       d    [        U5      n[        U[        5      (       a  U R                  (       d  UR                  5         U R                   (       aY  U R                  (       dH  UR"                  R$                  (       d-  U(       d&  UR'                  5       (       d  SUR"                  l        [        U[        5      (       a  U R                   (       az  U R                  (       di  UR                  5         U(       aR  SUS   R"                  R$                  ;   d5  U(       d.  SUS   R"                  R$                  -   US   R"                  l        UGbq  X;   Gak  U R(                  U   n[        U[*        5      (       a  U R                   US      nOU R                   U   nUS   n[        U[        5      (       Ga  [        U[        [        45      (       d  [-        U5      eUR/                  5       (       aQ  [        U[        5      (       d)  [        X/U R                  S9nU R1                  XU5        U $ UR3                  U5        U $ UR5                  5       (       a3  UR/                  5       (       d  [-        U5      eUR3                  U5        U $ UR7                  5       (       Ga  UR7                  5       (       Ga_  UR'                  5       (       d.  US   R'                  5       (       d  U R8                  S   US   :w  a  UR'                  5       (       a"  U R                  (       d  U R;                  5       n	O[=        U R                   5      n	U	[=        U R                   5      :  a  U R?                  XU5        OU RA                  X5        U(       a  U RC                  U5        U $ [D        RF                  " U5      nURH                  RJ                   H  u  pUR3                  X5        M     US   U4U R                   [        U[*        5      (       a  US   '   U $ U'   U $ US   R'                  5       (       a  [M        S5      eOUR7                  5       (       d  [-        U5      eOf[        U[        5      (       aF  [        U[        5      (       d  [-        U5      eURJ                   H  nUR3                  U5        M     U $ [-        U5      e[        U[        [        45      nUb  U R                   (       a  U R                  (       d  U(       a  UR'                  5       (       a  U R;                  5       nU[=        U R                   5      :  a  U R?                  XU5      $ U R                   S   S   n[        U[        5      (       dI  [        U5      (       d9  SUR"                  RN                  ;   d  UR"                  =RN                  S-  sl'        U RA                  X5        U $ )z<Similar to :meth:`add` but both key and value must be given.
r   rR   rS   )r    z!Redefinition of an existing table)(r-   r   r   r   _itemis_multirN   r   r   rG   r.   _previous_itemr   ends_with_whitespacer   invalidate_display_namer   triviaindentrV   r   r]   r	   is_aot_element_replacer?   is_aotrD   r   rY   len
_insert_at_raw_appendr\   copydeepcopyr5   r(   r   trail)r   r.   r   r_   prevprev_wscurrent_idxcurrent_body_elementrK   idxr1   r2   rJ   is_tablerW   previous_items                   r!   r?   Container.append   s    #s##C.C$%%;D?s||~~##C.KdS%L))dii.?DI""$T:.L2Ft2LdE""<<,,.

););w%)"dC  TZZ((*TT!W^^%:%::g(,tAw~~/D/D(DQ%?s{))C.K+u--'+zz+b/'B$'+zz+'>$*1-G$&&!'E3<88+C00&&(( &gs33"%wodll"Kc8  K  t,K^^%%..00/44NN4(K++--**,,  MMOO3A6@@BB#//37KA7NN"}}t||&*&G&G&I&)$**o"S_4 $$ ? $ 0 0 ;' $ A A# F#'K #'--"8$(JJOODA#NN10 %4 2!4g> 

 $.k5#A#A !,B  $	 &1	  $-a0::<<*+NOO =,,..+C00 /D#&&!'3//+C00!YYENN5) ' ',,dUCL1O

LL ::<JC

O+z== $

2q 1}j99+M::}33999!((..$6.#r$   c                n   XR                   ;   a  U R                   U   n[        U[        5      (       d  U4nU R                  US      S   nUb   [        U[        5      (       d  [        U5      e/ UQ[        U R                  5      P7U R                   U'   O%Ub"  [        U R                  5      U R                   U'   U R                  R                  X45        UR                  5       (       a  U R                  R                  U5        Ub+  [        R                  XR                  UR                  5        g g rQ   )r   r-   r]   r   r   r	   rm   r?   rx   r   dict__setitem__r.   r5   )r   r.   r   ru   rK   s        r!   ro   Container._raw_append1  s    ))))C.Kk511*njjR1!4Gz'5'A'A',,<{<C

O<DIIcN_ _DIIcN

3+&==??##C(?T77DJJ7 r$   c                   U R                   U   S   nU R                  R                  U5      nUc  [        U5      eS [	        5       4U R                   U'   [        U[        5      (       aV  [        U5      nUR                  U5        [        U5      S:X  a  UR                  5       nO[        U5      nX0R                  U'   g [        R                  XR                  5        U R                  R                  U5        g )Nr   rS   )r   r   getr
   r   r-   r]   listremoverm   popr|   __delitem__r.   )r   rw   r.   indexs       r!   
_remove_atContainer._remove_atF  s    jjoa 		c"= %%.

3eU##KELL5zQ		e"IIcNT77+IIMM#r$   c                z   [        U[        5      (       d  [        U5      nU R                  R	                  US5      nUc  [        U5      e[        U[        5      (       a#  U H  nS[        5       4U R                  U'   M     OS[        5       4U R                  U'   [        R                  XR                  5        U $ )z Remove a key from the container.N)r-   r   r   r   r   r
   r]   r   r   r|   r   r.   )r   r.   rw   rX   s       r!   r   Container.removeY  s    #s##C.CiimmC&; %%c5!!!%tv

1   $TVnDJJsOww'r$   c                   Uc  [        S5      eX;  a  [        U5      e[        U[        5      (       d  [	        U5      n[        U[        5      (       d  [	        U5      n[        U5      nU R                  U   n[        U[        5      (       a  [        U5      nU R                  U   S   nSUR                  R                  ;  a  UR                  =R                  S-  sl        U R                  R                  5        Hs  u  pg[        U[        5      (       a@  / nU H  n	X:  a  U	S-   n	UR                  U	5        M      [        U5      U R                  U'   MZ  Xt:  d  Ma  US-   U R                  U'   Mu     US-   U R                  U'   U R                  R                  US-   X#45        Ub*  [        R!                  XR"                  UR$                  5        U $ )Nz$Key cannot be null in insert_after()rS   rb   )r>   r
   r-   r   r   rc   r   r]   maxr   rh   rr   r,   r?   insertr|   r}   r.   r5   )
r   r.   	other_keyr   rw   current_itemr1   r2   new_indicesv_s
             r!   _insert_afterContainer._insert_afterl  s    ;CDD? %%#s##C.C)S))!),IT{iinc5!!c(Czz#q)|**000%%-% IIOO%DA!U## Bx!V&&r*	   %[1		! 1u		! &  #Qw		)

#'I#45?T==$**=r$   c                :   U[        U R                  5      S-
  :  a  [        SU 35      e[        U[        5      (       d  [        U5      n[        U5      nUS:  a  U R                  US-
     S   n[        U[        5      (       dd  [        U5      (       dT  [        U[        [        45      (       d9  SUR                  R                  ;   d  UR                  =R                  S-  sl        U R                  R                  5        Hs  u  pV[        U[        5      (       a@  / nU H  nX:  a  US-   nUR!                  U5        M      [        U5      U R                  U'   MZ  Xa:  d  Ma  US-   U R                  U'   Mu     X R                  ;   a<  U R                  U   n	[        U	[        5      (       d  U	4n	/ U	QUP7U R                  U'   OXR                  U'   U R                  R#                  XU45        [$        R'                  XR(                  UR*                  5        U $ )NrS   zUnable to insert at position r   rb   )rm   r   r>   r-   r   r   rc   r   rf   r   r   rh   rr   r   r,   r]   r?   r   r|   r}   r.   r5   )
r   rw   r.   r   ry   r1   r2   r   r   ru   s
             r!   rn   Container._insert_at  s   TZZ1$$<SEBCC#s##C.CT{7 JJsQw/2M=*55'66dS%L11=//555$$**d2* IIOO%DA!U## By!V&&r*	   %[1		! 1u		! & ))))C.Kk511*n0{0C0DIIcN IIcN

#T{+ww

3r$   c                    [        U[        5      (       d  [        U5      nU R                  R	                  U5      nUc  [        U5      e[        U[        5      (       a  [        X5      $ U R                  U   S   $ )zGet an item for the given key.rS   )	r-   r   r   r   r   r
   r]   r^   r   )r   r.   rw   s      r!   r   Container.item  sg    #s##C.CiimmC ; %%c5!! (22zz#q!!r$   c                J    U R                   (       a  U R                   S   S   $ g)zGet the last item.rR   rS   Nr&   r'   s    r!   	last_itemContainer.last_item  s!    ::::b>!$$ r$   c                2   SnU R                    H  u  p#Ubi  [        U[        5      (       a  XR                  X#5      -  nM2  [        U[        5      (       a  XR                  X#5      -  nM\  XR                  X#5      -  nMq  XR                  X#5      -  nM     U$ )zRender as TOML string. )r   r-   r   _render_tabler   _render_aot_render_simple_item)r   sr1   r2   s       r!   	as_stringContainer.as_string  s    JJDA}a''++A11A3''))!//A11!77A--a33  r$   c           	        SnUR                   b  UR                   nOUR                  5       nUb  US-   U-   nUR                  5       (       a@  [        S UR                  R
                   5       5      (       a  UR                  5       (       d  Su  pgUR                  5       (       a  Su  pgSUR                  R                  ;  a  [        UR                  5      S:  a  SOSnUUR                  R                   U [        U5       U UR                  R                   [        UR                  R                  5       UR                  R                   U 3-  nO2UR                  R                  S:X  a  XBR                  R                  -  nUR                  R
                   H  u  p[        U
[         5      (       a|  U
R                  5       (       aS  U	R                  5       (       a*  UR                  5       (       d  X@R#                  X5      -  nMn  X@R#                  XUS9-  nM  X@R#                  XUS9-  nM  [        U
[$        5      (       a  X@R'                  XUS9-  nM  X@R)                  XUR                  5       (       a  UOS S9-  nM     U$ )	Nr   .c              3  p   #    U  H,  u  p[        U[        [        [        [        45      (       + v   M.     g 7fr   )r-   r   r   r   r   ).0r:   r2   s      r!   	<genexpr>*Container._render_table.<locals>.<genexpr>  s/      ,DA q5#z4"@AAA,s   46)[]z[[z]]rb   r   prefix)display_namer   rD   anyr5   r(   rV   rj   rh   rr   rm   ri   r   
comment_wscommentr-   r   r   r   r   r   )r   r.   rJ   r   cur_keyopen_closenewline_in_table_triviar1   r2   s              r!   r   Container._render_table  s>   )%%D==?D!|d*##%% !KK,,   MMOO#LE##%%) ELL$6$663u{{;Ka;OUW $ <<&&''$<.'<<**+%,,../0<<%%&*+-	C \\  D(<<&&&CKK$$DA!U####%%{{}}S]]__11!7711!t1DD--a4-@@CAs##''T':://d 0   %" 
r$   c                    UR                  5       nUb  US-   U-   nSn[        U5      nUR                   H  nXPR                  XdS9-  nM     U$ )Nr   r   r   )r   r   r(   _render_aot_table)r   r.   aotr   r   r   rJ   s          r!   r   Container._render_aot(  sZ    }}C<$&Dd|XXE))%)==C  
r$   c           	        SnU=(       d    SnSu  pVUUR                   R                   U [        U5       U UR                   R                   [        UR                   R                  5       UR                   R
                   3-  nUR                  R                   H  u  px[        U[        5      (       ag  UR                  5       (       a>  UR                  5       (       a  X0R                  Xx5      -  nMY  X0R                  XxUS9-  nMm  X0R                  XxUS9-  nM  [        U[        5      (       a  X0R                  XxUS9-  nM  X0R                  Xx5      -  nM     U$ )Nr   r   r   )rh   ri   r   r   r   rr   r5   r(   r-   r   rD   rV   r   r   r   r   )	r   rJ   r   r   r   r   r   r1   r2   s	            r!   r   Container._render_aot_table4  s?   |!||""#gd|ng||&&'ell**+,||!!"$	
 KK$$DA!U####%%{{}}11!7711!t1DD--a4-@@CAs##''T':://55 % 
r$   c                   Uc  UR                  5       $ UR                  5       nUb  US-   U-   nUR                  R                   [        U5       UR                   [        UR                  5       5       UR                  R
                   [        UR                  R                  5       UR                  R                   3$ )Nr   )r   rh   ri   r   rF   r   r   rr   )r   r.   r   r   r   s        r!   r   Container._render_simple_itemT  s    ;>>##}}C<$&D {{!!"d|nwwidnn&'({{%%&dkk))*+{{  !#	
r$   c                ,    [         R                  U 5      $ r   r|   __len__r'   s    r!   r   Container.__len__f      ||D!!r$   c                >    [        [        R                  U 5      5      $ r   iterr|   keysr'   s    r!   __iter__Container.__iter__i      DIIdO$$r$   c                    U R                  U5      n[        U[        5      (       a!  UR                  5       (       a  UR                  $ U$ r   )r   r-   r   
is_booleanr5   r@   s      r!   __getitem__Container.__getitem__m  s7    yy~dD!!doo&7&7::r$   c                   ^ Tb=  TU ;   a7  [        [        U4S jU R                  5      5      nU R                  UTU5        g U R	                  TU5        g )Nc                   > U T:H  $ r    )r1   r.   s    r!   <lambda>'Container.__setitem__.<locals>.<lambda>v  s	    AHr$   )nextfilterr   rk   r?   )r   r.   r5   old_keys    `  r!   r}   Container.__setitem__t  sB    ?sd{6"4dii@AGMM'3.KKU#r$   c                &    U R                  U5        g r   )r   r   r.   s     r!   r   Container.__delitem__{  s    Cr$   c                &   > [         TU ]  XS9  X   $ N)defaultsuper
setdefaultr   r.   r   	__class__s      r!   r   Container.setdefault~      30yr$   c                    [        U[        5      (       d  [        U5      nU R                  R	                  U5      nUc  [        U5      eU R                  XBU5        g r   )r-   r   r   r   r   r
   _replace_at)r   r.   new_keyr5   rw   s        r!   rk   Container._replace  sJ    #s##C.CiimmC ; %%u-r$   c                   [        U5      n[        U[        5      (       a*  USS   H  nS [        5       4U R                  U'   M     US   nU R                  U   u  pV[        U[
        5      (       dK  [        U[        [        45      [        U[        [        45      :w  d  X%R                  :w  a  [        U5      nOUnU R                  U	 XR                  U'   X%:w  a  [        R                  X5        [        U[        [        45      [        U[        [        45      :w  a  U R                  U5        [        U[        U R                  5      5       HE  n[        U R                  U   S   [        [        45      (       d  M0  U R!                  XBU5        Un  GO   SnU R#                  X#5        O[        U[$        [        45      (       d  UR&                  R(                  UR&                  l        UR&                  R*                  =(       d    UR&                  R*                  UR&                  l        UR&                  R,                  =(       d    UR&                  R,                  UR&                  l        UR&                  R.                  UR&                  l        X#4U R                  U'   [1        US5      (       a  UR3                  5         [        U[        5      (       Ga  U R5                  5       u  pxUS:  a  UOUn[7        U5      n	[        U[        5      =(       aG    UR8                  R:                  =(       a*    [        UR8                  R:                  S   S   [$        5      n
X:  =(       a#    [        U R                  US-      S   [$        5      nX:  d  U
(       a)  U(       d"  U	(       d  UR#                  S [%        S5      5        [        R=                  XR                  UR8                  5        g g )NrS   r   rR   rg   rb   )rc   r-   r]   r   r   r   r   r   r.   r   r   r|   r   r   rangerm   rn   r?   r   rh   ri   r   r   rr   r/   rg   _previous_item_with_indexrf   r5   r(   r}   )r   rw   r   r5   rX   r1   r2   rI   r:   has_wsreplace_has_wsnext_wss               r!   r   Container._replace_at  s    ec5!!W!%tv

1  a&Czz#'3''53,/:a#u3NNee##G,IIaL 		'<T%ec5\*jS%L.IIKKN3DJJ0djjmA.e==OOA6C	 1 G+ ej#%677&'hhoo#*/,,*A*A*XQXXEXEX'',||';';'Oqxx?O?O$%&XX^^"&.DJJsO5344))+eU##
 446GD'$sC)%0F1e$ @GGLL@qww||B/2J? 
 jSZ

370CA0F
%SG
nw&T:d#34T;;<# $r$   c                ,    [        U R                  5      $ r   )strr5   r'   s    r!   __str__Container.__str__  s    4::r$   c                ,    [        U R                  5      $ r   )reprr5   r'   s    r!   __repr__Container.__repr__  s    DJJr$   c                V    [        U[        5      (       d  [        $ U R                  U:H  $ r   )r-   r|   NotImplementedr5   )r   others     r!   __eq__Container.__eq__  s$    %&&!!zzU""r$   c                    U R                   4$ r   )r   r   protocols     r!   	_getstateContainer._getstate  s    r$   c                $    U R                  S5      $ )N   )__reduce_ex__r'   s    r!   
__reduce__Container.__reduce__  s    !!!$$r$   c                    U R                   U R                  U5      U R                  U R                  U R                  U R
                  44$ r   )r   r   r   r   r   r   r   s     r!   r  Container.__reduce_ex__  s=    NNNN8$YY

DLL$2B2BC
 	
r$   c                    US   U l         US   U l        US   U l        US   U l        U R                   H4  u  p#Uc  M
  [        R                  XR                  UR                  5        M6     g )Nr   rS   r     )r   r   r   r   r|   r}   r.   r5   )r   stater.   r   s       r!   __setstate__Container.__setstate__  s\    !H	1X
Qx 8IC  ww

; $r$   c                .    [         R                   " U 5      $ r   )rp   r'   s    r!   rp   Container.copy  s    yyr$   c                ,   U R                  U R                  5      n[        R                  U 5       H  u  p#[        R	                  XU5        M     U=R
                  U R                  -  sl        UR                  R                  U R                  5        U$ r   )	r   r   r|   r,   r}   r   r(   r   update)r   cr1   r2   s       r!   __copy__Container.__copy__  sf    NN4<<(JJt$DAQ1% % 	
499	dii r$   c                    Ub  U[        U R                  5      :  a  [        U R                  5      n[        US-
  SS5       H*  nU R                  U   S   n[        XB5      (       a  M'  X44s  $    g)z5Find the immediate previous item before index ``idx``NrS   rR   )rm   r   r   r-   )r   rw   ignorerX   r2   s        r!   r   #Container._previous_item_with_index   se     ;#DJJ/djj/CsQwB'A

1b!Aa((t ( r$   c                @    U R                  X5      nU(       a  US   $ S$ )zkFind the immediate previous item before index ``idx``.
If ``idx`` is not given, the last item is returned.
rR   N)r   )r   rw   r  rs   s       r!   re   Container._previous_item  s%     --c:tBx)T)r$   )r   r   r   r   )F)r    boolreturnNone)r  zlist[tuple[Key | None, Item]])r  zdict[str, Any])r9   r  r  r  r   )r.   zKey | Item | strr   Item | Noner  r   )r.   r   r5   r   r  r  r  int)r.   zSingleKey | Noner  r  )T)r.   zKey | str | Noner   r   r_   r  r  r   )r.   z
Key | Noner   r   r  r  )rw   r  r  r  )r.   	Key | strr  r   )r.   r   r   r   r   r   r  r   )rw   r  r.   r   r   r   r  r   )r.   r   r  r   )r  r  r  r   )r.   r   rJ   r   r   
str | Noner  r   )rJ   r   r   r"  r  r   r  zIterator[str])r.   r   r  zItem | Container)r.   r   r5   r   r  r  r.   r   r  r  r.   r   r   r   r  r   )r.   r   r   r   r5   r   r  r  )rw   zint | tuple[int]r   r   r5   r   r  r  )r   r|   r  r  )r  r   )rw   
int | Noner  ztuple[int, Item] | None)rw   r&  r  r  )2__name__
__module____qualname____firstlineno____doc__r"   propertyr(   r+   r5   r9   rA   rN   rY   r\   r?   ro   r   r   r   rn   r   r   r   r   r   r   r   r   r   r   r}   r   r   rk   r   r   r   r   r   r  r  r  rp   r  r   r   re   __static_attributes____classcell__r   s   @r!   r   r      s     (  (-&*$< CGO#O+/O;?O	Ob8*&&--)2-:=-	-^,\""%
 7r
@
$"%$.B=#B=.7B=@DB=	B=H #%
< !%dW

	 
 04TG * *r$   r   c                     ^  \ rS rSr\SS j5       rSS jrSS jr\S 5       r	SS jr
SS jrSS jrSS	 jrSS
 jrSS jrSU 4S jjrSrU =r$ )r^   i  c                    [        S5      nU HZ  nU R                  U   u  pE[        U[        5      (       d  M+  UR                  R
                   H  u  pgUR                  XgSS9  M     M\     UR                  5         g)z3Validate out of order tables in the given containerTF)r_   N)r   r   r-   r   r5   r(   r?   r\   )	containerindicestemp_containerrX   r:   r   r1   r2   s           r!   r_   OutOfOrderTableProxy.validate  si     #4Aooa(GA$&& JJOODA"))!)? ,	  	335r$   c                p   Xl         [        S5      U l        / U l        0 U l        U H  nU R                   R
                  U   u  pE[        U[        5      (       d  M5  U R                  R                  U5        [        U R                  5      S-
  nUR                  R                   Hp  u  pxU R                  R                  Xx5        U R                  R                  U/ 5      R                  U5        Uc  MP  [        R                  XR                   U5        Mr     M     U R                  R#                  5         g )NTrS   )
_containerr   _internal_container_tables_tables_mapr   r-   r   r?   rm   r5   r(   ro   r   r|   r}   r.   r\   )	r   r2  r3  rX   r:   r   	table_idxr1   r2   s	            r!   r"   OutOfOrderTableProxy.__init__#  s    ##,T? Aoo++A.GA$&&##D)-1	 JJOODA,,88>$$//26==iH}((uua8	 ,  	  ==?r$   c                6    U R                   R                  5       $ r   )r8  r+   r'   s    r!   r+   OutOfOrderTableProxy.unwrap7  s    ''..00r$   c                .    U R                   R                  $ r   )r8  r5   r'   s    r!   r5   OutOfOrderTableProxy.value:  s    ''---r$   c                T    XR                   ;  a  [        U5      eU R                   U   $ r   )r8  r
   r   s     r!   r    OutOfOrderTableProxy.__getitem__>  s*    ... %%'',,r$   c                   XR                   ;   ar  U R                   U   n[        U5      S:  a?  U R                  UR                  5          nU R	                  U5        [        U5      S:  a  M?  X R                  US      U'   O3U R                  (       a  U R                  S   nX$U'   OX R
                  U'   X R                  U'   Ub  [        R                  XU5        g g )NrS   r   )	r:  rm   r9  r   _remove_tabler7  r8  r|   r}   )r   r.   r   r3  rJ   s        r!   r}    OutOfOrderTableProxy.__setitem__D  s    """&&s+Gg,"W[[]3""5) g," -1LL$S)\\LLOE#J#'OOC (,  %?T- r$   c                    U R                   R                  U5        [        U R                  R                  5       H*  u  p#US   UL d  M  U R                  R                  U5          g   g)z&Remove table from the parent containerrS   N)r9  r   rT   r7  r   r   )r   rJ   rw   r   s       r!   rD  "OutOfOrderTableProxy._remove_tableV  sP    E""4??#8#89ICAw%**3/ :r$   c                h   XR                   ;  a  [        U5      e[        U R                   U   5       HI  nU R                  U   nX1	 U(       a  M  [	        U R                  5      S:  d  M8  U R                  U5        MK     U R                   U	 U R                  U	 Ub  [        R                  X5        g g )NrS   )	r:  r
   reversedr9  rm   rD  r8  r|   r   )r   r.   rX   rJ   s       r!   r    OutOfOrderTableProxy.__delitem__^  s    &&& %%$**3/0ALLOE
5S.2""5)	 1 S!$$S)?T' r$   c                >    [        [        R                  U 5      5      $ r   r   r'   s    r!   r   OutOfOrderTableProxy.__iter__m  r   r$   c                ,    [         R                  U 5      $ r   r   r'   s    r!   r   OutOfOrderTableProxy.__len__p  r   r$   c                &   > [         TU ]  XS9  X   $ r   r   r   s      r!   r   OutOfOrderTableProxy.setdefaults  r   r$   )r7  r8  r9  r:  )r2  r   r3  ztuple[int, ...]r  r  r!  )r.   r   r  r   )r.   r   r   r   r  r  )rJ   r   r  r  r$  r#  r  r%  )r'  r(  r)  r*  staticmethodr_   r"   r+   r,  r5   r   r}   rD  r   r   r   r   r-  r.  r/  s   @r!   r^   r^     s\    6 6@(1 . .-.$(%" r$   r^   c                   [        U [        5      =(       a(    [        U R                  R                  5       [        5      =(       d?    [        U [
        5      =(       a(    [        U 5      S:  =(       a    [        U S   [        5      $ )ziReturns ``True`` if the given item ``it`` is a ``Table`` or ``AoT`` object
ending with a ``Whitespace``.
r   rR   )r-   r   r5   re   r   r   rm   )its    r!   rf   rf   x  sZ    
 	2uS*RXX-D-D-F
"SR
R

P#b'A+
P*RVZ2PRr$   )rS  r   r  r  )!
__future__r   rp   typingr   r   tomlkit._compatr   tomlkit._typesr   tomlkit._utilsr   tomlkit.exceptionsr	   r
   r   tomlkit.itemsr   r   r   r   r   r   r   r   r   r   rc   object_NOT_SETr   r^   rf   r   r$   r!   <module>r]     sn    "    " & & 0 - +  !    #    $ ' 8t* t*na; aHRr$   