/ lib / setuptools / _vendor / tomli / _parser.pyc
_parser.pyc
  1  o

  2  6�HciX�	@s\ddlmZddlmZddlZddlmZddlmZm	Z	m
  3  Z
  4  ddlmZm
Z
mZmZmZmZddlmZmZmZed	d
  5  �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
  6  �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�
  7  NamedTuple�)�RE_DATETIME�RE_LOCALTIME�	RE_NUMBER�match_to_datetime�match_to_localtime�match_to_number)�Key�
  8  ParseFloat�Posccs�|]}t|�VqdS�N)�chr��.0�i�r��C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2800.0_x64__qbz5n2kfra8p0\lib\site-packages\setuptools\_vendor\tomli\_parser.py�	<genexpr>s�r� ��	z	
  9  z 	�
 10  z-_z"'���
�"�\)z\bz\tz\nz\fz\rz\"z\\c@seZdZdZdS)�TOMLDecodeErrorz0An error raised if a document is not valid TOML.N)�__name__�
 11  __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
 12  ��|dkrut|||�\}}nt
|||�\}}t||t�}n
 13  |d	kr�t||d
 14  ��t||�}z||}Wnty�Y|jjSw|dkr�t||d��|d7}q)zParse TOML from a string.z
 15  rrrTr�[N�#zInvalid statementz5Expected newline or end of document after a statement)�replace�Output�
 16  NestedDict�Flags�make_safe_parse_float�
 17  skip_chars�TOML_WS�
 18  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
 19  #��
 20  
 21  ���r1c@sTeZdZdZdZdZddd�Zddd
�Zddd�Zddd�Z	ddd�Z
 22  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�
 23  key_parent�key_stemrerrrrS�sz	Flags.setcCs�|sdS|j}|dd�D]}||vrdS||}||dvr#dS|d}q
|d}||vr@||}||dvp?||dvSdS)NFrarhTrbrC)rR)rVrXrYrdreZ
 24  inner_contrjrrr�is_�s
 25  z	Flags.is_N�r+rQ)rXrrYrZr+rQ�rXrr+rQ)rXrrYrZr_rgr+rQ)rXrrYrZr+rg)r$r%r&r'�FROZEN�
EXPLICIT_NESTrWr]rDrfrSrkrrrrr<�s
 26  
 27  
 28  
 29  
 30  r<c@s0eZdZddd�Zdd�ddd
�Zddd�ZdS)r;r+rQcCs
 31  i|_dSr)rJrUrrrrW�s
 32  zNestedDict.__init__T��access_listsrXrrqrgrJcCsT|j}|D]"}||vri||<||}|rt|t�r|d}t|t�s'td��q|S)Nraz There is no nest behind this key)rJ�
 33  isinstance�list�KeyError)rVrXrqrdrerrr�get_or_create_nest�s
 34  �zNestedDict.get_or_create_nestcCsX|�|dd��}|d}||vr%||}t|t�std��|�i�dSig||<dS)Nraz/An object other than list found behind this key)rurrrsrt�append)rVrXrdZlast_key�list_rrr�append_nest_to_list�s
 35  zNestedDict.append_nest_to_listNrl)rXrrqrgr+rJrm)r$r%r&rWrurxrrrrr;�s
 36  
 37  �r;c@seZdZUded<ded<dS)r:r;rIr<rCN)r$r%r&�__annotations__rrrrr:�s
 38  r:rKrLr�chars�
Iterable[str]cCsBz|||vr|d7}|||vsW|SW|Sty Y|Sw)Nr)r@)rKrLrzrrrr>�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�
 39  ValueError�lenrG�
 40  isdisjoint)rKrLr|r}r�new_posrrr�
 41  skip_until�s���r�cCsFz||}Wntyd}Ynw|dkr!t||ddtdd�S|S)Nr8rrF�r}r)r@r��ILLEGAL_COMMENT_CHARS)rKrLrOrrrrHs��rHcCs*	|}t||t�}t||�}||kr|Sqr)r>�TOML_WS_AND_NEWLINErH)rKrLZpos_before_skiprrr�skip_comments_and_array_wss
 42  �r�rM�tuple[Pos, Key]cCs�|d7}t||t�}t||�\}}|j�|tj�s!|j�|tj�r+t||d|�d���|jj	|tjdd�z|j
 43  �|�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_keyrCrkr<rornrGrSrIrurt�
 44  startswith�rKrLrMrXrrrrFs �rFcCs�|d7}t||t�}t||�\}}|j�|tj�r"t||d|����|j�|�|jj	|tj
 45  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�rCrkr<rnrGrfrSrorIrxrtr�r�rrrrE.s�rErNrcs t|||�\}�}�dd��d}}�|}��fdd�tdt���D�}	|	D]}
 46  |j�|
 47  tj�r<t||d|
 48  ����|j�|
 49  tj�q)|j�|tj	�rVt||d|����z|j
 50  �|�}Wntylt||d�d�w||vrwt||d��t
