
    v;3hs                    2   d dl m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  e       Z G d de	      Z G d de	      ZddZ y)    )annotationsN)Any)Iterator)decode)_CustomDict)merge_dicts)KeyAlreadyPresent)NonExistentKey)TOMLKitError)AoT)Comment)Item)Key)Null)	SingleKey)Table)Trivia)
Whitespace)itemc                      e Zd ZdZd,d-dZed.d       Zd/dZed/d       Zd0dZ	d1d2dZ
d3d	Zd4d
Zd1d5dZ	 d6	 	 	 	 	 	 	 d7dZd8dZd9dZd:dZ	 	 	 	 	 	 	 	 d;dZd<dZd=dZd>dZd?dZd1d@dZd1dZd1dAdZd1dZd4dZdBdZdCdZdDdZdEdZdF fdZ dGdZ!	 	 	 	 	 	 	 	 dHd Z"d?d!Z#d?d"Z$dId#Z%d$ Z&d% Z'd& Z(d' Z)dJd(Z*dJd)Z+de,ff	 	 	 dKd*Z-de,ffdLd+Z. xZ/S )M	Containerz
    A container for items within a TOMLDocument.

    This class implements the `dict` interface with copy/deepcopy protocol.
    c                <    i | _         g | _        || _        g | _        y N)_map_body_parsed_table_keys)selfparseds     Q/var/www/html/audio-gradio/venv/lib/python3.12/site-packages/tomlkit/container.py__init__zContainer.__init__$   s    <>	46
    c                    | j                   S r   r   r   s    r    bodyzContainer.body*   s    zzr"   c                    i }| j                         D ]Y  \  }}|	t        |t              r|j                  }t	        |d      r|j                         }||v rt        ||   |       U|||<   [ |S )z#Returns as pure python object (ppo)unwrap)items
