
    3\hgX              
      4   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j!        ej"        z   dz             Z#e# ed          z  Z$ eej%                  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_d0Z0d`d6Z1dad7Z2dad8Z3dbd;Z4dbd<Z5dcd?Z6dddAZ7dedBZ8dfdDZ9dfdEZ:dgdGZ;dhdIZ<dJdKdidMZ=dfdNZ>djdQZ?dfdRZ@dkdTZAdidUZBdldWZCdmdYZDdnd[ZEdod\ZFdS )p    )annotations)IterableN)MappingProxyType)AnyBinaryIO
NamedTuple   )RE_DATETIMERE_LOCALTIME	RE_NUMBERmatch_to_datetimematch_to_localtimematch_to_number)Key
ParseFloatPosc              #  4   K   | ]}t          |          V  d S N)chr).0is     9/opt/python-3.11.14/usr/lib/python3.11/tomllib/_parser.py	<genexpr>r      s(      11!s1vv111111           	z	
z 	
z-_z"'"\)z\bz\tz\nz\fz\rz\"z\\c                      e Zd ZdS )TOMLDecodeErrorN)__name__
__module____qualname__ r   r   r%   r%   5   s        ::r   r%   parse_floatfpr   r+   r   returndict[str, Any]c                  	 |                                  }	 |                                }n# t          $ r t          d          d w xY wt	          ||          S )NzEFile must be opened in binary mode, e.g. use `open('foo.toml', 'rb')`r*   )readdecodeAttributeError	TypeErrorloads)r,   r+   bss       r   loadr7   9   sn    /
		AHHJJ   S
 
	 ,,,,s	   , Ar6   strc              f   	 |                      dd          }d}t          t                      t                                }d}t	          |          }	 t          ||t                    }	 ||         }n# t          $ r Y n&w xY w|dk    r|dz  }>|t          v r*t          |||||          }t          ||t                    }n|dk    r~	 ||dz            }n# t          $ r d }Y nw xY w|j
                                         |dk    rt          |||          \  }}nt          |||          \  }}t          ||t                    }n|dk    rt          ||d	          t          ||          }	 ||         }n# t          $ r Y n"w xY w|dk    rt          ||d
          |dz  }S|j        j        S )Nz
r   r   r)   Tr	   [#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)r6   r+   srcposoutheadercharsecond_chars           r   r4   r4   E   s   # ))FD
!
!C
C
uww
'
'CF'44K0c7++	s8DD 	 	 	E	4<<1HC$$$ c3DDCS#w//CCS[[#*-cAg, # # #"#I&&(((c!!.sC==VV.sC==VS#w//CCS[[sC)<=== 3$$	s8DD 	 	 	E	4<<SQ   	qa0d 8=s6   +A4 4
BBC C&%C&0E9 9
FFc                  H    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
dS )r?   r   r	   r-   Nonec                :    i | _         t                      | _        d S r   )_flagsset_pending_flagsselfs    r   __init__zFlags.__init__   s    ')47EEr   keyr   flagintc                >    | j                             ||f           d S r   )rY   addr[   r]   r^   s      r   add_pendingzFlags.add_pending   s#    d,,,,,r   c                    | j         D ]\  }}|                     ||d           | j                                          d S )NF	recursive)rY   rX   clearrb   s      r   rG   zFlags.finalize_pending   sN    , 	1 	1ICHHS$%H0000!!#####r   c                    | j         }|d d         D ]}||vr d S ||         d         }|                    |d         d            d S )Nnested)rW   pop)r[   r]   contks       r   	unset_allzFlags.unset_all   s^    {SbS 	% 	%A}}78$DDR$r   rf   boolc               <   | j         }|d d         |d         }}|D ]5}||vr!t                      t                      i d||<   ||         d         }6||vr!t                      t                      i d||<   ||         |rdnd                             |           d S )Nri   )rF   recursive_flagsrj   rj   rq   rF   )rW   rX   ra   )r[   r]   r^   rf   rl   
key_parentkey_stemrm   s           r   rX   z	Flags.set   s    {"3B3xRH
 	% 	%A}}$'EEceerRRQ78$DD4'*uuRTUUDNXIB((7CGGMMMMMr   c                    |sdS | j         }|d d         D ]&}||vr dS ||         }||d         v r dS |d         }'|d         }||v r||         }||d         v p	||d         v S dS )NFri   rq   Trj   rF   )rW   )r[   r]   r^   rl   rm   
