
    z%igX              
      H   d dl mZ d dlmZ d dlZd dlmZ d dlmZm	Z	m
Z
 ddlmZmZmZmZmZmZ ddlmZmZmZ  ed	  ed
      D               e ed            z  Ze ed      z
  Ze ed      z
  ZeZeZeZ ed      Ze ed      z  Z  eejB                  ejD                  z   dz         Z#e# ed      z  Z$ eejJ                        Z& edddddddd      Z' G d de(      Z)e*dd<dZ+e*dd=dZ, G d d      Z- G d d       Z. G d! d"e
      Z/d>d#Z0	 	 	 	 	 	 	 	 	 	 	 	 d?d$Z1d@d%Z2d@d&Z3dAd'Z4dAd(Z5	 	 	 	 	 	 	 	 	 	 	 	 dBd)Z6	 	 	 	 	 	 	 	 dCd*Z7dDd+Z8dEd,Z9dEd-Z:dFd.Z;dGd/Z<d0d1	 	 	 	 	 	 	 dHd2Z=dEd3Z>dId4Z?dEd5Z@dJd6ZAdHd7ZB	 	 	 	 	 	 	 	 dKd8ZCdLd9ZDdMd:ZEdNd;ZFy)O    )annotations)IterableN)MappingProxyType)AnyBinaryIO
NamedTuple   )RE_DATETIMERE_LOCALTIME	RE_NUMBERmatch_to_datetimematch_to_localtimematch_to_number)Key
ParseFloatPosc              #  2   K   | ]  }t        |        y wN)chr).0is     C/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/tomllib/_parser.py	<genexpr>r      s     1!s1v1s          	z	
z 	
z-_z"'"\)z\bz\tz\nz\fz\rz\"z\\c                      e Zd Zy)TOMLDecodeErrorN)__name__
__module____qualname__     r   r$   r$   5   s    :r)   r$   parse_floatc                  	 | j                         }	 |j                         }t	        ||      S # t        $ r t        d      d w xY w)NzEFile must be opened in binary mode, e.g. use `open('foo.toml', 'rb')`r*   )readdecodeAttributeError	TypeErrorloads)fpr+   bss       r   loadr5   9   sS    /
	AHHJ
 ,,	  S
	s	   0 Ac                  	 | j                  dd      }d}t        t               t                     }d}t	        |      }	 t        ||t              }	 ||   }|dk(  r|dz  }#|t        v r!t        |||||      }t        ||t              }nr|dk(  r[	 ||dz      }|j                  j                          |dk(  rt        |||      \  }}nt        |||      \  }}t        ||t              }n|dk7  rt        ||d      t        ||      }	 ||   }|dk7  rt        ||d	      |dz  }# t        $ r Y |j                   j"                  S w xY w# t        $ r d }Y w xY w# t        $ r Y |j                   j"                  S w xY w)
Nz
r   r   r(   r	   [#zInvalid statementz5Expected newline or end of document after a statement)replaceOutput
NestedDictFlagsmake_safe_parse_float
skip_charsTOML_WS
IndexErrorKEY_INITIAL_CHARSkey_value_ruleflagsfinalize_pendingcreate_list_rulecreate_dict_rulesuffixed_errskip_commentdatadict)r4   r+   srcposoutheadercharsecond_chars           r   r1   r1   E   s   # ))FD
!C
C
uw
'CF'4K c7+	s8D 4<1HC$$ c3DCS#w/CS[#*-cAg, II&&(c!.sC=V.sC=VS#w/CS[sC)<== 3$	s8D 4<SQ  	qa   	F 88==I	  #"#"  	 88==	s6   D' E 
E '	EEEE	E=<E=c                  F    e Zd Z	 dZdZd
dZddZd
dZddZddZ	ddZ
y	)r<   r   r	   c                0    i | _         t               | _        y r   )_flagsset_pending_flagsselfs    r   __init__zFlags.__init__   s    ')47Er)   c                >    | j                   j                  ||f       y r   )rU   addrW   keyflags      r   add_pendingzFlags.add_pending   s    d,r)   c                    | j                   D ]  \  }}| j                  ||d        | j                   j                          y )NF	recursive)rU   rT   clearr[   s      r   rD   zFlags.finalize_pending   s?    ,, 	1ICHHS$%H0	1!!#r)   c                v    | j                   }|d d D ]  }||vr y ||   d   } |j                  |d   d        y )Nnested)rS   pop)rW   r\   contks       r   	unset_allzFlags.unset_all   sL    {{Sb 	%A}78$D	% 	R$r)   c                   | j                   }|d d |d   }}|D ]'  }||vrt               t               i d||<   ||   d   }) ||vrt               t               i d||<   ||   |rdnd   j                  |       y )Nrd   )rC   recursive_flagsre   re   rk   rC   )rS   rT   rZ   )rW   r\   r]   ra   rg   
key_parentkey_stemrh   s           r   rT   z	Flags.set   s    {{"3BxRH
 	%A}$'EcerRQ78$D	% 4'*uRTUDNXI(7CGGMr)   c                    |sy| j                   }|d d D ]  }||vr y||   }||d   v r y|d   } |d   }||v r||   }||d   v xs ||d   v S y)NFrd   rk   Tre   rC   )rS   )rW   r\   r]   rg   rh   