isinstancer   keyhasattrr(   r   )r   	unwrappedkvs       r    r(   zContainer.unwrap.   sv    	JJL 	!DAqy!S!EEq(#HHJI~IaL!, 	!	! r"   c                    i }| j                   D ]U  \  }}|	|j                  }|j                  }t        |t              r|j                  }||v rt        ||   |       Q|||<   W |S )zThe wrapped dict value)r   r+   valuer*   r   r   )r   dr.   r/   s       r    r1   zContainer.valueB   sr     JJ 	DAqyAA!Y'GGAvAaD!$!	 r"   c                   || _         | j                  D ]n  \  }}t        |t              r|j                  j                  |       2t        |t              sC|j                  D ]  }|j                  j                  |        p y r   )r   r   r*   r   r1   parsingr   r&   )r   r4   _r/   ts        r    r4   zContainer.parsingW   sg    JJ 	-DAq!U#(As# -AGGOOG,-		-r"   Nc                t    |%t        |t        t        f      st        d      d|}}| j	                  ||      S )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    addzContainer.adda   sD     <cGZ#89 N  cC{{3%%r"   c                   t        |t        t        f      rt        d      |^}}}d|_        t        t        d      t               dd      x}}|D ]=  }d|_        t        t        d      t               dd      }	|j                  ||	       |	}? |j                  |_        |j                  ||       | j                  ||       y )Nz!Can't add a table to a dotted keyTF)is_super_table)	r*   r   r   r   _dottedr   r   r9   sep)
r   r+   r1   namemidlasttablecurrent_name	new_tables
             r    _handle_dotted_keyzContainer._handle_dotted_keyv   s    eeS\*BCCsD	$5QUVV 	 E EMiovxtTINN5),G		  77tU#D% r"   c                   d}t        | j                        D ]h  \  }\  }}t        |t              rt        |t              r|j                         s;t        |t        t        f      r|j                         s |dz   S |}j |dz   S N   )		enumerater   r*   r   r   is_fixedr   r   	is_dotted)r   
last_indexir.   r/   s        r    _get_last_index_before_tablez&Container._get_last_index_before_table   s    
"4::. 		IAv1!T"!Z(!eS\*1;;=A~ J		 A~r"   c                    |'| j                   D ]  }|J | j                  |        y || j                   vst        | j                   |   t              sy t        j                  | | j                   |          y r   )r   _validate_out_of_order_tabler*   tupleOutOfOrderTableProxyvalidate)r   r+   r.   s      r    rS   z&Container._validate_out_of_order_table   so    ;YY 5}$}11!45 diiz$))C.%'H%%dDIIcN;r"   c                   t        |t              s|t        |      }t        |t              st	        |      }|$|j                         r| j                  ||       | S t        |t        t        f      r|j                  |j                  |_	        | j                         }t        |t              xs t        |      }t        |t              rm| j                  s|j                          | j                   rE| j                  s9|j"                  j$                  s#|s!|j'                         sd|j"                  _        t        |t              ru| j                   ri| j                  s]|j                          |rKd|d   j"                  j$                  v s0|s.d|d   j"                  j$                  z   |d   j"                  _        ||| v r| j(                  |   }t        |t*              r| j                   |d      }n| j                   |   }|d   }t        |t              r[t        |t        t        f      st-        |      |j/                         rQt        |t              s.t        ||g| j                        }| j1                  |||       | S |j3                  |       | S |j5                         r.|j/                         st-        |      |j3                  |       | S |j7                         ro|j7                         r@|j'                         s(|d   j'                         s| j8                  d   |d   k7  r|j'                         r| j                  s| j;                         }	nt=        | j                         }	|	t=        | j                         k  r| j?                  |	||       n| jA                  ||       |r| jC                  |       | S tE        jF                  |      }|jH                  jJ                  D ]  \  }
}|j3                  |
|        |d   |f| j                   t        |t*              r|d   <   | S |<   | S |d   j'                         rtM        d      |j7                         set-        |      t        |t              r?t        |t              st-        |      |jJ                  D ]  }|j3                  |        | S t-        |      t        |t        t        f      }|| j                   r| j                  s|r|j'                         r| j;                         }|t=        | j                         k  r| j?                  |||      S | j                   d   d   }t        |t              sBt        |      s7d|j"                  jN                  v s|j"                  xjN                  dz  c_'        | jA                  ||       | S )z<Similar to :meth:`add` but both key and value must be given.
r   rJ   rK   )r   z!Redefinition of an existing table)(r*   r   r   r   _itemis_multirG   r   r   r@   r+   _previous_itemr   ends_with_whitespacer   invalidate_display_namer   triviaindentrN   r   rT   r	   is_aot_element_replacer9   is_aotr=   r   rQ   len
_insert_at_raw_appendrS   copydeepcopyr1   r&   r   trail)r   r+   r   rV   prevprev_wscurrent_idxcurrent_body_elementrD   idxr.   r/   rC   is_tablerO   previous_items                   r    r9   z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%?sd{))C.K+u-'+zz+b/'B$'+zz+'>$*1-G$&!'E3<8+C00&&( &gs3"%wodll"Kc38  K  t,K^^%..0/44NN4(K++-**,  MMO3A6@@B#//37KA7NN"}}t||&*&G&G&I&)$**o"S_4 $S$ ? $ 0 0d ;' $ A A# F#'K #'--"8$(JJOO 1DAq#NN1a01 2!4g> 

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

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

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