inner_contrs   s          r   is_z	Flags.is_   s     	5{SbS 	( 	(A}}uuaJz"3444tth'DDr7t>D4=(KDD9J4K,KKur   Nr-   rU   )r]   r   r^   r_   r-   rU   r]   r   r-   rU   )r]   r   r^   r_   rf   ro   r-   rU   )r]   r   r^   r_   r-   ro   )r&   r'   r(   FROZENEXPLICIT_NESTr\   rc   rG   rn   rX   rv   r)   r   r   r?   r?      s        3 F M: : : :- - - -$ $ $ $
       	N 	N 	N 	N     r   r?   c                  ,    e Zd ZddZddddZddZdS )r>   r-   rU   c                    i | _         d S r   )rM   rZ   s    r   r\   zNestedDict.__init__   s    $&			r   Taccess_listsr]   r   r~   ro   rM   c                   | j         }|D ]V}||vri ||<   ||         }|rt          |t                    r|d         }t          |t                     st          d          W|S )Nri   z There is no nest behind this key)rM   
isinstancelistKeyError)r[   r]   r~   rl   rm   s        r   get_or_create_nestzNestedDict.get_or_create_nest   s     I 	C 	CA}}Q7D  
4 6 6  BxdD)) CABBBCr   c                    |                      |d d                   }|d         }||v rC||         }t          |t                    st          d          |                    i            d S i g||<   d S )Nri   z/An object other than list found behind this key)r   r   r   r   append)r[   r]   rl   last_keylist_s        r   append_nest_to_listzNestedDict.append_nest_to_list   s    &&s3B3x00r7tNEeT** RPQQQLL TDNNNr   Nrw   )r]   r   r~   ro   r-   rM   rx   )r&   r'   r(   r\   r   r   r)   r   r   r>   r>      s_        ' ' ' ' "	     "	" 	" 	" 	" 	" 	"r   r>   c                  $    e Zd ZU ded<   ded<   dS )r=   r>   rL   r?   rF   N)r&   r'   r(   __annotations__r)   r   r   r=   r=      s%         LLLLLr   r=   rN   rO   r   charsIterable[str]c                \    	 | |         |v r|dz  }| |         |v n# t           $ r Y nw xY w|S )Nr	   )rC   )rN   rO   r   s      r   rA   rA      sV    #h%1HC #h%   Js    
))expecterror_onfrozenset[str]error_on_eofro   c               B   	 |                      ||          }n6# t          $ r) t          |           }|rt          | |d|          d Y nw xY w|                    | ||                   s3| |         |vr|dz  }| |         |vt          | |d| |                   |S )Nz	Expected r	   zFound invalid character )index
ValueErrorlenrJ   
isdisjoint)rN   rO   r   r   r   new_poss         r   
skip_untilr      s    O))FC(( O O Oc(( 	OsG-C-C-CDD$N	O 	OO
 s3w;/00 N#hh&&1HC #hh&&3%LC%L%LMMMNs    0AAc                    	 | |         }n# t           $ r d }Y nw xY w|dk    rt          | |dz   dt          d          S |S )Nr;   r	   r   Fr   r   )rC   r   ILLEGAL_COMMENT_CHARS)rN   rO   rR   s      r   rK   rK     sm    s8   s{{q$)>U
 
 
 	
 J    c                f    	 |}t          | |t                    }t          | |          }||k    r|S 1r   )rA   TOML_WS_AND_NEWLINErK   )rN   rO   pos_before_skips      r   skip_comments_and_array_wsr     sB    c#6773$$/!!Jr   rP   tuple[Pos, Key]c                >   |dz  }t          | |t                    }t          | |          \  }}|j                            |t
          j                  s%|j                            |t
          j                  rt          | |d| d          |j        	                    |t
          j        d           	 |j
                            |           n # t          $ r t          | |d          d w xY w|                     d|          st          | |d          |dz   |fS )	Nr	   zCannot declare z twiceFre   Cannot overwrite a value]z.Expected ']' at the end of a table declaration)rA   rB   	parse_keyrF   rv   r?   rz   ry   rJ   rX   rL   r   r   
startswithrN   rO   rP   r]   s       r   rI   rI     s-   1HC
S#w
'
'Cc""HC
y}}S%-.. D#)--U\2R2R D3%Bs%B%B%BCCCIMM#u*eM<<<K##C(((( K K K3%?@@dJK >>#s## W3%UVVV7C<s   6C C.c                &   |dz  }t          | |t                    }t          | |          \  }}|j                            |t
          j                  rt          | |d|           |j                            |           |j        	                    |t
          j
        d           	 |j                            |           n # t          $ r t          | |d          d w xY w|                     d|          st          | |d          |dz   |fS )N   "Cannot mutate immutable namespace Fre   r   z]]z0Expected ']]' at the end of an array declaration)rA   rB   r   rF   rv   r?   ry   rJ   rn   rX   rz   rL   r   r   r   r   s       r   rH   rH   .  s%   1HC