inner_contrm   s          r   is_z	Flags.is_   s    {{Sb 	(A}aJz"344h'D	( r7t>D4=(KDD9J4K,KKr)   NreturnNone)r\   r   r]   intrr   rs   r\   r   rr   rs   )r\   r   r]   rt   ra   boolrr   rs   )r\   r   r]   rt   rr   rv   )r%   r&   r'   FROZENEXPLICIT_NESTrX   r^   rD   ri   rT   rp   r(   r)   r   r<   r<      s2    3 F M:-$
 	Nr)   r<   c                  4    e Zd ZddZdd	 	 	 	 	 ddZd	dZy)
r;   c                    i | _         y r   )rJ   rV   s    r   rX   zNestedDict.__init__   s	    $&	r)   Taccess_listsc                   | j                   }|D ]B  }||vri ||<   ||   }|rt        |t              r|d   }t        |t               r9t        d       |S )Nrd   z There is no nest behind this key)rJ   
isinstancelistKeyError)rW   r\   r|   rg   rh   s        r   get_or_create_nestzNestedDict.get_or_create_nest   si     II 	CA}Q7D
4 6BxdD)ABB	C r)   c                    | j                  |d d       }|d   }||v r2||   }t        |t              st        d      |j	                  i        y i g||<   y )Nrd   z/An object other than list found behind this key)r   r~   r   r   append)rW   r\   rg   last_keylist_s        r   append_nest_to_listzNestedDict.append_nest_to_list   s_    &&s3Bx0r7tNEeT*PQQLL TDNr)   Nrq   )r\   r   r|   rv   rr   rJ   ru   )r%   r&   r'   rX   r   r   r(   r)   r   r;   r;      s2    ' "	 	
 
"	"r)   r;   c                  "    e Zd ZU ded<   ded<   y)r:   r;   rI   r<   rC   N)r%   r&   r'   __annotations__r(   r)   r   r:   r:      s    
Lr)   r:   c                P    	 | |   |v r|dz  }| |   |v r|S # t         $ r Y |S w xY w)Nr	   )r@   )rK   rL   charss      r   r>   r>      sJ    #h%1HC #h% J  Js    	%%c                   	 | j                  ||      }|j	                  | ||       s'| |   |vr|dz  }| |   |vrt        | |d| |         |S # t        $ r! t        |       }|rt        | |d|      d Y fw xY w)Nz	Expected r	   zFound invalid character )index
ValueErrorlenrG   
isdisjoint)rK   rL   expecterror_onerror_on_eofnew_poss         r   
skip_untilr      s    O))FC( s3w/0#hh&1HC #hh&3'?C|%LMMN  Oc(sGy
-CD$N Os   A 'A;:A;c                l    	 | |   }|dk(  rt        | |dz   dt        d      S |S # t         $ r d }Y +w xY w)Nr8   r	   r   Fr   r   )r@   r   ILLEGAL_COMMENT_CHARS)rK   rL   rO   s      r   rH   rH     sS    s8 s{q$)>U
 	
 J  s   % 33c                R    	 |}t        | |t              }t        | |      }||k(  r|S 'r   )r>   TOML_WS_AND_NEWLINErH   )rK   rL   pos_before_skips      r   skip_comments_and_array_wsr     s7    
c#673$/!J r)   c                (   |dz  }t        | |t              }t        | |      \  }}|j                  j	                  |t
        j                        s*|j                  j	                  |t
        j                        rt        | |d| d      |j                  j                  |t
        j                  d       	 |j                  j                  |       | j                  d|      st        | |d      |dz   |fS # t        $ r t        | |d      d w xY w)	Nr	   zCannot declare z twiceFr`   Cannot overwrite a value]z.Expected ']' at the end of a table declaration)r>   r?   	parse_keyrC   rp   r<   rx   rw   rG   rT   rI   r   r   
startswithrK   rL   rM   r\   s       r   rF   rF     s    1HC
S#w
'Cc"HC
yy}}S%--.#))--U\\2R3se6%BCCIIMM#u**eM<K##C( >>#s#3%UVV7C<  K3%?@dJKs   8C9 9Dc                   |dz  }t        | |t              }t        | |      \  }}|j                  j	                  |t
        j                        rt        | |d|       |j                  j                  |       |j                  j                  |t
        j                  d       	 |j                  j                  |       | j                  d|      st        | |d      |dz   |fS # t        $ r t        | |d      d w xY w)N   "Cannot mutate immutable namespace Fr`   r   z]]z0Expected ']]' at the end of an array declaration)r>   r?   r   rC   rp   r<   rw   rG   ri   rT   rx   rI   r   r   r   r   s       r   rE   rE   .  s    1HC
