
    5i{                    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     1lib/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    dr2   r3   s       r"   r6   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   r6   parsingr   r)   )r    r:   _r3   ts        r"   r:   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/   r6   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ir2   r3   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/   r2   s      r"   r]   &Container._validate_out_of_order_table   si    ;YY}$}11!4  iiz$))C.%'H'H%%dIIcN;r%   c                "   [        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GbU  U R                   (       GaC  U R                  (       Gd1  U(       a  UR'                  5       (       Ga  U R;                  5       nU[=        U R                   5      :  a{  U R                   U   S   n[        U[        5      (       dB  SUR"                  R$                  ;   d(  SUR"                  R$                  -   UR"                  l        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   rS   rT   )r!   z!Redefinition of an existing table)(r.   r   r   r   _itemis_multirO   r   r   rH   r/   _previous_itemr   ends_with_whitespacer   invalidate_display_namer   triviaindentrW   r   r^   r	   is_aot_element_replacer@   is_aotrE   r   rZ   len
_insert_at_raw_appendr]   copydeepcopyr6   r)   r   trail)r    r/   r   r`   prevprev_wscurrent_idxcurrent_body_elementrL   idxr2   r3   rK   is_tablerX   
after_itemprevious_items                    r"   r@   Container.append   sU    #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


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

O+!ZZ
3A6
z:66z00777/3j6G6G6N6N/NJ%%,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 rR   )r   r.   r^   r   r   r	   rn   r@   ry   r   dict__setitem__r/   r6   )r    r/   r   rv   rL   s        r"   rp   Container._raw_append7  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   rT   )r   r   getr
   r   r.   r^   listremovern   popr~   __delitem__r/   )r    rx   r/   indexs       r"   
_remove_atContainer._remove_atL  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/   rx   rY   s       r"   r   Container.remove_  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()rT   rc   )r?   r
   r.   r   r   rd   r   r^   maxr   ri   rs   r-   r@   insertr~   r   r/   r6   )
r    r/   	other_keyr   rx   current_itemr2   r3   new_indicesv_s
             r"   _insert_afterContainer._insert_afterr  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 $ )NrT   zUnable to insert at position r   rc   )rn   r   r?   r.   r   r   rd   r   rg   r   r   ri   rs   r   r-   r^   r@   r   r~   r   r/   r6   )
r    rx   r/   r   r{   r2   r3   r   r   rv   s
             r"   ro   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.rT   )	r.   r   r   r   r   r
   r^   r_   r   )r    r/   rx   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.rS   rT   Nr'   r(   s    r"   	last_itemContainer.last_item  s!    ::::b>!$$ r%   c                   SnU R                    GH<  u  p#UGb  [        U[        5      (       ao  UR                  S5      (       aD  UR                  S5      R	                  S5      (       d  SUR
                  R                  ;  a  US-  nXR                  X#5      -  nM  [        U[        5      (       ap  UR                  S5      (       aD  UR                  S5      R	                  S5      (       d  SUR
                  R                  ;  a  US-  nXR                  X#5      -  nGM  XR                  X#5      -  nGM)  XR                  X#5      -  nGM?     U$ )zRender as TOML string.  rc   )r   r.   r   stripendswithri   rj   _render_tabler   _render_aot_render_simple_item)r    sr2   r3   s       r"   	as_stringContainer.as_string  s   JJDA}a'' ! 5 5d ; ; 7T	++A11A3'' ! 5 5d ; ; 7T	))!//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
                   GH  u  p[        U
[         5      (       a  UR#                  S5      (       aD  UR#                  S5      R%                  S5      (       d  SU
R                  R                  ;  a  US-  nU
R                  5       (       aS  U	R                  5       (       a*  UR                  5       (       d  X@R'                  X5      -  nM  X@R'                  XUS	9-  nM  X@R'                  XUS	9-  nM  [        U
[(        5      (       ao  UR#                  S5      (       aD  UR#                  S5      R%                  S5      (       d  SU
R                  R                  ;  a  US-  nX@R+                  XUS	9-  nGMu  X@R-                  XUR                  5       (       a  UOS S	9-  nG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;   r3   s      r"   	<genexpr>*Container._render_table.<locals>.<genexpr>  s/      ,DA q5#z4"@AAA,s   46)[]z[[z]]rc   r   r   prefix)display_namer   rE   anyr6   r)   rW   rk   ri   rs   rn   rj   r   
comment_wscommentr.   r   r   r   r   r   r   r   )r    r/   rK   r   cur_keyopen_closenewline_in_table_triviar2   r3   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##IIcNNIIcN33D99AHHOO34KC##%%{{}}S]]__11!7711!t1DD--a4-@@CAs##IIcNNIIcN33D99AHHOO34KC''T':://d 0  3 %: 
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   rK   s          r"   r   Container._render_aotF  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   )ri   rj   r   r   r   rs   r6   r)   r.   r   rE   rW   r   r   r   r   )	r    rK   r   r   r   r   r   r2   r3   s	            r"   r   Container._render_aot_tableR  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   ri   rj   r   rG   r   r   rs   )r    r/   r   r   r   s        r"   r   Container._render_simple_itemr  s    ;>>##}}C<$&D {{!!"d|nwwidnn&'({{%%&dkk))*+{{  !#	
r%   c                ,    [         R                  U 5      $ r   r~   __len__r(   s    r"   r   Container.__len__      ||D!!r%   c                >    [        [        R                  U 5      5      $ r   iterr~   keysr(   s    r"   __iter__Container.__iter__      DIIdO$$r%   c                    U R                  U5      n[        U[        5      (       a!  UR                  5       (       a  UR                  $ U$ r   )r   r.   r   
is_booleanr6   rA   s      r"   __getitem__Container.__getitem__  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    )r2   r/   s    r"   <lambda>'Container.__setitem__.<locals>.<lambda>  s	    AHr%   )nextfilterr   rl   r@   )r    r/   r6   old_keys    `  r"   r   Container.__setitem__  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_keyr6   rx   s        r"   rl   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 )NrT   r   rS   rh   rc   )rd   r.   r^   r   r   r   r   r   r/   r   r   r~   r   r   rangern   ro   r@   r   ri   rj   r   r   rs   r0   rh   _previous_item_with_indexrg   r6   r)   r   )r    rx   r   r6   rY   r2   r3   rJ   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   )strr6   r(   s    r"   __str__Container.__str__  s    4::r%   c                ,    [        U R                  5      $ r   )reprr6   r(   s    r"   __repr__Container.__repr__  s    DJJr%   c                V    [        U[        5      (       d  [        $ U R                  U:H  $ r   )r.   r~   NotImplementedr6   )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   rT   r     )r   r   r   r   r~   r   r/   r6   )r    stater/   r   s       r"   __setstate__Container.__setstate__  s\    !H	1X
Qx 8IC  ww

; $r%   c                .    [         R                   " U 5      $ r   )rq   r(   s    r"   rq   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    cr2   r3   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``NrT   rS   )rn   r   r   r.   )r    rx   ignorerY   r3   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.
rS   N)r   )r    rx   r  rt   s       r"   rf   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])r:   r  r   r!  r   )r/   zKey | Item | strr   Item | Noner   r   )r/   r   r6   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!  )rx   r$  r   r!  )r/   	Key | strr   r   )r/   r%  r   r%  r   r   r   r   )rx   r$  r/   r%  r   r   r   r   )r/   r%  r   r   )r   r"  r   r   )r/   r   rK   r   r   
str | Noner   r   )rK   r   r   r'  r   r   r   zIterator[str])r/   r%  r   zItem | Containerr/   r%  r6   r   r   r!  r/   r%  r   r!  r/   r%  r   r   r   r   )r/   r%  r   r%  r6   r   r   r!  )rx   zint | tuple[int]r   r%  r6   r   r   r!  )r   r~   r   r  )r   r   )rx   
int | Noner   ztuple[int, Item] | None)rx   r,  r   r"  )2__name__
__module____qualname____firstlineno____doc__r#   propertyr)   r,   r6   r:   rB   rO   rZ   r]   r@   rp   r   r   r   ro   r   r   r   r   r   r   r   r   r   r   r   r   r   rl   r   r   r   r   r  r
  r	  r  rq   r  r   r   rf   __static_attributes____classcell__r   s   @r"   r   r      s     (  (-&*$< CGU#U+/U;?U	Un8*&&--)2-:=-	-^,\""%