2q 1}j9+M:}33999!((..$6.d#r"   c                L   || j                   v r|| j                   |   }t        |t              s|f}| j                  |d      d   }|t        |t              st        |      g |t        | j                        | j                   |<   n$|"t        | j                        | j                   |<   | j                  j                  ||f       |j                         r| j                  j                  |       |,t        j                  | |j                  |j                         y y rI   )r   r*   rT   r   r   r	   rc   r9   rn   r   dict__setitem__r+   r1   )r   r+   r   rk   rD   s        r    re   zContainer._raw_append1  s    $))))C.Kk51*njjR1!4Gz'5'A',,<{<C

O<DIIcN_ _DIIcN

3+&==?##C(?T377DJJ7 r"   c                   | j                   |   d   }| j                  j                  |      }|t        |      d t	               f| j                   |<   t        |t              rVt        |      }|j                  |       t        |      dk(  r|j                         }nt        |      }|| j                  |<   y t        j                  | |j                         | j                  j                  |       y )Nr   rK   )r   r   getr
   r   r*   rT   listremoverc   poprq   __delitem__r+   )r   rm   r+   indexs       r    
_remove_atzContainer._remove_atF  s    jjoa 		c"= %%.

3eU#KELL5zQ		e"DIIcNT377+IIMM#r"   c                b   t        |t              st        |      }| j                  j	                  |d      }|t        |      t        |t              r!|D ]  }dt               f| j                  |<    ndt               f| j                  |<   t        j                  | |j                         | S )z Remove a key from the container.N)r*   r   r   r   rw   r
   rT   r   r   rq   rx   r+   )r   r+   rm   rP   s       r    rv   zContainer.removeY  s    #s#C.CiimmC&; %%c5! /!%tv

1/  $TVnDJJsOsww'r"   c                t   |t        d      || vrt        |      t        |t              st	        |      }t        |t              st	        |      }t        |      }| j                  |   }t        |t              rt        |      }| j                  |   d   }d|j                  j                  vr|j                  xj                  dz  c_        | j                  j                         D ]j  \  }}t        |t              r=g }|D ]  }	|	|kD  r|	dz   }	|j                  |	        t        |      | j                  |<   S||kD  sY|dz   | j                  |<   l |dz   | j                  |<   | j                  j                  |dz   ||f       |+t        j!                  | |j"                  |j$                         | S )Nz$Key cannot be null in insert_after()rK   rX   )r8   r
   r*   r   r   rY   r   rT   maxr   r^   rh   r)   r9   insertrq   rr   r+   r1   )
r   r+   	other_keyr   rm   current_itemr.   r/   new_indicesv_s
             r    _insert_afterzContainer._insert_afterl  s    ;CDDd? %%#s#C.C)S)!),IT{iinc5!c(Czz#q)|**000%%-% IIOO% 	%DAq!U#  +BCx!V&&r*	+  %[1		!S 1u		!	%  #Qw		)

#'It#45?T9==$**=r"   c                   |t        | j                        dz
  kD  rt        d|       t        |t              st        |      }t        |      }|dkD  r}| j                  |dz
     d   }t        |t              sXt        |      sMt        |t        t        f      s7d|j                  j                  v s|j                  xj                  dz  c_        | j                  j                         D ]j  \  }}t        |t              r=g }|D ]  }||k\  r|dz   }|j!                  |        t        |      | j                  |<   S||k\  sY|dz   | j                  |<   l || j                  v r7| j                  |   }	t        |	t              s|	f}	g |	|| j                  |<   n|| j                  |<   | j                  j#                  |||f       t$        j'                  | |j(                  |j*                         | S )NrK   zUnable to insert at position r   rX   )rc   r   r8   r*   r   r   rY   r   r\   r   r   r^   rh   r   r)   rT   r9   r~   rq   rr   r+   r1   )
r   rm   r+   r   ro   r.   r/   r   r   rk   s
             r    rd   zContainer._insert_at  s   TZZ1$$<SEBCC#s#C.CT{7 JJsQw/2M=*5'6dS%L1=//555$$**d2* IIOO% 	%DAq!U#  +BSy!V&&r*	+  %[1		!c 1u		!	% $))))C.Kk51*n0{0C0DIIcN DIIcN

#T{+sww