S#w
'
'Cc""HC
y}}S%,'' Q3%O#%O%OPPPIIMM#u*eM<<<K$$S)))) K K K3%?@@dJK >>$$$ Y3%WXXX7C<s   *C C"rQ   r   c                &   t          | ||          \  }}d d         d         }}|z   }fdt          dt                              D             }	|	D ]`}
|j                            |
t
          j                  rt          | |d|
           |j                            |
t
          j                   a|j                            |t
          j	                  rt          | |d|           	 |j
                            |          }n # t          $ r t          | |d          d w xY w||v rt          | |d          t          |t          t          f          r*|j                            z   t
          j	        d           |||<   |S )	Nri   c              3  2   K   | ]}d |         z   V  d S r   r)   )r   r   rQ   r]   s     r   r   z!key_value_rule.<locals>.<genexpr>J  s0      LLAvBQB/LLLLLLr   r	   zCannot redefine namespace r   r   Tre   )parse_key_value_pairranger   rF   rv   r?   rz   rJ   rc   ry   rL   r   r   r   rM   r   rX   )rN   rO   rP   rQ   r+   valuerr   rs   abs_key_parentrelative_path_cont_keyscont_keynestr]   s      `        @r   rE   rE   C  s    +3[AAOCess8SWJj(NLLLLLq#c((9K9KLLL+ = =9==5#677 	RsC)Ph)P)PQQQ 		h(;<<<<
y}}^U\22 
K>KK
 
 	
Kx**>:: K K K3%?@@dJK43%?@@@%$&& B	fslELDAAADNJs   6D D.tuple[Pos, Key, Any]c                    t          | |          \  }}	 | |         }n# t          $ r d }Y nw xY w|dk    rt          | |d          |dz  }t          | |t                    }t          | ||          \  }}|||fS )N=z,Expected '=' after a key in a key/value pairr	   )r   rC   rJ   rA   rB   parse_value)rN   rO   r+   r]   rR   r   s         r   r   r   e  s     c""HCs8   s{{3%STTT1HC
S#w
'
'CS#{33JCU?s    --c                >   t          | |          \  }}|f}t          | |t                    }	 	 | |         }n# t          $ r d }Y nw xY w|dk    r||fS |dz  }t          | |t                    }t          | |          \  }}||fz  }t          | |t                    }q)NT.r	   )parse_key_partrA   rB   rC   )rN   rO   key_partr]   rR   s        r   r   r   u  s    "3,,MC{C
S#w
'
'C,	"3xDD 	 	 	DDD	3;;8Oqc7++&sC00X{c7++,s   8 AAtuple[Pos, str]c                   	 | |         }n# t           $ r d }Y nw xY w|t          v r$|}t          | |t                    }|| ||         fS |dk    rt          | |          S |dk    rt	          | |          S t          | |d          )N'r"   z(Invalid initial character for a key part)rC   BARE_KEY_CHARSrA   parse_literal_strparse_one_line_basic_strrJ   )rN   rO   rR   	start_poss       r   r   r     s    s8   ~	c>22C	#&&&s{{ c***s{{'S111
sC!K
L
LLr   c                0    |dz  }t          | |d          S )Nr	   F	multiline)parse_basic_strrN   rO   s     r   r   r     s     1HC3u5555r   tuple[Pos, list]c                   |dz  }g }t          | |          }|                     d|          r|dz   |fS 	 t          | ||          \  }}|                    |           t          | |          }| ||dz            }|dk    r|dz   |fS |dk    rt	          | |d          |dz  }t          | |          }|                     d|          r|dz   |fS )Nr	   r   T,zUnclosed array)r   r   r   r   rJ   )rN   rO   r+   arrayvalcs         r   parse_arrayr     s   1HCE
$S#
.
.C
~~c3 Qw~"sC55SS(c22cAg887E>!88sC)9:::q(c22>>#s## 	"7E>!"r   tuple[Pos, dict]c                f   |dz  }t                      }t                      }t          | |t                    }|                     d|          r|dz   |j        fS 	 t          | ||          \  }}}|d d         |d         }}|                    |t          j                  rt          | |d|           	 |
                    |d          }	n # t          $ r t          | |d          d w xY w||	v rt          | |d	|          ||	|<   t          | |t                    }| ||dz            }
|
dk    r|dz   |j        fS |
d
k    rt          | |d          t          |t
          t          f          r"|                    |t          j        d           |dz  }t          | |t                    }X)Nr	   }Tri   r   Fr}   r   zDuplicate inline table key r   zUnclosed inline tablere   )r>   r?   rA   rB   r   rM   r   rv   ry   rJ   r   r   r   r   rX   )rN   rO   r+   nested_dictrF   r]   r   rr   rs   r   r   s              r   parse_inline_tabler     s   1HC,,KGGE
S#w
'
'C
~~c3 )Qw(((,.sCEES%"3B3xRH
99S%,'' 	UsC)Sc)S)STTT	O11*51QQDD 	O 	O 	OsC)CDD$N	OtsC)Sx)S)STTTXc7++cAg887K,,,88sC)@AAAedD\** 	9IIc5<4I888qc7+++,s   7C C,Fr   r   c                  | ||dz            }|dz  }|rt|dv rp|dk    rPt          | |t                    }	 | |         }n# t          $ r |dfcY S w xY w|dk    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 t          | |d          d w xY w)Nr   >   \	\ \
r    r   zUnescaped '\' in a stringr	   z\u   z\U   )rA   rB   rC   rJ   r   parse_hex_charBASIC_STR_ESCAPE_REPLACEMENTSr   )rN   rO   r   	escape_idrR   s        r   parse_basic_str_escaper     sM    C#'M"I1HC Y"999 S#w//C3x   Bwt||"3-IJJJ1HCc#677BwEc3***Ec3***M1)<<< M M M3%ABBLMs   ? AA8C C$c                &    t          | |d          S )NTr   )r   r   s     r    parse_basic_str_escape_multiliner     s    !#sd;;;;r   hex_lenr_   c                $   | |||z            }t          |          |k    st                              |          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
issupersetrJ   r_   is_unicode_scalar_valuer   )rN   rO   r   hex_strhex_ints        r   r   r     s    #g%&G
7||wn&?&?&H&H3%89997NC'2G"7++ X3%VWWWGr   c                `    |dz  }|}t          | |dt          d          }|dz   | ||         fS )Nr	   r   Tr   )r   ILLEGAL_LITERAL_STR_CHARS)rN   rO   r   s      r   r   r      sJ    1HCI
S# 9  C 7C	#&&&r   literalc               `   |dz  }|                      d|          r|dz  }|r+d}t          | |dt          d          }| ||         }|dz   }nd}t          | |d	          \  }}|                      ||          s||fS |dz  }|                      ||          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   )rN   rO   r   delimend_posresults         r   parse_multiline_strr   	  s    1HC
~~dC   q @8
 
 
 S[!k%c3$???V >>%%% F{1HC>>%%% #FUN""1HC%!)$$$r   c                  |rt           }t          }nt          }t          }d}|}	 	 | |         }n # t          $ r t          | |d          d w xY w|dk    rB|s|dz   || ||         z   fS |                     d|          r|dz   || ||         z   fS |dz  }s|dk    r$|| ||         z  } || |          \  }}||z  }|}||v rt          | |d	|          |dz  })
Nr   TzUnterminated stringr"   r	   """r   r#   zIllegal character )!ILLEGAL_MULTILINE_BASIC_STR_CHARSr   ILLEGAL_BASIC_STR_CHARSr   rC   rJ   r   )	rN   rO   r   r   parse_escapesr   r   rR   parsed_escapes	            r   r   r   (  sY    /48*.FI	Js8DD 	J 	J 	JsC)>??TI	J3;; <QwYs]); ;;;~~eS)) <QwYs]); ;;;1HC4<<c)C-((F!.sC!8!8Cm#FI8sC)Fd)F)FGGGq)s	   / Atuple[Pos, Any]c                n   	 | |         }n# t           $ r d }Y nw xY w|dk    r8|                     d|          rt          | |d          S t          | |          S |dk    r8|                     d|          rt          | |d          S t	          | |          S |dk    r|                     d	|          r|d
z   dfS |dk    r|                     d|          r|dz   dfS |dk    rt          | ||          S |dk    rt          | ||          S t          j        | |          }|rK	 t          |          }n$# t          $ r}t          | |d          |d }~ww xY w|                                |fS t          j        | |          }|r#|                                t          |          fS t          j        | |          }|r$|                                t!          ||          fS | ||dz            }	|	dv r|dz    ||	          fS | ||d
z            }
|
dv r|d
z    ||
          fS t          | |d          )Nr"   r   F)r   r   r   Tttruer   ffalse   r:   {zInvalid date or datetimer   >   infnan>   +inf+nan-inf-nanzInvalid value)rC   r   r   r   r   r   r   r
   matchr   r   rJ   endr   r   r   r   )rN   rO   r+   rR   datetime_matchdatetime_objelocaltime_matchnumber_matchfirst_three