S#w
'Cc"HC
yy}}S%,,'3'I#%OPPIIIIMM#u**eM<K$$S) >>$$3%WXX7C<  K3%?@dJKs   (C) )Dc                   t        | ||      \  }}d d d   }}|z   }fdt        dt                    D        }	|	D ]f  }
|j                  j	                  |
t
        j                        rt        | |d|
       |j                  j                  |
t
        j                         h |j                  j	                  |t
        j                        rt        | |d|       	 |j                  j                  |      }||v rt        | |d      t        |t        t        f      r/|j                  j!                  z   t
        j                  d       |||<   |S # t        $ r t        | |d      d w xY w)	Nrd   c              3  .   K   | ]  }d | z     y wr   r(   )r   r   rN   r\   s     r   r   z!key_value_rule.<locals>.<genexpr>J  s     LAvBQ/Ls   r	   zCannot redefine namespace r   r   Tr`   )parse_key_value_pairranger   rC   rp   r<   rx   rG   r^   rw   rI   r   r   r~   rJ   r   rT   )rK   rL   rM   rN   r+   valuerl   rm   abs_key_parentrelative_path_cont_keyscont_keynestr\   s      `        @r   rB   rB   C  sn    +3[AOCes8SWJj(NLq#c(9KL+ =99==5#6#67sC+EhZ)PQQ 			h(;(;<= yy}}^U\\2:>:JK
 	
Kxx**>: 43%?@@%$&		fslELLDADNJ  K3%?@dJKs   (E   E8c                    t        | |      \  }}	 | |   }|dk7  rt        | |d      |dz  }t        | |t              }t        | ||      \  }}|||fS # t        $ r d }Y Jw xY w)N=z,Expected '=' after a key in a key/value pairr	   )r   r@   rG   r>   r?   parse_value)rK   rL   r+   r\   rO   r   s         r   r   r   e  s     c"HCs8 s{3%STT1HC
S#w
'CS#{3JCU?  s   A A! A!c                   t        | |      \  }}|f}t        | |t              }	 	 | |   }|dk7  r||fS |dz  }t        | |t              }t        | |      \  }}||fz  }t        | |t              }L# t        $ r d }Y Sw xY w)N.r	   )parse_key_partr>   r?   r@   )rK   rL   key_partr\   rO   s        r   r   r   u  s    "3,MC{C
S#w
'C
	"3xD 3;8Oqc7+&sC0X{c7+   	D	s   A1 1A?>A?c                    	 | |   }|t        v r|}t        | |t              }|| || fS |dk(  rt        | |      S |dk(  rt	        | |      S t        | |d      # t         $ r d }Y ^w xY w)N'r!   z(Invalid initial character for a key part)r@   BARE_KEY_CHARSr>   parse_literal_strparse_one_line_basic_strrG   )rK   rL   rO   	start_poss       r   r   r     s    s8 ~	c>2C	#&&&s{ c**s{'S11
sC!K
LL  s   A A&%A&c                (    |dz  }t        | |d      S )Nr	   F	multiline)parse_basic_strrK   rL   s     r   r   r     s    1HC3u55r)   c                X   |dz  }g }t        | |      }| j                  d|      r|dz   |fS 	 t        | ||      \  }}|j                  |       t        | |      }| ||dz    }|dk(  r|dz   |fS |dk7  rt	        | |d      |dz  }t        | |      }| j                  d|      r|dz   |fS ~)Nr	   r   ,zUnclosed array)r   r   r   r   rG   )rK   rL   r+   arrayvalcs         r   parse_arrayr     s    1HCE
$S#
.C
~~c3Qw~
sC5SS(c2cAg87E>!8sC)9::q(c2>>#s#7E>! r)   c                   |dz  }t               }t               }t        | |t              }| j	                  d|      r|dz   |j
                  fS 	 t        | ||      \  }}}|d d |d   }}|j                  |t        j                        rt        | |d|       	 |j                  |d      }	||	v rt        | |d	|      ||	|<   t        | |t              }| ||dz    }
