bg nFddlmZddlZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z dd l m Z dd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZeZGddeZGddeZddZdS)) annotationsN)Any)Iterator)decode) merge_dicts)KeyAlreadyPresent)NonExistentKey) TOMLKitError)AoT)Comment)Item)Key)Null) SingleKey)Table)Trivia) Whitespace) _CustomDict)itemceZdZdZdNdOdZedPd ZdQd ZedQd ZdRdZ dSdTdZ dUdZ dVdZ dWdZ dXdZdYdZdZd!Zd[d$Zd\d%Zd]d&Zd^d'Zd_d)ZdSd`d.ZdSd/ZdSdad0ZdSd1ZdVd2Zdbd4Zdcd6Zddd7Zded8Zdffd: Zdgd<Z dhd>Z!d_d?Z"d_d@Z#didCZ$dDZ%dEZ&dFZ'dGZ(djdHZ)djdIZ*de+ffdkdLZ,de+ffdldMZ-xZ.S)m Containerz A container for items within a TOMLDocument. This class implements the `dict` interface with copy/deepcopy protocol. FparsedboolreturnNonec>i|_g|_||_g|_dSN)_map_body_parsed _table_keys)selfrs b/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/tomlkit/container.py__init__zContainer.__init__$s%<> 46  list[tuple[Key | None, Item]]c|jSrrr"s r#bodyzContainer.body*s zr%dict[str, Any]ci}|D]h\}}|t|tr|j}t |dr|}||vrt |||c|||<i|S)Nunwrap)items isinstancerkeyhasattrr-r)r" unwrappedkvs r#r-zContainer.unwrap.s JJLL ! !DAqy!S!! Eq(## HHJJI~~IaL!,,,, ! r%ci}|jD]R\}}||j}|j}t|tr|j}||vrt |||M|||<S|Sr)rr0valuer/rr)r"dr3r4s r#r6zContainer.valueAs{ J  DAqyAA!Y'' GAvvAaD!$$$$!r%parsingc||_|jD]n\}}t|tr|j|5t|t r$|jD]}|j|odSr)r rr/rr6r8r r*)r"r8_r4ts r#r8zContainer.parsingUs J - -DAq!U## -((((As## ---AGOOG,,,,  - -r%Nr0Key | Item | strr Item | Nonec|/t|ttfstdd|}}|||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 ValueErrorappend)r"r0rs r#addz Container.add_sT <cGZ#899  NcC{{3%%%r%rr6r ct|ttfrtd|^}}}d|_tt dt ddx}}|D]M}d|_tt dt dd} ||| | }N|j|_||||||dS)Nz!Can't add a table to a dotted keyTF)is_super_table) r/rr r _dottedrrr@sep) r"r0r6namemidlasttablecurrent_name new_tables r#_handle_dotted_keyzContainer._handle_dotted_keyts eeS\ * * DBCC CsD  $5QUVVVV  E EMioovxxtTTTI NN5) , , ,GG7tU### D%   r%intc2d}t|jD]|\}\}}t|trt|tr|sHt|t tfr|sn|}}|dzSN) enumeraterr/rris_fixedrr is_dotted)r" last_indexir3r4s r#_get_last_index_before_tablez&Container._get_last_index_before_tables "4:..  IAv1!T"" !Z((  !eS\** 1;;== JJA~r%Key | str | Nonec t|ts|t|}t|tst |}|,|r||||St|ttfr|j |j |_ | }t|tpt|}t|trW|js||jr5|js.|jjs"|s |s d|j_t|tr_|jrX|jsQ||r;d|djjvs'|s%d|djjz|dj_|||vr|j|}t|t*r|j|d}n |j|}|d}t|trt|ttfst-||r\t|ts0t||g|j}||||n|||S|r:|st-||||S|r|rY|jd|dks.|s|dr|r|js|}nt=|j}|t=|jkr||||n| ||tC||j||StEj#|}|j$j%D]\} } || | |d|f|jt|t*r|dn|<|S|drtMdn|st-|nit|trEt|tst-||j%D]} || |St-|t|ttf} ||jr|js| r|r|} | t=|jkr|| ||S|jdd}t|ts2t|s#d|jj'vs|jxj'dz c_'| |||S)z$*1-G$&&G -!'E3<881+C000&&((81&gs33-"%wodl"K"K"K c38888t,,,K^^%%-1..005/444NN4(((K++--%1**,,"P!,R04H4KKK"}}L3A6@@BBL #}}6t|6&*&G&G&I&I&)$*oo"S__44 $S$ ? ? ? ? $ 0 0d ; ; ;1ty~FFF#'K#'-"8"8$(JO11DAq#NN1a0000 2!4g>  )+u==-KOO!, $ -a0::<<P*+NOOOP,,..1+C0001D#&& -!'3//1+C000!Y**ENN5)))) ',,,dUCL11 O  L  "% ::<||jvr|j|}t|ts|f}|j|dd}|$t|tst ||t |jfz|j|<nt |j|j|<|j||f|r|j ||&t ||j |j |SrP)rr/rcrrrrgr@rsr!dict __setitem__r0r6)r"r0rrprJs r#rizContainer._raw_append!s $)  )C.Kk511 -*n jR1!4Gz'5'A'A',,,(C OO+==DIcNN __DIcN 3+&&& ==?? )   # #C ( ( ( ?   T37DJ 7 7 7 r%rrc|j|d}|j|}|t|dt f|j|<t |t rgt|}||t|dkr| }nt |}||j|<dSt ||j |j |dS)NrrR)rrgetr rr/rclistremovergpoprv __delitem__r0)r"rrr0indexs r# _remove_atzContainer._remove_at8sjoa  c"" = %% %. 3 eU # # KKE LL   5zzQ e "DIcNNN   T37 + + + IMM#     r% Key | strc|t|tst|}|j|d}|t |t|t r|D]}dtf|j|<ndtf|j|<t ||j |S)z Remove a key from the container.N) r/rrrr|r rcrrrvr}r0)r"r0rrrWs r#r{zContainer.removeKs#s## !C..CimmC&& ; %% % c5 ! ! - / /!%tvv 1  / $TVVnDJsO sw''' r% other_keyrc|td||vrt|t|tst |}t|tst |}t |}|j|}t|trt|}|j |d}d|j j vr|j xj dz c_ |j D]l\}}t|tr?g}|D]"} | |kr| dz} | | #t||j|<Y||kr |dz|j|<m|dz|j|<|j |dz||f|&t||j|j|S)Nz$Key cannot be null in insert_after()rRr[)r?r r/rrr\rrcmaxrrarmr.r@insertrvrwr0r6) r"r0rrrr current_itemr3r4 new_indicesv_s r# _insert_afterzContainer._insert_after^s ;CDD D d?? %% %#s## !C..C)S)) -!),,IT{{in c5 ! ! c((Cz#q) |*0 0 0   % % - % %IOO%% % %DAq!U## % ++BCxx!V&&r****$[11 ! S 1u ! "Qw ) #'It#4555 ?   T9=$* = = = r%c|t|jdz krtd|t|tst |}t |}|dkry|j|dz d}t|tsNt|s?t|ttfs#d|j j vs|j xj dz c_ |j D]l\}}t|tr?g}|D]"}||kr|dz}||#t||j |<Y||kr |dz|j |<m||j vr4|j |} t| ts| f} | |fz|j |<n ||j |<|j|||ft$||j|j|S)NrRzUnable to insert at position rr[)rgrr?r/rrr\rr_r rrarmrr.rcr@rrvrwr0r6) r"rrr0rrtr3r4rrrps r#rhzContainer._insert_ats TZ1$ $ $BSBBCC C#s## !C..CT{{ 77 JsQw/2M=*55 3' 66 3dS%L11 3=/555$**d2**IOO%% % %DAq!U## % ++BSyy!V&&r****$[11 ! c 1u ! $)  )C.Kk511 -*n (C61DIcNN DIcN #T{+++ sw 333 r%ct|tst|}|j|}|t |t|t rt||S|j|dS)zGet an item for the given key.NrR) r/rrrryr rcrjr)r"r0rrs r#rzContainer.itemsz#s## !C..CimmC   ; %% % c5 ! ! 3(c22 2z#q!!r%c:|jr|jddSdS)zGet the last item.rQrRNr(r)s r# last_itemzContainer.last_items' : %:b>!$ $ % %r%strcJd}|jD]\}}|xt|tr||||z }6t|tr||||z }e||||z }||||z }|S)zRender as TOML string.)rr/r _render_tabler _render_aot_render_simple_item)r"sr3r4s r# as_stringzContainer.as_strings J 4 4DAq}a''8++Aq111AA3''8))!Q///AA11!Q777AAT--a333r%rIrprefix str | Nonec d}|j|j}n|}||dz|z}|r7td|jjDr|sd\}}|rd\}}d|jj vrt|jdkrdnd}||jj |t|||jj t|jj|jj |z }n|jj dkr||jj z }|jjD] \} } t| t r| r^| r.|s||| | z }q||| | |z }||| | |z }t| t$r||| | |z }||| | |r|ndz } |S) Nr.c3nK|]0\}}t|ttttf V1dSr)r/rr rr).0r:r4s r# z*Container._render_table..sPAqq5#z4"@AAAr%)[]z[[z]]r[rr) display_namerrCanyr6r*rUrdrarmrgrbr comment_wscommentr/rrr rr) r"r0rIrcur_keyopen_closenewline_in_table_triviar3r4s r#rzContainer._render_tables   )%DD==??D!|d*##%% ' !K,   ' MMOO  '$LE5##%% *) uEL$6663u{;K;Ka;O;OUW $ <&--$<<--<* - %,.// - <% -+-- CC\ D ( ( 5<& &CK$  DAq!U## ##%%A{{}}ES]]__Et11!Q777t11!Qt1DDD4--a4-@@@CCAs## t''1T':::t//q!Bd0 r%c|}||dz|z}d}t|}|jD]}||||z }|S)Nrrr)rrr*_render_aot_table)r"r0aotrrrrIs r#rzContainer._render_aotsh}}  C<$&Dd||X > >E 4))%)== =CC r%c d}|pd}d\}}||jj|t|||jjt|jj|jjz }|jjD]\}}t|trz| rJ| r|| ||z }\|| |||z }x|| |||z }t|tr|||||z }||||z }|S)Nrrr)rarbrrrrmr6r*r/rrCrUrr rr) r"rIrrrrrr3r4s r#rzContainer._render_aot_table&s|! u |" $ $d|| $ $|&  $ el*++  $ |!  $ $ K$ 6 6DAq!U## 6##%%A{{}}Et11!Q777t11!Qt1DDD4--a4-@@@CCAs## 6t''1T':::t//1555 r%cV||S|}||dz|z}|jjt||jt||jjt|jj|jjS)Nr)rrarbrrErrrm)r"r0rrrs r#rzContainer._render_simple_itemFs ;>>## #}}  C<$&D{! #d|| #w #dnn&&'' #{%  # dk)**  # {  # # r%c6t|Srrv__len__r)s r#rzContainer.__len__X||D!!!r% Iterator[str]cPtt|Sriterrvkeysr)s r#__iter__zContainer.__iter__[DIIdOO$$$r%Item | ContainercJt|tst|}|j|}|t |t|t rt||S|j|d}| r|j S|SNrR) r/rrrryr rcrjr is_booleanr6)r"r0rrrs r# __getitem__zContainer.__getitem___s#s## !C..CimmC   ; %% % c5 ! ! 3(c22 2z#q! ??   :  r%cB|vr>ttfd|j}|||dS||dS)Nc|kSr)r3r0s r#z'Container.__setitem__..us AHr%)nextfilterrrer@)r"r0r6old_keys ` r#rwzContainer.__setitem__ssi ?sd{{6"4"4"4"4di@@AAG MM'3 . . . . . KKU # # # # #r%c0||dSr)r{r"r0s r#r}zContainer.__delitem__zs Cr%defaultcZt||||SN)rsuper setdefaultr"r0r __class__s r#rzContainer.setdefault}* 3000Cyr%new_keyct|tst|}|j|}|t |||||dSr)r/rrrryr _replace_at)r"r0rr6rrs r#rezContainer._replacesc#s## !C..CimmC   ; %% % gu-----r%int | tuple[int]ct|}t|tr-|ddD]}dtf|j|<|d}|j|\}}t|t sWt|t tft|t tfks ||jkrt|}n|}|j |=||j |<||krt ||t|t tft|t tfkr| |t|t|jD]J}t|j|dt tfr|||||}nKd}|||nt|t$t fsp|jj|j_|jjp |jj|j_|jjp |jj|j_|jj|j_||f|j|<t1|dr|t|tr|\}}|dkr|n|}t7|} ||ko(t|j|dzdt$} ||kr'| s%| s#|dt%dt||j|jdSdS)NrRrrQr`r[)r\r/rcrrrr rr0rrrvr}r{rangergrhr@rrarbrrrmr1r`_previous_item_with_indexr_rwr6) r"rrrr6rWr3r4rHr:has_wsnext_wss r#rzContainer._replace_atse  c5 ! ! W / /!%tvv 1 a&Cz#1'3'' 53,//:a#u3N3NNNae###G,, IaL  ' a<<   T1 % % % ec5\ * *jS%L.I.I I I KKNNN3DJ00 , ,djmA.e ==OOAw666CE  GU+++ej#%677 4&'ho #*/,*A*XQXEX '',|';'Oqx?O $%&X^ "&.DJsO 53 4 4 ,  ) ) + + + eU # # =4466GD!''$$sC)%00FDjSZ 370CA0F %S%SGTzz7zfz T:d#3#3444   T7; < < < < < = =r%c*t|jSr)rr6r)s r#__str__zContainer.__str__s4:r%c*t|jSr)reprr6r)s r#__repr__zContainer.__repr__sDJr%otherrvcPt|tstS|j|kSr)r/rvNotImplementedr6)r"rs r#__eq__zContainer.__eq__s'%&& "! !zU""r%c|jfSr)r r"protocols r# _getstatezContainer._getstates  r%c,|dS)N) __reduce_ex__r)s r# __reduce__zContainer.__reduce__s!!!$$$r%cl|j|||j|j|j|jffSr)rrrrr r!rs r#rzContainer.__reduce_ex__s5 N NN8 $ $ Y DL$2B C  r%c|d|_|d|_|d|_|d|_|jD]-\}}|&t||j|j.dS)NrrRr)rrr r!rvrwr0r6)r"stater0rs r# __setstate__zContainer.__setstate__sp!H 1X Qx  8 < r$s"""""" """"""&&&&&&000000------++++++!!!!!!###### $$$$$$%%%%%%'''''' 688m *m *m *m *m * m *m *m *`LLLLL;LLL^RRRRRRr%