first_fours              r   r   r   H  s   s8    s{{>>%%% 	@&sC????'S111 s{{>>%%% 	?&sC>>>> c*** s{{>>&#&& 	!7D= s{{>>'3'' 	"7E>! s{{3[111 s{{!#sK888 !&sC00N 2	L,^<<LL 	L 	L 	LsC)CDD!K	L!!##\11"(c22O J""$$&8&I&III
 ?3,,L N!!?<#M#MMM cC!Gm$Kn$$QwK0000S37]#J555QwJ////
sC
1
11s$    %D5 5
E?EEmsgc                J    	 d	d}t          | d || |           d          S )
NrN   r8   rO   r   r-   c                    |t          |           k    rdS |                     dd|          dz   }|dk    r|dz   }n||                     dd|          z
  }d| d| S )Nzend of documentr   r   r	   zline z	, column )r   countrindex)rN   rO   linecolumns       r   
coord_reprz suffixed_err.<locals>.coord_repr  su    #c((??$$yyq#&&*1991WFF3::dAs333F.t..f...r   z (at ))rN   r8   rO   r   r-   r8   )r%   )rN   rO   r  r  s       r   rJ   rJ     sH    / / / / c??

3(<(<???@@@r   	codepointc                B    d| cxk    odk    nc pd| cxk    odk    nc S )Nr   i  i   i r)   )r  s    r   r   r     sE    ####e####G))F)F)F)Fw)F)F)F)FGr   c                6     	  t           u rt           S d fd}|S )N	float_strr8   r-   r   c                t     |           }t          |t          t          f          rt          d          |S )Nz*parse_float must not return dicts or lists)r   rM   r   r   )r  float_valuer+   s     r   safe_parse_floatz/make_safe_parse_float.<locals>.safe_parse_float  s>    !k),,kD$<00 	KIJJJr   )r  r8   r-   r   )float)r+   r   s   ` r   r@   r@     s@     e      r   )r,   r   r+   r   r-   r.   )r6   r8   r+   r   r-   r.   )rN   r8   rO   r   r   r   r-   r   )rN   r8   rO   r   r   r8   r   r   r   ro   r-   r   )rN   r8   rO   r   r-   r   )rN   r8   rO   r   rP   r=   r-   r   )rN   r8   rO   r   rP   r=   rQ   r   r+   r   r-   r   )rN   r8   rO   r   r+   r   r-   r   )rN   r8   rO   r   r-   r   )rN   r8   rO   r   r-   r   )rN   r8   rO   r   r+   r   r-   r   )rN   r8   rO   r   r+   r   r-   r   )rN   r8   rO   r   r   ro   r-   r   )rN   r8   rO   r   r   r_   r-   r   )rN   r8   rO   r   r   ro   r-   r   )rN   r8   rO   r   r+   r   r-   r   )rN   r8   rO   r   r  r8   r-   r%   )r  r_   r-   ro   )r+   r   r-   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   rB   r   ascii_lettersdigitsr   rD   	hexdigitsr   r   r   r%   r!  r7   r4   r?   r>   r=   rA   r   rK   r   rI   rH   rE   r   r   r   r   r   r   r   r   r   r   r   r   r   rJ   r   r@   r)   r   r   <module>r.     s  
 # " " " " " $ $ $ $ $ $  " " " " " " , , , , , , , , , ,                ) ( ( ( ( ( ( ( ( (Y11uuRyy11111IIcc#hh4G4GG
 %yy6 $.61B1B$B !3 &G #/ 
)E

		$/ 6/&-?$FGG"YYu%5%55 6+,, 0 0 
! 
! ; ; ; ; ;j ; ; ; 8= 	- 	- 	- 	- 	- 	- 38 ? ? ? ? ? ?D7 7 7 7 7 7 7 7t" " " " " " " "D    Z   
      ,	 	 	 	      $   *   D    , , , ,$M M M M 6 6 6 6
" " " "0, , , ,B .3M M M M M M:< < < <   ' ' ' '% % % %>   @A2 A2 A2 A2HA A A A"H H H H     r   