|
dk(  r|dz   |j
                  fS |
d
k7  rt        | |d      t        |t
        t        f      r"|j                  |t        j                  d       |dz  }t        | |t              }	# t        $ r t        | |d      d w xY w)Nr	   }Trd   r   Fr{   r   zDuplicate inline table key r   zUnclosed inline tabler`   )r;   r<   r>   r?   r   rJ   r   rp   rw   rG   r   r   r~   r   rT   )rK   rL   r+   nested_dictrC   r\   r   rl   rm   r   r   s              r   parse_inline_tabler     s   1HC,KGE
S#w
'C
~~c3Qw((((
.sCES%"3BxRH
99S%,,'sC+McU)STT	O11*51QD tsC+Fxl)STTXc7+cAg87K,,,,8sC)@AAedD\*IIc5<<4I8qc7++   	OsC)CD$N	Os   E E0Fr   c               t   | ||dz    }|dz  }|rL|dv rH|dk7  r.t        | |t              }	 | |   }|dk7  rt        | |d      |dz  }t        | |t              }|dfS |dk(  rt        | |d	      S |d
k(  rt        | |d      S 	 |t        |   fS # t        $ r |dfcY S w xY w# t        $ r t        | |d      d w xY w)Nr   >   \	\ \
r    r   zUnescaped '\' in a stringr	   z\u   z\U   )r>   r?   r@   rG   r   parse_hex_charBASIC_STR_ESCAPE_REPLACEMENTSr   )rK   rL   r   	escape_idrO   s        r   parse_basic_str_escaper     s    C#'"I1HCY"99 S#w/C3x t|"3-IJJ1HCc#67BwEc3**Ec3**M1)<<<  Bw  M3%ABLMs   B 
B BBB7c                    t        | |d      S )NTr   )r   r   s     r    parse_basic_str_escape_multiliner     s    !#sd;;r)   c                    | |||z    }t        |      |k7  st        j                  |      st        | |d      ||z  }t	        |d      }t        |      st        | |d      |t        |      fS )NzInvalid hex value   z/Escaped character is not a Unicode scalar value)r   HEXDIGIT_CHARS
issupersetrG   rt   is_unicode_scalar_valuer   )rK   rL   hex_lenhex_strhex_ints        r   r   r     sw    #g&G
7|wn&?&?&H3%8997NC'2G"7+3%VWWGr)   c                L    |dz  }|}t        | |dt        d      }|dz   | || fS )Nr	   r   Tr   )r   ILLEGAL_LITERAL_STR_CHARS)rK   rL   r   s      r   r   r      s>    1HCI
S# 9C 7C	#&&&r)   c               ,   |dz  }| j                  d|      r|dz  }|r!d}t        | |dt        d      }| || }|dz   }nd}t        | |d	      \  }}| j                  ||      s||fS |dz  }| j                  ||      s|||z   fS |dz  }|||d
z  z   fS )N   r   r	   r   '''Tr   r!   r   r   )r   r   #ILLEGAL_MULTILINE_LITERAL_STR_CHARSr   )rK   rL   literaldelimend_posresults         r   parse_multiline_strr   	  s    1HC
~~dC q8
 S!k%c3$?V >>%%F{1HC>>%%FUN""1HC%!)$$$r)   c               l   |rt         }t        }nt        }t        }d}|}	 	 | |   }|dk(  r4|s|dz   || || z   fS | j                  d|      r|dz   || || z   fS |dz  }@|dk(  r|| || z  } || |      \  }}||z  }|}a||v rt        | |d|      |dz  }z# t        $ r t        | |d      d w xY w)	Nr   zUnterminated stringr!   r	   """r   r"   zIllegal character )!ILLEGAL_MULTILINE_BASIC_STR_CHARSr   ILLEGAL_BASIC_STR_CHARSr   r@   rG   r   )	rK   rL   r   r   parse_escapesr   r   rO   parsed_escapes	            r   r   r   (  s   48*.FI
	Js8D 3;QwYs); ;;;~~eS)QwYs); ;;;1HC4<c)C((F!.sC!8Cm#FI8sC+=dX)FGGq)   	JsC)>?TI	Js   B B3c                   	 | |   }|dk(  r,| j                  d|      rt        | |d      S t        | |      S |dk(  r,| j                  d|      rt        | |d      S t	        | |      S |dk(  r| j                  d	|      r|d
z   dfS |dk(  r| j                  d|      r|dz   dfS |dk(  rt        | ||      S |dk(  rt        | ||      S t        j                  | |      }|r	 t        |      }|j                         |fS t        j                  | |      }|r|j                         t        |      fS t        j                  | |      }|r|j                         t!        ||      fS | ||dz    }	|	dv r|dz    ||	      fS | ||d
z    }
|
dv r|d
z    ||
      fS t        | |d      # t         $ r d }Y w xY w# t        $ r}t        | |d      |d }~ww xY w)Nr!   r   F)r   r   r   Tttruer   ffalse   r7   {zInvalid date or datetimer   >   infnan>   +inf+nan-inf-nanzInvalid value)r@   r   r   r   r   r   r   r
   matchr   r   rG   endr   r   r   r   )rK   rL   r+   rO   datetime_matchdatetime_objelocaltime_matchnumber_matchfirst_three
first_fours              r   r   r   H  s1   s8 s{>>%%&sC??'S11 s{>>%%&sC>> c** s{>>&#&7D= s{>>'3'7E>! s{3[11 s{!#sK88 !&&sC0N	L,^<L !!#\11"((c2O""$&8&III
 ??3,L!?<#MMM cC!G$Kn$QwK000S37#J55QwJ///
sC
11y  L  	LsC)CD!K	Ls)   F% "F7 %F43F47	G GGc                <    	 dd}t        | d || |       d      S )Nc                    |t        |       k\  ry| j                  dd|      dz   }|dk(  r|dz   }n|| j                  dd|      z
  }d| d| S )Nzend of documentr   r   r	   zline z	, column )r   countrindex)rK   rL   linecolumns       r   
coord_reprz suffixed_err.<locals>.coord_repr  sa    #c(?$yyq#&*191WF3::dAs33FtfIfX..r)   z (at ))rK   strrL   r   rr   r  )r$   )rK   rL   msgr  s       r   rG   rG     s.    / cU%
3(<'=Q?@@r)   c                F    d| cxk  xr dk  nc xs d| cxk  xr dk  S c S )Nr   i  i   i r(   )	codepoints    r   r   r     s'    #e#G))Fw)FG)FGr)   c                2     	  t         u rt         S d fd}|S )Nc                Z     |       }t        |t        t        f      rt        d      |S )Nz*parse_float must not return dicts or lists)r~   rJ   r   r   )	float_strfloat_valuer+   s     r   safe_parse_floatz/make_safe_parse_float.<locals>.safe_parse_float  s-    !),kD$<0IJJr)   )r  r  rr   r   )float)r+   r  s   ` r   r=   r=     s$     e r)   )r2   r   r+   r   rr   dict[str, Any])r4   r  r+   r   rr   r  )rK   r  rL   r   r   zIterable[str]rr   r   )rK   r  rL   r   r   r  r   zfrozenset[str]r   rv   rr   r   )rK   r  rL   r   rr   r   )rK   r  rL   r   rM   r:   rr   tuple[Pos, Key])rK   r  rL   r   rM   r:   rN   r   r+   r   rr   r   )rK   r  rL   r   r+   r   rr   ztuple[Pos, Key, Any])rK   r  rL   r   rr   r  )rK   r  rL   r   rr   tuple[Pos, str])rK   r  rL   r   r+   r   rr   ztuple[Pos, list])rK   r  rL   r   r+   r   rr   ztuple[Pos, dict])rK   r  rL   r   r   rv   rr   r  )rK   r  rL   r   r   rt   rr   r  )rK   r  rL   r   r   rv   rr   r  )rK   r  rL   r   r+   r   rr   ztuple[Pos, Any])rK   r  rL   r   r  r  rr   r$   )r  rt   rr   rv   )r+   r   rr   r   )G
__future__r   collections.abcr   stringtypesr   typingr   r   r   _rer
   r   r   r   r   r   _typesr   r   r   	frozensetr   r   
ASCII_CTRLr   r   r   r   r   r?   r   ascii_lettersdigitsr   rA   	hexdigitsr   r   r   r$   r  r5   r1   r<   r;   r:   r>   r   rH   r   rF   rE   rB   r   r   r   r   r   r   r   r   r   r   r   r   r   rG   r   r=   r(   r)   r   <module>r'     s  
 # $  " , ,  ) (1uRy11Ic#h4GG
 %y6 $.61B$B !3 &G #/ 
E
	$/ 6//&--?$FG"Yu%55 6++, 0
! ;j ; 8= 	- 38 ?D7 7t" "DZ 
		 
   	,	$*	#-0?ID	%/ ,$M 6
"0,B .3M	MM&*MM:<'%>@A2	A2A2%/A2A2HA"Hr)   