HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib64/python3.10/site-packages/tomli/__pycache__/_parser.cpython-310.pyc
o

weiX�	@s\ddlmZddlmZddlZddlmZddlmZm	Z	m
Z
ddlmZm
Z
mZmZmZmZddlmZmZmZed	d
�ed�D��eed��BZeed
�Zeed�ZeZeZeZed�Zeed�BZ eej!ej"d�Z#e#ed�BZ$eej%�Z&edd
dddddd��Z'Gdd�de(�Z)e*d�dwd"d#�Z+e*d�dxd&d'�Z,Gd(d)�d)�Z-Gd*d+�d+�Z.Gd,d-�d-e
�Z/dyd3d4�Z0dzd:d;�Z1d{d<d=�Z2d{d>d?�Z3d|dBdC�Z4d|dDdE�Z5d}dHdI�Z6d~dKdL�Z7ddMdN�Z8d�dPdQ�Z9d�dRdS�Z:d�dUdV�Z;d�dXdY�Z<dZd[�d�d]d^�Z=d�d_d`�Z>d�dcdd�Z?d�dedf�Z@d�dhdi�ZAd�djdk�ZBd�dmdn�ZCd�dpdq�ZDd�dsdt�ZEd�dudv�ZFdS)��)�annotations)�IterableN)�MappingProxyType)�Any�BinaryIO�
NamedTuple�)�RE_DATETIME�RE_LOCALTIME�	RE_NUMBER�match_to_datetime�match_to_localtime�match_to_number)�Key�
ParseFloat�Posccs�|]}t|�VqdS�N)�chr��.0�i�r�F/home/arjun/projects/env/lib/python3.10/site-packages/tomli/_parser.py�	<genexpr>s�r� ��	z	
z 	�
z-_z"'���
�"�\)z\bz\tz\nz\fz\rz\"z\\c@seZdZdZdS)�TOMLDecodeErrorz0An error raised if a document is not valid TOML.N)�__name__�
__module__�__qualname__�__doc__rrrrr#5sr#��parse_float�__fprr)r�return�dict[str, Any]cCs:|��}z|��}Wntytd�d�wt||d�S)z%Parse TOML from a binary file object.zEFile must be opened in binary mode, e.g. use `open('foo.toml', 'rb')`Nr()�read�decode�AttributeError�	TypeError�loads)r*r)�b�srrr�load9s���r4�__s�strcCsj|�dd�}d}tt�t��}d}t|�}	t||t�}z||}Wnty.Y|jjSw|dkr8|d7}q|tvrKt	|||||�}t||t�}nC|dkr�z||d}Wntybd}Ynw|j
��|dkrut|||�\}}nt
|||�\}}t||t�}n
|d	kr�t||d
��t||�}z||}Wnty�Y|jjSw|dkr�t||d��|d7}q)zParse TOML from a string.z
rrrTr�[N�#zInvalid 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)r5r)�src�pos�out�header�char�second_charrrrr1EsZ
#��

���r1c@sTeZdZdZdZdZddd�Zddd
�Zddd�Zddd�Z	ddd�Z
ddd�ZdS)r<z)Flags that map to parsed keys/namespaces.rrr+�NonecCsi|_t�|_dSr)�_flags�set�_pending_flags��selfrrr�__init__�szFlags.__init__�keyr�flag�intcCs|j�||f�dSr)rT�add�rVrXrYrrr�add_pending�szFlags.add_pendingcCs.|jD]\}}|j||dd�q|j��dS)NF��	recursive)rTrS�clearr\rrrrD�szFlags.finalize_pendingcCsF|j}|dd�D]}||vrdS||d}q	|�|dd�dS)N����nested)rR�pop)rVrX�cont�krrr�	unset_all�szFlags.unset_allr_�boolcCs�|j}|dd�|d}}|D]}||vr t�t�id�||<||d}q||vr5t�t�id�||<|||r<dnd�|�dS)Nra)rC�recursive_flagsrbrbrhrC)rRrSr[)rVrXrYr_rd�
key_parent�key_stemrerrrrS�sz	Flags.setcCs�|sdS|j}|dd�D]}||vrdS||}||dvr#dS|d}q
|d}||vr@||}||dvp?||dvSdS)NFrarhTrbrC)rR)rVrXrYrdre�
inner_contrjrrr�is_�s
z	Flags.is_N�r+rQ)rXrrYrZr+rQ�rXrr+rQ)rXrrYrZr_rgr+rQ)rXrrYrZr+rg)r$r%r&r'�FROZEN�
EXPLICIT_NESTrWr]rDrfrSrlrrrrr<�s




r<c@s0eZdZddd�Zdd�ddd
�Zddd�ZdS)r;r+rQcCs
i|_dSr)rJrUrrrrW�s
zNestedDict.__init__T��access_listsrXrrrrgrJcCsT|j}|D]"}||vri||<||}|rt|t�r|d}t|t�s'td��q|S)Nraz There is no nest behind this key)rJ�
isinstance�list�KeyError)rVrXrrrdrerrr�get_or_create_nest�s
�zNestedDict.get_or_create_nestcCsX|�|dd��}|d}||vr%||}t|t�std��|�i�dSig||<dS)Nraz/An object other than list found behind this key)rvrsrtru�append)rVrXrd�last_key�list_rrr�append_nest_to_list�s
zNestedDict.append_nest_to_listNrm)rXrrrrgr+rJrn)r$r%r&rWrvrzrrrrr;�s

�r;c@seZdZUded<ded<dS)r:r;rIr<rCN)r$r%r&�__annotations__rrrrr:�s
r:rKrLr�chars�
Iterable[str]cCsBz|||vr|d7}|||vsW|SW|Sty Y|Sw)Nr)r@)rKrLr|rrrr>�s����r>�expect�error_on�frozenset[str]�error_on_eofrgcCs�z|�||�}Wnty!t|�}|rt||d|���d�Ynw|�|||��sF|||vr;|d7}|||vs1t||d||����|S)Nz	Expected rzFound invalid character )�index�
ValueError�lenrG�
isdisjoint)rKrLr~rr��new_posrrr�
skip_until�s���r�cCsFz||}Wntyd}Ynw|dkr!t||ddtdd�S|S)Nr8rrF�rr�)r@r��ILLEGAL_COMMENT_CHARS)rKrLrOrrrrHs��rHcCs*	|}t||t�}t||�}||kr|Sqr)r>�TOML_WS_AND_NEWLINErH)rKrL�pos_before_skiprrr�skip_comments_and_array_wss
�r�rM�tuple[Pos, Key]cCs�|d7}t||t�}t||�\}}|j�|tj�s!|j�|tj�r+t||d|�d���|jj	|tjdd�z|j
�|�WntyKt||d�d�w|�
d|�sXt||d��|d|fS)	NrzCannot declare z twiceFr^�Cannot overwrite a value�]z.Expected ']' at the end of a table declaration)r>r?�	parse_keyrCrlr<rprorGrSrIrvru�
startswith�rKrLrMrXrrrrFs �rFcCs�|d7}t||t�}t||�\}}|j�|tj�r"t||d|����|j�|�|jj	|tj
dd�z|j�|�Wnt
yHt||d�d�w|�d|�sUt||d��|d|fS)N��"Cannot mutate immutable namespace Fr^r�z]]z0Expected ']]' at the end of an array declaration)r>r?r�rCrlr<rorGrfrSrprIrzrur�r�rrrrE.s�rErNrcs t|||�\}�}�dd��d}}�|}��fdd�tdt���D�}	|	D]}
|j�|
tj�r<t||d|
����|j�|
tj�q)|j�|tj	�rVt||d|����z|j
�|�}Wntylt||d�d�w||vrwt||d��t
|ttf�r�|jj��tj	dd	�|||<|S)
Nrac3s �|]}��d|�VqdSrrr�rNrXrrrJs�z!key_value_rule.<locals>.<genexpr>rzCannot redefine namespace r�r�Tr^)�parse_key_value_pair�ranger�rCrlr<rprGr]rorIrvrursrJrtrS)rKrLrMrNr)�valuerirj�abs_key_parent�relative_path_cont_keys�cont_key�nestrr�rrBCs.��rB�tuple[Pos, Key, Any]cCstt||�\}}z||}Wntyd}Ynw|dkr#t||d��|d7}t||t�}t|||�\}}|||fS)N�=z,Expected '=' after a key in a key/value pairr)r�r@rGr>r?�parse_value)rKrLr)rXrOr�rrrr�es�
r�cCs�t||�\}}|f}t||t�}	z||}Wnty"d}Ynw|dkr+||fS|d7}t||t�}t||�\}}||f7}t||t�}q)NT�.r)�parse_key_partr>r?r@)rKrL�key_partrXrOrrrr�us"�
�r��tuple[Pos, str]cCs|z||}Wntyd}Ynw|tvr&|}t||t�}||||�fS|dkr/t||�S|dkr8t||�St||d��)N�'r!z(Invalid initial character for a key part)r@�BARE_KEY_CHARSr>�parse_literal_str�parse_one_line_basic_strrG)rKrLrO�	start_posrrrr��s�

r�cCs|d7}t||dd�S)NrF��	multiline)�parse_basic_str�rKrLrrrr��sr��tuple[Pos, list]cCs�|d7}g}t||�}|�d|�r|d|fS	t|||�\}}|�|�t||�}|||d�}|dkr<|d|fS|dkrFt||d��|d7}t||�}|�d|�r[|d|fSq)Nrr�T�,zUnclosed array)r�r�r�rwrG)rKrLr)�array�val�crrr�parse_array�s&



�r��tuple[Pos, dict]cCsR|d7}t�}t�}t||t�}|�d|�r|d|jfS	t|||�\}}}|dd�|d}}|�|tj�rBt	||d|����z	|j
|dd�}	WntyYt	||d�d�w||	vrgt	||d	|����||	|<t||t�}|||d�}
|
dkr�|d|jfS|
d
kr�t	||d��t|tt
f�r�|j|tjdd�|d7}t||t�}q)
Nr�}Trar�Frqr�zDuplicate inline table key r�zUnclosed inline tabler^)r;r<r>r?r�rJr�rlrorGrvrursrtrS)rKrLr)�nested_dictrCrXr�rirjr�r�rrr�parse_inline_table�s<��r�Fr�r�cCs�|||d�}|d7}|rH|dvrH|dkr>t||t�}z||}Wn
ty/|dfYSw|dkr:t||d��|d7}t||t�}|dfS|dkrRt||d	�S|d
kr\t||d�Sz|t|fWStyqt||d�d�w)Nr�>�\	�\ �\
r��rzUnescaped '\' in a stringrz\u�z\U�)r>r?r@rGr��parse_hex_char�BASIC_STR_ESCAPE_REPLACEMENTSru)rKrLr��	escape_idrOrrr�parse_basic_str_escape�s0��r�cCst||dd�S)NTr�)r�r�rrr� parse_basic_str_escape_multiline�sr��hex_lenrZcCsd||||�}t|�|kst�|�st||d��||7}t|d�}t|�s,t||d��|t|�fS)NzInvalid hex value�z/Escaped character is not a Unicode scalar value)r��HEXDIGIT_CHARS�
issupersetrGrZ�is_unicode_scalar_valuer)rKrLr��hex_str�hex_intrrrr��s
r�cCs2|d7}|}t||dtdd�}|d|||�fS)Nrr�Tr�)r��ILLEGAL_LITERAL_STR_CHARS)rKrLr�rrrr�s
�r��literalcCs�|d7}|�d|�r|d7}|r&d}t||dtdd�}|||�}|d}nd}t||dd	�\}}|�||�s;||fS|d7}|�||�sK|||fS|d7}|||d
fS)N�rrr��'''Tr�r!r�r�)r�r��#ILLEGAL_MULTILINE_LITERAL_STR_CHARSr�)rKrLr��delim�end_pos�resultrrr�parse_multiline_str	s.�
r�c	Cs�|rt}t}nt}t}d}|}	z||}Wnty$t||d�d�w|dkrN|s7|d||||�fS|�d|�rI|d||||�fS|d7}q|dkrh||||�7}|||�\}}||7}|}q||vrut||d	|����|d7}q)
Nr�TzUnterminated stringr!r�"""r�r"zIllegal character )�!ILLEGAL_MULTILINE_BASIC_STR_CHARSr��ILLEGAL_BASIC_STR_CHARSr�r@rGr�)	rKrLr�r�
parse_escapesr�r�rO�
parsed_escaperrrr�(s<��r��tuple[Pos, Any]c
Cs�z||}Wntyd}Ynw|dkr(|�d|�r#t||dd�St||�S|dkr>|�d|�r9t||dd�St||�S|dkrN|�d	|�rN|d
dfS|dkr^|�d|�r^|d
dfS|dkrht|||�S|dkrrt|||�St�||�}|r�zt	|�}Wnt
y�}zt||d�|�d}~ww|��|fSt
�||�}|r�|��t|�fSt�||�}|r�|��t||�fS|||d�}	|	dvr�|d||	�fS|||d
�}
|
dvr�|d
||
�fSt||d��)Nr!r�F)r�r�r�T�t�truer��f�false�r7�{zInvalid date or datetimer�>�inf�nan>�+inf�+nan�-inf�-nanz
Invalid value)r@r�r�r�r�r�r�r	�matchrr�rG�endr
r
rr)rKrLr)rO�datetime_match�datetime_obj�e�localtime_match�number_match�first_three�
first_fourrrrr�HsZ�

��r��msgcCs$ddd�}t|�d|||��d	��S)zZReturn a `TOMLDecodeError` where error message is suffixed with
    coordinates in source.rKr6rLrr+cSsV|t|�krdS|�dd|�d}|dkr|d}n	||�dd|�}d|�d|��S)Nzend of documentrrrzline z	, column )r��count�rindex)rKrL�line�columnrrr�
coord_repr�s
z suffixed_err.<locals>.coord_reprz (at �)N)rKr6rLrr+r6)r#)rKrLr�r�rrrrG�s

rG�	codepointcCs0d|ko	dknpd|kodkSS)Nri��i�i��r)r�rrrr��s0r�cs�turtSd�fdd�}|S)	a%A decorator to make `parse_float` safe.

    `parse_float` must not return dicts or lists, because these types
    would be mixed with parsed TOML tables and arrays, thus confusing
    the parser. The returned decorated callable raises `ValueError`
    instead of returning illegal types.
    �	float_strr6r+rcs"�|�}t|ttf�rtd��|S)Nz*parse_float must not return dicts or lists)rsrJrtr�)r��float_valuer(rr�safe_parse_float�sz/make_safe_parse_float.<locals>.safe_parse_floatN)r�r6r+r)�float)r)r�rr(rr=�s	r=)r*rr)rr+r,)r5r6r)rr+r,)rKr6rLrr|r}r+r)rKr6rLrr~r6rr�r�rgr+r)rKr6rLrr+r)rKr6rLrrMr:r+r�)rKr6rLrrMr:rNrr)rr+r)rKr6rLrr)rr+r�)rKr6rLrr+r�)rKr6rLrr+r�)rKr6rLrr)rr+r�)rKr6rLrr)rr+r�)rKr6rLrr�rgr+r�)rKr6rLrr�rZr+r�)rKr6rLrr�rgr+r�)rKr6rLrr)rr+r�)rKr6rLrr�r6r+r#)r�rZr+rg)r)rr+r)G�
__future__r�collections.abcr�string�typesr�typingrrr�_rer	r
rrr
r�_typesrrr�	frozensetr�r�
ASCII_CTRLr�r�r�r�r�r?r��
ascii_letters�digitsr�rA�	hexdigitsr�r�r�r#r�r4r1r<r;r:r>r�rHr�rFrErBr�r�r�r�r�r�r�r�r�r�r�r�r�rGr�r=rrrr�<module>st "
��
B:"

	


	


"




!�



	

 
D