3r"   c                    t        |t              st        |      }| j                  j	                  |      }|t        |      t        |t              rt        | |      S | j                  |   d   S )zGet an item for the given key.rK   )	r*   r   r   r   rt   r
   rT   rU   r   )r   r+   rm   s      r    r   zContainer.item  sc    #s#C.CiimmC ; %%c5! (c22zz#q!!r"   c                @    | j                   r| j                   d   d   S y)zGet the last item.rJ   rK   Nr$   r%   s    r    	last_itemzContainer.last_item  s!    ::::b>!$$ r"   c                $   d}| j                   D ]~  \  }}|bt        |t              r|| j                  ||      z  }.t        |t              r|| j                  ||      z  }T|| j                  ||      z  }j|| j                  ||      z  } |S )zRender as TOML string. )r   r*   r   _render_tabler   _render_aot_render_simple_item)r   sr.   r/   s       r    	as_stringzContainer.as_string  s    JJ 		4DAq}a'++Aq11A3'))!Q//A11!Q77AT--a33		4 r"   c           	        d}|j                   |j                   }n|j                         }||dz   |z   }|j                         r6t        d |j                  j
                  D              r|j                         sd\  }}|j                         rd\  }}d|j                  j                  vrt        |j                        dkD  rdnd}||j                  j                   | t        |       | |j                  j                   t        |j                  j                         |j                  j                   | z  }n2|j                  j                  dk(  r||j                  j                  z  }|j                  j
                  D ]  \  }	}
t        |
t               rv|
j                         rN|	j                         r&|j                         s|| j#                  |	|
      z  }\|| j#                  |	|
|      z  }t|| j#                  |	|
|      z  }t        |
t$              r|| j'                  |	|
|      z  }|| j)                  |	|
|j                         r|nd       z  } |S )	Nr   .c              3  d   K   | ](  \  }}t        |t        t        t        t        f        * y wr   )r*   r   r   r   r   ).0r5   r/   s      r    	<genexpr>z*Container._render_table.<locals>.<genexpr>  s/      Aq q5#z4"@AAs   .0)[]z[[z]]rX   r   prefix)display_namer   r=   anyr1   r&   rN   r`   r^   rh   rc   r_   r   
comment_wscommentr*   r   r   r   r   r   )r   r+   rC   r   cur_keyopen_closenewline_in_table_triviar.   r/   s              r    r   zContainer._render_table  sC   )%%D==?D!|d*##% !KK,,  MMO#LE5##%)u ELL$6$663u{{;Ka;OUW $ <<&&''$<.'<<**+%,,../0<<%%&*+-	C \\  D(5<<&&&CKK$$ 	DAq!U###%{{}S]]_t11!Q77t11!Qt1DD4--a4-@@CAs#t''1T'::t//qd 0  	" 
r"   c                    |j                         }||dz   |z   }d}t        |      }|j                  D ]  }|| j                  ||      z  } |S )Nr   r   r   )r   r   r&   _render_aot_table)r   r+   aotr   r   r   rC   s          r    r   zContainer._render_aot(  sc    }}C<$&Dd|XX 	>E4))%)==C	> 
r"   c           	        d}|xs d}d\  }}||j                   j                   | t        |       | |j                   j                   t        |j                   j                         |j                   j
                   z  }|j                  j                  D ]  \  }}t        |t              rf|j                         r>|j                         r|| j                  ||      z  }L|| j                  |||      z  }d|| j                  |||      z  }|t        |t              r|| j                  |||      z  }|| j                  ||      z  } |S )Nr   r   r   )r^   r_   r   r   r   rh   r1   r&   r*   r   r=   rN   r   r   r   r   )	r   rC   r   r   r   r   r   r.   r/   s	            r    r   zContainer._render_aot_table4  sQ   |!u||""#gd|ng||&&'ell**+,||!!"$	
 KK$$ 	6DAq!U###%{{}t11!Q77t11!Qt1DD4--a4-@@CAs#t''1T'::t//155	6 
r"   c                   ||j                         S |j                         }||dz   |z   }|j                  j                   t        |       |j                   t        |j                                |j                  j
                   t        |j                  j                         |j                  j                   S )Nr   )r   r^   r_   r   r?   r   r   rh   )r   r+   r   r   r   s        r    r   zContainer._render_simple_itemT  s    ;>>##}}C<$&D {{!!"d|nwwidnn&'({{%%&dkk))*+{{  !#	