8CJ
@
$"%$.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_   i2  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   r6   r)   r@   r]   )	containerindicestemp_containerrY   r;   r   r2   r3   s           r"   r`   OutOfOrderTableProxy.validate3  si     #4Aooa(GA$&& JJOODA"))!)? ,	  	335r%   c                ~   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                   Hw  u  pxU R                  R                  Xx5        U R                  R                  U/ 5      nXb;  a  UR                  U5        Uc  MW  [        R                  XR                   U5        My     M     U R                  R#                  5         g )NTrT   )
_containerr   _internal_container_tables_tables_mapr   r.   r   r@   rn   r6   r)   rp   r   r~   r   r/   r]   )	r    r8  r9  rY   r;   r   	table_idxr2   r3   s	            r"   r#   OutOfOrderTableProxy.__init__A  s    ##,T? $&13Aoo++A.GA$&&##D)-1	 JJOODA,,88>"..99!R@G /y1}((uua8 ,  	  ==?r%   c                6    U R                   R                  5       $ r   )r>  r,   r(   s    r"   r,   OutOfOrderTableProxy.unwrapW  s    ''..00r%   c                .    U R                   R                  $ r   )r>  r6   r(   s    r"   r6   OutOfOrderTableProxy.valueZ  s    ''---r%   c                T    XR                   ;  a  [        U5      eU R                   U   $ r   )r>  r
   r   s     r"   r    OutOfOrderTableProxy.__getitem__^  s*    ... %%'',,r%   c                @  ^^ SSK Jm  SU4S jjmXR                  ;   a  U R                  U   n[        U5      S:  a?  U R                  UR                  5          nU R                  U5        [        U5      S:  a  M?  U R                  US      U   nT" U5      (       a2  T" U5      (       d%  U R                  US      U	 U R                  U	 X U'   g X R                  US      U'   OU R                  (       ar  T" U5      (       dS  U R                   H1  n[        U4S jUR                  5        5       5      (       d  M-  X$U'     O4   X R                  S   U'   O X R                  S   U'   OX R                  U'   X R                  U'   Ub  [        R                  XU5        g g )NrT   r   c                <   > [        T" U 5      [        [        45      $ r   )r.   r   r   )itr   s    r"   _is_table_or_aot:OutOfOrderTableProxy.__setitem__.<locals>._is_table_or_aotg  s    d2h55r%   r   c              3  B   >#    U  H  u  pT" U5      (       + v   M     g 7fr   r   )r   r;   r3   rL  s      r"   r   3OutOfOrderTableProxy.__setitem__.<locals>.<genexpr>|  s     M}tq/222}s   rK  r   r   r  )r-   r   r@  rn   r?  r   _remove_tabler   r=  r>  r~   r   )r    r/   r6   r9  rK   	old_valuerL  r   s         @@r"   r    OutOfOrderTableProxy.__setitem__d  sm   	6 """&&s+Gg,"W[[]3""5) g," WQZ05I	**3CE3J3JLL,S1$$S)!S	,1LL$S)\\#E**!\\EMu{{}MMM%*c
	 * ,1LLOC(',Q$#(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 containerrT   N)r?  r   rU   r=  r   r   )r    rK   rx   r   s       r"   rQ  "OutOfOrderTableProxy._remove_table  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 )NrT   )	r@  r
   reversedr?  rn   rQ  r>  r~   r   )r    r/   rY   rK   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__  r   r%   c                ,    [         R                  U 5      $ r   r   r(   s    r"   r   OutOfOrderTableProxy.__len__  r   r%   c                &   > [         TU ]  XS9  X   $ r   r   r   s      r"   r   OutOfOrderTableProxy.setdefault  r   r%   )r=  r>  r?  r@  )r8  r   r9  ztuple[int, ...]r   r!  r&  )r/   r%  r   r   r)  )rK   r   r   r!  r*  r(  r#  r+  )r-  r.  r/  r0  staticmethodr`   r#   r,   r2  r6   r   r   rQ  r   r   r   r   r3  r4  r5  s   @r"   r_   r_   2  s]    6 6@,1 . .-$/L(%" 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   rS   )r.   r   r6   rf   r   r   rn   )rK  s    r"   rg   rg     sZ    
 	2uS*RXX-D-D-F
"SR
R

P#b'A+
P*RVZ2PRr%   rP  )!
__future__r   rq   typingr   r   tomlkit._compatr   tomlkit._typesr   tomlkit._utilsr   tomlkit.exceptionsr	   r
   r   tomlkit.itemsr   r   r   r   r   r   r   r   r   r   rd   object_NOT_SETr   r_   rg   r   r%   r"   <module>rj     sn    "    " & & 0 - +  !    #    $ ' 8R* R*jw; wtRr%   