|ttf�r�|jj��tj	dd	�|||<|S)
 51  Nrac3s �|]}��d|�VqdSrrr�rNrXrrrJs�z!key_value_rule.<locals>.<genexpr>rzCannot redefine namespace r�r�Tr^)�parse_key_value_pair�ranger�rCrkr<rorGr]rnrIrurtrrrJrsrS)rKrLrMrNr)�valuerirjZabs_key_parentZrelative_path_cont_keysZcont_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�
 52  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@)rKrLZkey_partrXrOrrrr�us"�
 53  �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�
 54  
 55  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�rvrG)rKrLr)�array�val�crrr�parse_array�s&
 56  
 57  
 58  
 59  �r��tuple[Pos, dict]cCsR|d7}t�}t�}t||t�}|�d|�r|d|jfS	t|||�\}}}|dd�|d}}|�|tj�rBt	||d|����z	|j
 60  |dd�}	WntyYt	||d�d�w||	vrgt	||d	|����||	|<t||t�}|||d�}
 61  |
 62  dkr�|d|jfS|
 63  d
 64  kr�t	||d��t|tt
f�r�|j|tjdd�|d7}t||t�}q)
Nr�}Trar�Frpr�zDuplicate inline table key r�zUnclosed inline tabler^)r;r<r>r?r�rJr�rkrnrGrurtrrrsrS)rKrLr)Znested_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
 65  kr\t||d�Sz|t|fWStyqt||d�d�w)Nr�>z\	z\ �\
 66  r��rzUnescaped '\' in a stringrz\u�z\U�)r>r?r@rGr��parse_hex_char�BASIC_STR_ESCAPE_REPLACEMENTSrt)rKrLr�Z	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�
 67  issupersetrGrZ�is_unicode_scalar_valuer)rKrLr��hex_strZhex_intrrrr��s
 68  r�cCs2|d7}|}t||dtdd�}|d|||�fS)Nrr�Tr�)r��ILLEGAL_LITERAL_STR_CHARS)rKrLr�rrrr�s
 69  �r��literalcCs�|d7}|�d|�r|d7}|r&d}t||dtdd�}|||�}|d}nd}t||dd	�\}}|�||�s;||fS|d7}|�||�sK|||fS|d7}|||d
 70  fS)N�rrr��'''Tr�r!r�r�)r�r��#ILLEGAL_MULTILINE_LITERAL_STR_CHARSr�)rKrLr��delim�end_pos�resultrrr�parse_multiline_str	s.�
 71  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)
 72  Nr�TzUnterminated stringr!r�"""r�r"zIllegal character )�!ILLEGAL_MULTILINE_BASIC_STR_CHARSr��ILLEGAL_BASIC_STR_CHARSr�r@rGr�)	rKrLr�r}Z
parse_escapesr�r�rOZ
parsed_escaperrrr�(s<��r��tuple[Pos, Any]c
 73  Cs�z||}Wntyd}Ynw|dkr(|�d|�r#t||dd�St||�S|dkr>|�d|�r9t||dd�St||�S|dkrN|�d	|�rN|d
 74  dfS|dkr^|�d|�r^|d
dfS|dkrht|||�S|dkrrt|||�St�||�}|r�zt	|�}Wnt
 75  y�}zt||d�|�d}~ww|��|fSt
�||�}|r�|��t|�fSt�||�}|r�|��t||�fS|||d�}	|	dvr�|d||	�fS|||d
 76  �}
 77  |
 78  dvr�|d
 79  ||
 80  �fSt||d��)Nr!r�F)r�r�r�T�t�truer��f�false�r7�{zInvalid date or datetimer�>�inf�nan>z-nanz+nanz+infz-infz
Invalid value)r@r�r�r�r�r�r�r	�matchrr�rG�endr
 81  r
rr)rKrLr)rOZdatetime_matchZdatetime_obj�eZlocaltime_matchZnumber_matchZfirst_threeZ
 82  first_fourrrrr�HsZ�
 83  
 84  ��r��msgcCs$ddd�}t|�d|||��d	��S)zZReturn a `TOMLDecodeError` where error message is suffixed with
 85      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�
 86  coord_repr�s
 87  z suffixed_err.<locals>.coord_reprz (at �)N)rKr6rLrr+r6)r#)rKrLr�r�rrrrG�s
 88  
 89  rG�	codepointcCs0d|ko	dknpd|kodkSS)Nri��i�i��r)r�rrrr��s0r�cs�turtSd�fdd�}|S)	a%A decorator to make `parse_float` safe.
 90  
 91      `parse_float` must not return dicts or lists, because these types
 92      would be mixed with parsed TOML tables and arrays, thus confusing
 93      the parser. The returned decorated callable raises `ValueError`
 94      instead of returning illegal types.
 95      �	float_strr6r+rcs"�|�}t|ttf�rtd��|S)Nz*parse_float must not return dicts or lists)rrrJrsr�)r�Zfloat_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,)rKr6rLrrzr{r+r)rKr6rLrr|r6r}r~rrgr+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�
 96  __future__r�collections.abcr�string�typesr�typingrrr�_rer	r
 97  rrr
r�_typesrrr�	frozensetr�r�
 98  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 "
 99  ��
B:"
100  
101  	
102  
103  
104  	
105  
106  
107  "
108  
109  
110  
111  
112  !�
113  
114  
115  
116  	
117  
118   
119  D
120