r"   c                ,    t         j                  |       S r   rq   __len__r%   s    r    r   zContainer.__len__f      ||D!!r"   c                >    t        t        j                  |             S r   iterrq   keysr%   s    r    __iter__zContainer.__iter__i      DIIdO$$r"   c                    | j                  |      }t        |t              r|j                         r|j                  S |S r   )r   r*   r   
is_booleanr1   r:   s      r    __getitem__zContainer.__getitem__m  s1    yy~dD!doo&7::r"   c                    :| v r6t        t        fd| j                              }| j                  ||       y | j	                  |       y )Nc                    | k(  S r    )r.   r+   s    r    <lambda>z'Container.__setitem__.<locals>.<lambda>v  s    AH r"   )nextfilterr   ra   r9   )r   r+   r1   old_keys    `  r    rr   zContainer.__setitem__t  sB    ?sd{6"4dii@AGMM'3.KKU#r"   c                &    | j                  |       y r   )rv   r   r+   s     r    rx   zContainer.__delitem__{  s    Cr"   c                0    t         |   ||       | |   S N)defaultsuper
setdefaultr   r+   r   	__class__s      r    r   zContainer.setdefault~      30Cyr"   c                    t        |t              st        |      }| j                  j	                  |      }|t        |      | j                  |||       y r   )r*   r   r   r   rt   r
   _replace_at)r   r+   new_keyr1   rm   s        r    ra   zContainer._replace  sI    #s#C.CiimmC ; %%gu-r"   c                V   t        |      }t        |t              r(|dd  D ]  }d t               f| j                  |<    |d   }| j                  |   \  }}t        |t
              sJt        |t        t        f      t        |t        t        f      k7  s||j                  k7  rt        |      }n|}| j                  |= || j                  |<   ||k7  rt        j                  | |       t        |t        t        f      t        |t        t        f      k7  r| j                  |       t        |t        | j                              D ]@  }t        | j                  |   d   t        t        f      s*| j!                  |||       |} n d}| j#                  ||       nt        |t$        t        f      s|j&                  j(                  |j&                  _        |j&                  j*                  xs |j&                  j*                  |j&                  _        |j&                  j,                  xs |j&                  j,                  |j&                  _        |j&                  j.                  |j&                  _        ||f| j                  |<   t1        |d      r|j3                          t        |t              r| j5                         \  }}|dk  r|n|}t7        |      }	t        |t              xrB |j8                  j:                  xr* t        |j8                  j:                  d   d   t$              }
||k  xr# t        | j                  |dz      d   t$              }||k  s|
r|s|	s|j#                  d t%        d             t        j=                  | |j                  |j8                         y y )NrK   r   rJ   r]   rX   )rY   r*   rT   r   r   r   r   r   r+   r   r   rq   rx   rv   rangerc   rd   r9   r   r^   r_   r   r   rh   r,   r]   _previous_item_with_indexr\   r1   r&   rr   )r   rm   r   r1   rP   r.   r/   rB   r5   has_wsreplace_has_wsnext_wss               r    r   zContainer._replace_at  s    ec5!W /!%tv

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

370CA0F
%SGd
nw&T:d#34T7;;<# $r"   c                ,    t        | j                        S r   )strr1   r%   s    r    __str__zContainer.__str__  s    4::r"   c                ,    t        | j                        S r   )reprr1   r%   s    r    __repr__zContainer.__repr__  s    DJJr"   c                L    t        |t              st        S | j                  |k(  S r   )r*   rq   NotImplementedr1   )r   others     r    __eq__zContainer.__eq__  s!    %&!!zzU""r"   c                    | j                   fS r   )r   r   protocols     r    	_getstatezContainer._getstate  s    r"   c                $    | j                  d      S )N   )__reduce_ex__r%   s    r    
__reduce__zContainer.__reduce__  s    !!!$$r"   c                    | j                   | j                  |      | j                  | j                  | j                  | j
                  ffS r   )r   r   r   r   r   r   r   s     r    r   zContainer.__reduce_ex__  s=    NNNN8$YY

DLL$2B2BC
 	
r"   c                    |d   | _         |d   | _        |d   | _        |d   | _        | j                  D ]3  \  }}|	t        j                  | |j                  |j                         5 y )Nr   rK   r      )r   r   r   r   rq   rr   r+   r1   )r   stater+   r   s       r    __setstate__zContainer.__setstate__  se    !H	1X
Qx 8 	<IC  sww

;	<r"   c                ,    t        j                   |       S r   )rf   r%   s    r    rf   zContainer.copy  s    yyr"   c                ,   | j                  | j                        }t        j                  |       D ]  \  }}t        j	                  |||        |xj
                  | j                  z  c_        |j                  j                  | j                         |S r   )	r   r   rq   r)   rr   r   r&   r   update)r   cr.   r/   s       r    __copy__zContainer.__copy__  so    NN4<<(JJt$ 	&DAqQ1%	& 	
499	dii r"   c                    ||t        | j                        kD  rt        | j                        }t        |dz
  dd      D ]&  }| j                  |   d   }t        ||      r"||fc S  y)z5Find the immediate previous item before index ``idx``NrK   rJ   )rc   r   r   r*   )r   rm   ignorerP   r/   s        r    r   z#Container._previous_item_with_index   sk     ;#DJJ/djj/CsQwB' 	A

1b!Aa(!t	 r"   c                8    | j                  ||      }|r|d   S dS )z{Find the immediate previous item before index ``idx``.
        If ``idx`` is not given, the last item is returned.
        rJ   N)r   )r   rm   r   ri   s       r    r[   zContainer._previous_item  s'     --c6:tBx)T)r"   )F)r   boolreturnNone)r   zlist[tuple[Key | None, Item]])r   zdict[str, Any])r4   r   r   r   r   )r+   zKey | Item | strr   Item | Noner   r   )r+   r   r1   r   r   r   r   int)r+   zSingleKey | Noner   r   )T)r+   zKey | str | Noner   r   rV   r   r   r   )r+   z
Key | Noner   r   r   r   )rm   r   r   r   )r+   	Key | strr   r   )r+   r   r   r   r   r   r   r   )rm   r   r+   r   r   r   r   r   )r+   r   r   r   )r   r   r   r   )r+   r   rC   r   r   
str | Noner   r   )rC   r   r   r   r   r   r   zIterator[str])r+   r   r   zItem | Container)r+   r   r1   r   r   r   r+   r   r   r   r+   r   r   r   r   r   )r+   r   r   r   r1   r   r   r   )rm   zint | tuple[int]r   r   r1   r   r   r   )r   rq   r   r   )r   r   )rm   
int | Noner   ztuple[int, Item] | None)rm   r   r   r   )0__name__
__module____qualname____doc__r!   propertyr&   r(   r1   r4   r;   rG   rQ   rS   r9   re   rz   rv   r   rd   r   r   r   r   r   r   r   r   r   r   rr   rx   r   ra   r   r   r   r   r   r   r   r   rf   r   r   r   r[   __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                       e Zd Zedd       ZddZddZed        ZddZ	ddZ
ddZddZdd	Zdd
Zd fdZ xZS )rU   c                    t        d      }|D ]W  }| j                  |   \  }}t        |t              s&|j                  j
                  D ]  \  }}|j                  ||d        Y |j                          y)z3Validate out of order tables in the given containerTF)rV   N)r   r   r*   r   r1   r&   r9   rS   )	containerindicestemp_containerrP   r5   r   r.   r/   s           r    rV   zOutOfOrderTableProxy.validate  sz     #4 	@Aooa(GAt$& JJOO @DAq"))!Q)?@		@ 	335r"   c                b   || _         t        d      | _        g | _        i | _        |D ]  }| j                   j
                  |   \  }}t        |t              s0| j                  j                  |       t        | j                        dz
  }|j                  j                  D ]p  \  }}| j                  j                  ||       | j                  j                  |g       j                  |       |Pt        j                  | |j                   |       r  | j                  j#                          y )NTrK   )
_containerr   _internal_container_tables_tables_mapr   r*   r   r9   rc   r1   r&   re   r   rq   rr   r+   rS   )	r   r  r  rP   r5   r   	table_idxr.   r/   s	            r    r!   zOutOfOrderTableProxy.__init__#  s    ##,T?  
	9Aoo++A.GAt$&##D)-1	 JJOO 9DAq,,88A>$$//26==iH}((quua8	9
	9 	  ==?r"   c                6    | j                   j                         S r   )r	  r(   r%   s    r    r(   zOutOfOrderTableProxy.unwrap7  s    ''..00r"   c                .    | j                   j                  S r   )r	  r1   r%   s    r    r1   zOutOfOrderTableProxy.value:  s    ''---r"   c                R    || j                   vrt        |      | j                   |   S r   )r	  r
   r   s     r    r   z OutOfOrderTableProxy.__getitem__>  s,    d... %%'',,r"   c                   || j                   v rp| j                   |   }t        |      dkD  r=| j                  |j                            }| j	                  |       t        |      dkD  r=|| j                  |d      |<   n0| j                  r| j                  d   }|||<   n|| j
                  |<   || j                  |<   |t        j                  | ||       y y )NrK   r   )	r  rc   r
  rw   _remove_tabler  r	  rq   rr   )r   r+   r   r  rC   s        r    rr   z OutOfOrderTableProxy.__setitem__D  s    $"""&&s+Gg,"W[[]3""5) g," -1DLL$S)\\LLOEE#J#'DOOC (,  %?T3- r"   c                    | j                   j                  |       t        | j                  j                        D ])  \  }}|d   |u s| j                  j                  |        y y)z&Remove table from the parent containerrK   N)r
  rv   rL   r  r   rz   )r   rC   rm   r   s       r    r  z"OutOfOrderTableProxy._remove_tableV  sW    E""4??#8#89 	ICAw%**3/	r"   c                T   || j                   vrt        |      t        | j                   |         D ]A  }| j                  |   }||= |rt	        | j                        dkD  s1| j                  |       C | j                   |= | j                  |= |t        j                  | |       y y )NrK   )	r  r
   reversedr
  rc   r  r	  rq   rx   )r   r+   rP   rC   s       r    rx   z OutOfOrderTableProxy.__delitem__^  s    d&&& %%$**3/0 	*ALLOEc
S.2""5)		* S!$$S)?T3' r"   c                >    t        t        j                  |             S r   r   r%   s    r    r   zOutOfOrderTableProxy.__iter__m  r   r"   c                ,    t         j                  |       S r   r   r%   s    r    r   zOutOfOrderTableProxy.__len__p  r   r"   c                0    t         |   ||       | |   S r   r   r   s      r    r   zOutOfOrderTableProxy.setdefaults  r   r"   )r  r   r  ztuple[int, ...]r   r   r   )r+   r   r   r   )r+   r   r   r   r   r   )rC   r   r   r   r   r   r   r   )r   r   r   staticmethodrV   r!   r(   r   r1   r   rr   r  rx   r   r   r   r   r  s   @r    rU   rU     s\    6 6@(1 . .-.$(%" r"   rU   c                    t        | t              xr( t        | j                  j                         t              xs5 t        | t
              xr# t        |       dkD  xr t        | d   t              S )zqReturns ``True`` if the given item ``it`` is a ``Table`` or ``AoT`` object
    ending with a ``Whitespace``.
    r   rJ   )r*   r   r1   r[   r   r   rc   )its    r    r\   r\   x  sZ    
 	2uS*RXX-D-D-F
"SR
R

P#b'A+
P*RVZ2PRr"   )r  r   r   r   )!
__future__r   rf   typingr   r   tomlkit._compatr   tomlkit._typesr   tomlkit._utilsr   tomlkit.exceptionsr	   r
   r   tomlkit.itemsr   r   r   r   r   r   r   r   r   r   rY   object_NOT_SETr   rU   r\   r   r"   r    <module>r$     sn    "    " & & 0 - +  !    #    $ ' 8t* t*na; aHRr"   