"JdW ddlZddlmZddlmZmZmZmZmZm Z m Z m Z m Z ddl mZmZmZmZmZmZmZmZmZerddlmZededDeedzZeed z Zeed z ZeZeed z Z eZ!ed Z"e"ed zZ#eej$ej%zdzZ&e&edzZ'edd d dddddZ(ee)gefZ*e e)dfZ+e,Z-Gdde.Z/e0dde de*dee)effdZ1e0dde)de*dee)effdZ2Gd d!Z3Gd"d#Z4Gd$d%Z5d&e)d'e-d(e e)de-fd)Z6d&e)d'e-d*e)d+ee)d,e7de-f d-Z8d&e)d'e-de-fd.Z9d&e)d'e-de-fd/Z:d&e)d'e-d0e3de-fd1Z;d&e)d'e-d0e3de-fd2Zd&e)d'e-de e-e+ffd5Z?d&e)d'e-de e-e)ffd6Z@d&e)d'e-de e-e)ffd7ZAd&e)d'e-de*de e-eBffd8ZCd&e)d'e-de*de e-eDffd9ZEd:d;d&e)d'e-dZGd&e)d'e-d?e,de e-e)ffd@ZHd&e)d'e-de e-e)ffdAZId&e)d'e-dBe7de e-e)ffdCZJd&e)d'e-drs(11!s1vv111111  z z z  z-_z"'  "\)z\bz\tz\nz\fz\rz\"z\\.ceZdZdZdS)TOMLDecodeErrorz0An error raised if a document is not valid TOML.N)__name__ __module__ __qualname____doc__rrr)r)Bs::::rr) parse_floatfpr0returncL|}t||S)zParse TOML from a file object.r/)readloads)r1r0ss rloadr7Fs"  A  , , ,,rr6c|dd}d}t} t||t} ||}n#t$rYnwxYw|dkr|dz }>|t vr)t ||||}t||t}n||dkr_ ||dz}n#t$rd}YnwxYw|dkrt|||}nt|||}t||t}n|dkrt||d t||} ||}n#t$rYn"wxYw|dkrt||d |dz }3|j j S) zParse TOML from a string.z r"rT[N#zInvalid statementz5Expected newline or end of document after a statement) replaceState skip_charsTOML_WS IndexErrorKEY_INITIAL_CHARSkey_value_rulecreate_list_rulecreate_dict_rule suffixed_err skip_commentoutdict)r6r0srcposstatechar second_chars rr5r5Ls ))FD ! !C C GGE/c7++ s8DD    E  4<< 1HC  $ $ $ c5+>>CS#w//CC S[[ #-0q\  # # #"  #c!!&sC77&sC77S#w//CC S[[sC)<== =3$$ s8DD    E  4<<SQ  q_/b 9>s5A AA B** B98B9$D-- D:9D:ceZdZddZdS)r=r2Nc`t|_t|_d|_dS)Nr.) NestedDictrGFlagsflagsheader_namespaceselfs r__init__zState.__init__s(<<WW &(rr2N)r*r+r,rVr.rrr=r=s(((((((rr=cveZdZdZdZdZddZdeddfdZd ed ed e ddfd Z ded e d e ddfdZ ded e de fdZ dS)rQz)Flags that map to parsed keys/namespaces.rr9r2Nci|_dSr_flagsrTs rrVzFlags.__init__s ') rkeyc|j}|ddD]}||vrdS||d}||dddS)Nnested)r[pop)rUr\contks r unset_allzFlags.unset_alls^{SbS % %A}}78$DD R$rhead_keyrel_keyflagc"|j}|D]5}||vr!ttid||<||d}6|D]L}||vr"||d|n|htid||<||d}MdS)NrRrecursive_flagsr_r_rRr[setadd)rUrdrerfrarbs rset_for_relative_keyzFlags.set_for_relative_keys{ % %A}}$'EEceerRRQ78$DD % %ADyyQ $$T****%)FsuuPRSSQ78$DD  % %r recursivec<|j}|dd|d}}|D]5}||vr!ttid||<||d}6||vr!ttid||<|||rdnd|dS)Nr^rhr_rirRrj)rUr\rfrnra key_parentkey_stemrbs rrkz Flags.sets{"3B3xRH  % %A}}$'EEceerRRQ78$DD 4  '*uuRTUUDN XIB((7CGGMMMMMrc|sdS|j}|ddD]&}||vrdS||}||dvrdS|d}'|d}||vr||}||dvp ||dvSdS)NFr^riTr_rRrZ)rUr\rfrarb inner_contrqs ris_z Flags.is_s 5{SbS ( (A}}uuaJz"3444tth'DDr7 t  >D4=(KDD9J4K,K KurrW)r*r+r,r-FROZEN EXPLICIT_NESTrVKeyrcintrmboolrkrtr.rrrQrQs33FM**** S T     %S %3 %c %d % % % % Ns N# NT Nd N N N Ns#$rrQc@eZdZd dZdddededefdZdeddfd ZdS) rPr2Nci|_dSr)rHrTs rrVzNestedDict.__init__s $& rT access_listsr\r}c|j}|D]V}||vri||<||}|rt|tr|d}t|tstdW|S)Nr^z There is no nest behind this key)rH isinstancelistKeyError)rUr\r}rarbs rget_or_create_nestzNestedDict.get_or_create_nests I C CA}}Q7D 4 6 6 BxdD)) CABBB C rc||dd}|d}||vrC||}t|tstd|idSig||<dS)Nr^z/An object other than list found behind this key)rrrrappend)rUr\ralast_keylist_s rappend_nest_to_listzNestedDict.append_nest_to_lists&&s3B3x00r7 t  NEeT** RPQQQ LL      TDNNNrrW) r*r+r,rVrwryrHrrr.rrrPrPs''''"     " "s "t " " " " " "rrPrIrJcharsc\ |||vr|dz }|||vn#t$rYnwxYw|S)Nr9)r@)rIrJrs rr>r>sV #h% 1HC#h%      Js  ))expecterror_on error_on_eofcn |||}n6#t$r)t|}|rt||d|dYnwxYw||||}|rGt t |}|||}t||d|d|S)Nz Expected "r&zFound invalid character ")index ValueErrorlenrE intersectionnextiter) rIrJrrrnew_pos bad_charsbad_charbad_poss r skip_untilrsG))FC(( GGGc((  GsG-E&-E-E-EFF F G GG %%c#g+&677ITY(())Hc**3)RX)R)R)RSSS Ns0A  A c ||}n#t$rd}YnwxYw|dkrt||dzdtdS|S)Nr;r9r"Frr)r@rILLEGAL_COMMENT_CHARS)rIrJrLs rrFrFsm!#h  s{{ q$)>U     J  cf |}t||t}t||}||kr|S1r)r>TOML_WS_AND_NEWLINErF)rIrJpos_before_skips rskip_comments_and_array_wsr!sBc#6773$$ / ! !J rrKc<|dz }t||t}t||\}}|j|t js%|j|t jrt||d|d|j |t jd |j |n#t$rt||dwxYw||_ |||dzdkrt||d|dzS) Nr9zCan not declare z twiceFrnCan not overwrite a value]z.Expected "]" at the end of a table declaration)r>r? parse_keyrRrtrQrvrurErkrGrrrS)rIrJrKr\s rrDrD*s-1HC S#w ' 'Cc""HC {sE/00EEKOOC4V4VE3%C%C%C%CDDD KOOC,O>>>B $$S)))) BBB3%@AAAB E 3q=S  3%UVVV 7Ns 6CC-c0|dz }t||t}t||\}}|j|t jrt||d||j||j |t j d |j |n#t$rt||dwxYw||_|||dz}|dkrt||d|d|dzS) N#Can not mutate immutable namespace Frrz]]zFound "z3" at the end of an array declaration. Expected "]]")r>r?rrRrtrQrurErcrkrvrGrrrS)rIrJrKr\ end_markers rrCrC=sG1HC S#w ' 'Cc""HC {sEL))R3%P3%P%PQQQ K# KOOC,O>>>B %%c**** BBB3%@AAAB ES37]#JT   j      7Ns *CC!ctt|||\}}}|dd|d}}|j|z}|j|tjrt ||d||j|j|tj |j |} n#t$rt ||dwxYw|| vrt ||dt|ttfr1|j|z} |j| tjd|| |<|S)Nr^rrTr)parse_key_value_pairrSrRrtrQrurErmrvrGrrrrHrrk) rIrJrKr0r\valuerprqabs_key_parentnestabs_keys rrBrBYsS*3[AAOCess8SWJ+j8N {~u|44  LNLL    K$$U%;S%BUVVVBy++N;; BBB3%@AAAB43%@AAA%$&&?(3. >>>DN Js B22Cct||\}} ||}n#t$rd}YnwxYw|dkrt||d|dz }t||t}t |||\}}|||fS)N=z,Expected "=" after a key in a key/value pairr9)rr@rEr>r? parse_value)rIrJr0r\rLrs rrrrsc""HC!#h  s{{3%STTT1HC S#w ' 'CS#{33JC U?s  --cvt||\}}|g}t||t} ||}n#t$rd}YnwxYw|dkr|t |fS|dz }t||t}t||\}}||t||t})NT.r9)parse_key_partr>r?r@tupler)rIrJkey_partr\rLs rrrs"3,,MC *C S#w ' 'C , "%c(DD   DDD  3;;c ? " qc7++&sC00 X 8c7++ ,s8 AAc ||}n#t$rd}YnwxYw|tvr$|}t||t}||||fS|dkrt||S|dkrt ||St ||d)N'r&z(Invalid initial character for a key part)r@BARE_KEY_CHARSr>parse_literal_strparse_one_line_basic_strrE)rIrJrL start_poss rrrs!#h  ~ c>22C # &&& s{{ c*** s{{'S111 sC!K L LLrc0|dz }t||dS)Nr9F multiline)parse_basic_strrIrJs rrrs 1HC 3u 5 5 55rc|dz }g}t||}|||dzdkr|dz|fS t|||\}}||t||}|||dz}|dkr|dz|fS|dkrt||d|dz }t||}|||dzdkr|dz|fS)Nr9rT,zUnclosed array)rrrrE)rIrJr0arrayvalcs r parse_arrayrs1HCE $S# . .C 3q=S  Qw~"sC55S S(c22 cAg  887E> ! 88sC)9:: : q(c22 sS1W}  $ $7E> !"rc\|dz }t}t}t||t}|||dzdkr |dz|jfS t |||\}}}|dd|d}}||tjrt||d| | |d} n#t$rt||dwxYw|| vrt||d |d || |<t||t}|||dz} | dkr |dz|jfS| d krt||d t|ttfr"| |tjd |dz }t||t}X)Nr9}Tr^rFr|rzDuplicate inline table key "r&rzUnclosed inline tabler)rPrQr>r?rHrrtrurErrrrrk) rIrJr0 nested_dictrRr\rrprqrrs rparse_inline_tablers1HC,,K GGE S#w ' 'C 3q=S  Qw (((,.sCEES%"3B3xRH 99S%, ' ' VsC)Ts)T)TUU U F11*51QQDD F F FsC)DEE E F t  sC)S)S)S)STT TXc7++ cAg  887K,, , 88sC)@AA A edD\ * * 9 IIc5<4I 8 8 8 qc7+++,s 2C C&Frrc|||dz}|dz }|ri|dvre|dkrEt||t}|||dz}|s|dfS|dkrt||d|dz }t||t}|dfS|dkrt ||d S|d krt ||d S |t |fS#t $r6t|dkrt||d t||dwxYw) Nr>\ \ \ rr9r"zUnescaped "\" in a stringz\uz\UUnterminated string)r>r?rErparse_hex_charBASIC_STR_ESCAPE_REPLACEMENTSrr)rIrJr escape_idrLs rparse_basic_str_escapersZC#'M"I1HC Y"999   S#w//CsS1W}%D Bwt||"3-IJJJ 1HCc#677BwEc3***Ec3***C1)<<< CCC y>>Q  sC)>?? ?3%ABBBCs -B<.s*%Q%QAav/?&?%Q%Q%Q%Q%Q%QrzInvalid hex valuez/Escaped character is not a Unicode scalar value)ranyrErxis_unicode_scalar_valuer)rIrJrhex_strhex_ints rrrs#g %&G 7||w#%Q%Q%Q%Q%Q"Q"Q3%89997NC'2G "7 + +X3%VWWW G rc`|dz }|}t||dtd}|dz|||fS)Nr9rTr)rILLEGAL_LITERAL_STR_CHARS)rIrJrs rrrsJ1HCI  S# 9   C 7C # & &&rliteralcB|dz }|||dzdkr|dz }|r+d}t||dtd}|||}|dz}nd}t||d \}}|||dz|kr||fS|dz }|||dz|kr|||zfS|dz }|||d zzfS) Nr9r"rz'''Trr&rr)r#ILLEGAL_MULTILINE_LITERAL_STR_CHARSr)rIrJrdelimend_posresults rparse_multiline_strrs1HC 3q=T!! q @   8    S[!k%c3$??? V 3q=U""F{1HC 3q=U""FUN""1HC %!)$ $$rc|rt}t}nt}t}d}|} ||}n#t$rt ||dwxYw|dkr@|s|dz||||zfS||dz|dzdkr|dz||||zfS|dz }p|dkr$||||z }|||\}}||z }|}||vrt ||d |d|dz }) NrTrr&r9r""r'zIllegal character ")!ILLEGAL_MULTILINE_BASIC_STR_CHARSrILLEGAL_BASIC_STR_CHARSrr@rE) rIrJrr parse_escapesrrrL parsed_escapes rrr6sa/48 *. FI @s8DD @ @ @sC)>?? ? @ 3;; <QwYs]); ;;;37S1W$%--QwYs]); ;;; 1HC  4<< c)C-( (F!.sC!8!8 C m #FI  8  sC)Ht)H)H)HII I q)s /A regexrc|||}|st||d||fS)NzUnexpected sequence)matchrEendgroup)rIrJrrs r parse_regexrVsK KKS ! !E <3%:;;; 99;; %%rc ||}n#t$rd}YnwxYw|dkr6||dz|dzdkrt||dSt||S|dkr6||dz|dzdkrt||d St||S|d kr||dz|d zd kr|d zd fS|d kr||dz|dzdkr|dzdfSt j||}|rF t |}n#t$rt||dwxYw| |fStj||}|r#| t|fS|dkr||dz|dz}|dkr.t||dzt\}}|t|dfS|dkr.t||dzt\}} |t| dfS|dkr.t||dzt \}} |t| dfSt#j||} | r$| t%| |fS|dkrt'|||S|dkrt)|||S|||dz} | dvr|dz|| fS|||d z} | dvr|d z|| fSt||d)Nr&r9rrF)rrz''TtrruefalsezInvalid date or datetime0rxrorbr:{>infnan>+inf+nan-inf-nanz Invalid value)r@rrrrrrrrErrrrrrxrr rrrr)rIrJr0rLdatetime_match datetime_objlocaltime_matchrMroct_strbin_str number_match first_three first_fours rrr]s!#h  s{{ sQwq !T ) )&sC??? ?'S111 s{{ sQwq !T ) )&sC>>> > c*** s{{ sQwq !U * *7D=  s{{ sQwq !V + +7E> !!&sC00N2 E,^<.coord_reprsu #c((??$$yyq#&&* 1991WFF3::dAs333F.t..f...rz (at ))strPosr))rIrJrrs rrErEsX//#/#//// c?? 3(<(<??? @ @@r codepointcBd|cxkodkncpd|cxkodkncS)Nriiir.)rs rrrsE  # # # #e # # # # G))F)F)F)Fw)F)F)F)FGr)Prtypesrtypingrrrrrr r r r pip._vendor.tomli._rer rrrrrrrrrer frozensetranger ASCII_CTRLrrrrrr?r ascii_lettersdigitsrrArr ParseFloatrwrxrrr)floatr7r5r=rQrPr>ryrrFrrDrCrBrrrrrrrHrrrrrrrrrrErr.rrr,sv """"""                                            Y11uuRyy111 1 1IIcc#hh4G4G G %yy6$.81D1D$D!3&099V3D3D&D#/ )E   $/6/&-?$FGG"YYu%5%55 0 0 ! !seSj !  CHo ;;;;;j;;;38---V-Z-DcN---- 05<<<S<*<c3h<<<<~((((((((;;;;;;;;|""""""""DCc(3-C    n    . c      Ccc#C#&#C#8#e*QT2    %/  3S=     ,3,S,U38_,,,,$ M M# M%S/ M M M M 6#6C6E#s(O6666 "S"s""c4i@P""""0,C,c, ,uSRVYGW,,,,B.3CCC CC&*C 38_CCCC<<#3duS#X@&S&s&9&sCx&&&&M2 M2M2%/M2 38_M2M2M2M2`AcAA#A/AAAA"HsHtHHHHHHr