a
    baid                  	   @  s  U d dl mZ d dlZd dlmZ ddlmZmZmZm	Z	m
Z
mZ dZer~d dlmZ d dlmZmZmZ dd	lmZmZmZ e Zd
ed< edd edD eedB Zd
ed< eed Zd
ed< eed Zd
ed< eZ d
ed< eZ!d
ed< eZ"d
ed< edZ#d
ed< e#edB Z$d
ed< edZ%d
ed< e%edB Z&d
ed< ed Z'd
ed!< ed"ddd#d$d%d&d'Z(d
ed(< G d)d* d*Z)G d+d, d,e*Z+e,d-d.d/d0d1d2d3Z-e,d-d4d/d0d5d6d7Z.G d8d9 d9Z/G d:d; d;Z0G d<d= d=Z1d4d>d?d>d@dAdBZ2d4d>d4dCdDd>dEdFdGZ3d4d>d>dHdIdJZ4d4d>d>dHdKdLZ5d4d>d=dMdNdOdPZ6d4d>d=dMdNdQdRZ7d4d>d=dSd/d>dTdUdVZ8d4d>d/dWdXdYdZd[Z9d4d>dMdHd\d]Z:d4d>d^dHd_d`Z;d4d>d^dHdadbZ<d4d>d/dWdcdYdddeZ=d4d>d/dWdfdYdgdhZ>ddid4d>dDd^djdkdlZ?d4d>d^dHdmdnZ@d4d>dWd^dodpdqZAd4d>d^dHdrdsZBd4d>dDd^dtdudvZCd4d>dDd^djdwdxZDd4d>d/dWdydYdzd{ZEdWdDd|d}d~ZFd/d/dddZGdS )    )annotationsN)MappingProxyType   )RE_DATETIMERE_LOCALTIME	RE_NUMBERmatch_to_datetimematch_to_localtimematch_to_numberF)Iterable)IOAnyFinal)Key
ParseFloatPosr   MAX_INLINE_NESTINGc                 c  s   | ]}t |V  qd S N)chr.0i r   S/var/www/html/SiteWeb/venv/lib/python3.9/site-packages/pip/_vendor/tomli/_parser.py	<genexpr>%       r          
ASCII_CTRL	ILLEGAL_BASIC_STR_CHARSz	
!ILLEGAL_MULTILINE_BASIC_STR_CHARSILLEGAL_LITERAL_STR_CHARS#ILLEGAL_MULTILINE_LITERAL_STR_CHARSILLEGAL_COMMENT_CHARSz 	TOML_WS
TOML_WS_AND_NEWLINEz@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_BARE_KEY_CHARSz"'KEY_INITIAL_CHARSZabcdefABCDEF0123456789HEXDIGIT_CHARS"\)z\bz\tz\nz\fz\rz\"z\\BASIC_STR_ESCAPE_REPLACEMENTSc                   @  s   e Zd ZdZdS )DEPRECATED_DEFAULTzjSentinel to be used as default arg during deprecation
    period of TOMLDecodeError's free-form arguments.N)__name__
__module____qualname____doc__r   r   r   r   r1   F   s   r1   c                   @  s,   e Zd ZdZeeefdddddddZdS )	TOMLDecodeErrora:  An error raised if a document is not valid TOML.

    Adds the following attributes to ValueError:
    msg: The unformatted error message
    doc: The TOML document being parsed
    pos: The index of doc where parsing failed
    lineno: The line corresponding to pos
    colno: The column corresponding to pos
    zstr | type[DEPRECATED_DEFAULT]zPos | type[DEPRECATED_DEFAULT]r   )msgdocposargsc           
      G  s"  |s"t |tr"t |tr"t |tsdd l}|jdtdd |turN|g|R }|turb|g|R }|turv|g|R }tj| g|R   d S |	dd|d }|dkr|d }n||
dd| }|t|krd}nd| d	| }| d
| d}	t| |	 || _|| _|| _|| _|| _d S )Nr   z{Free-form arguments for TOMLDecodeError are deprecated. Please set 'msg' (str), 'doc' (str) and 'pos' (int) arguments only.   )
stacklevelr&   r   zend of documentzline z	, column z (at ))
isinstancestrintwarningswarnDeprecationWarningr1   
ValueError__init__countrindexlenr7   r8   r9   linenocolno)
selfr7   r8   r9   r:   rA   rI   rJ   Z
coord_reprerrmsgr   r   r   rE   V   sH    
zTOMLDecodeError.__init__N)r2   r3   r4   r5   r1   rE   r   r   r   r   r6   K   s
   r6   parse_floatz	IO[bytes]r   dict[str, Any])__fprN   returnc                C  s>   |   }z| }W n ty0   tddY n0 t||dS )z%Parse TOML from a binary file object.zEFile must be opened in binary mode, e.g. use `open('foo.toml', 'rb')`NrM   )readdecodeAttributeError	TypeErrorloads)rP   rN   bsr   r   r   load   s    rY   r?   )__srN   rQ   c             	   C  s  z|  dd}W n. ttfy>   tdt| j ddY n0 d}t }d}t|}t||t}z|| }W n t	y   Y qY n0 |dkr|d7 }qV|t
v rt|||||}t||t}n|d	kr6z||d  }W n t	y   d}Y n0 |j  |d	krt|||\}}nt|||\}}t||t}n|d
krLtd||t||}z|| }W n t	y|   Y qY n0 |dkrtd|||d7 }qV|jjS )zParse TOML from a string.z
r&   zExpected str object, not ''Nr   r   r   [#zInvalid statementz5Expected newline or end of document after a statement)replacerT   rU   typer4   Outputmake_safe_parse_float
skip_charsr%   
IndexErrorr)   key_value_ruleflagsfinalize_pendingcreate_list_rulecreate_dict_ruler6   skip_commentdatadict)rZ   rN   srcr9   outheadercharsecond_charr   r   r   rV      s\    








rV   c                   @  s   e Zd ZU dZdZded< dZded< ddd	d
ZddddddZddddZ	dddddZ
dddddddZddddddZdS )Flagsz)Flags that map to parsed keys/namespaces.r   r   FROZENr   EXPLICIT_NESTNonerQ   c                 C  s   i | _ t | _d S r   )_flagsset_pending_flagsrK   r   r   r   rE      s    zFlags.__init__r   r@   )keyflagrQ   c                 C  s   | j ||f d S r   )rx   addrK   rz   r{   r   r   r   add_pending   s    zFlags.add_pendingc                 C  s.   | j D ]\}}| j||dd q| j   d S )NF	recursive)rx   rw   clearr}   r   r   r   rf      s    zFlags.finalize_pendingrz   rQ   c                 C  sF   | j }|d d D ]}||vr$ d S || d }q||d d  d S )Nnested)rv   pop)rK   rz   contkr   r   r   	unset_all   s    zFlags.unset_allbool)rz   r{   r   rQ   c                C  s   | j }|d d |d  }}|D ],}||vr@t t i d||< || d }q ||vrjt t i d||< || |rxdnd | d S )Nr   )re   recursive_flagsr   r   r   re   )rv   rw   r|   )rK   rz   r{   r   r   
key_parentkey_stemr   r   r   r   rw      s    z	Flags.setc                 C  s   |sdS | j }|d d D ]4}||vr, dS || }||d v rF dS |d }q|d }||v r|| }||d v p~||d v S dS )NFr   r   Tr   re   )rv   )rK   rz   r{   r   r   Z
inner_contr   r   r   r   is_  s    
z	Flags.is_N)r2   r3   r4   r5   rr   __annotations__rs   rE   r~   rf   r   rw   r   r   r   r   r   rq      s   
rq   c                   @  sB   e Zd ZddddZddddd	d
ddZdddddZdS )
NestedDictrt   ru   c                 C  s
   i | _ d S r   )rk   ry   r   r   r   rE     s    zNestedDict.__init__Taccess_listsr   r   rO   )rz   r   rQ   c                C  sT   | j }|D ]D}||vri ||< || }|r<t|tr<|d }t|t s
tdq
|S )Nr   z There is no nest behind this key)rk   r>   listKeyError)rK   rz   r   r   r   r   r   r   get_or_create_nest  s    

zNestedDict.get_or_create_nestr   c                 C  sV   |  |d d }|d }||v rH|| }t|ts<td|i  n
i g||< d S )Nr   z/An object other than list found behind this key)r   r>   r   r   append)rK   rz   r   Zlast_keylist_r   r   r   append_nest_to_list+  s    
zNestedDict.append_nest_to_listN)r2   r3   r4   rE   r   r   r   r   r   r   r     s   r   c                   @  s   e Zd ZddddZdS )r`   rt   ru   c                 C  s   t  | _t | _d S r   )r   rj   rq   re   ry   r   r   r   rE   8  s    zOutput.__init__N)r2   r3   r4   rE   r   r   r   r   r`   7  s   r`   r   zIterable[str])rl   r9   charsrQ   c                 C  s2   z| | |v r|d7 }qW n t y,   Y n0 |S )Nr   )rc   )rl   r9   r   r   r   r   rb   =  s    rb   zfrozenset[str]r   )rl   r9   expecterror_onerror_on_eofrQ   c                C  s   z|  ||}W n2 tyB   t| }|r>td|| |d Y n0 || || s| | |vrl|d7 }qVtd| | | ||S )Nz	Expected r   zFound invalid character )indexrD   rH   r6   
isdisjoint)rl   r9   r   r   r   new_posr   r   r   
skip_untilF  s    
r   )rl   r9   rQ   c                 C  sF   z| | }W n t y"   d }Y n0 |dkrBt| |d dtddS |S )Nr]   r   r&   Fr   r   )rc   r   r$   )rl   r9   ro   r   r   r   ri   \  s    
ri   c                 C  s,   |}t | |t}t| |}||kr |S q d S r   )rb   r'   ri   )rl   r9   Zpos_before_skipr   r   r   skip_comments_and_array_wsh  s
    
r   ztuple[Pos, Key])rl   r9   rm   rQ   c                 C  s   |d7 }t | |t}t| |\}}|j|tjsB|j|tjrVtd| d| ||jj	|tjdd z|j
| W n  ty   td| |d Y n0 | d|std| ||d |fS )	Nr   zCannot declare z twiceFr   Cannot overwrite a value]z.Expected ']' at the end of a table declaration)rb   r%   	parse_keyre   r   rq   rs   rr   r6   rw   rj   r   r   
startswithrl   r9   rm   rz   r   r   r   rh   q  s     rh   c                 C  s   |d7 }t | |t}t| |\}}|j|tjrDtd| | ||j| |jj	|tj
dd z|j| W n  ty   td| |d Y n0 | d|std| ||d |fS )Nr;   "Cannot mutate immutable namespace Fr   r   z]]z0Expected ']]' at the end of an array declaration)rb   r%   r   re   r   rq   rr   r6   r   rw   rs   rj   r   r   r   r   r   r   r   rg     s     rg   r   )rl   r9   rm   rn   rN   rQ   c                   s*  t | ||dd\}}d d d  }} | } fddtdtD }	|	D ]6}
|j|
tjr|td|
 | ||j|
tj qV|j|tj	rtd| | |z|j
|}W n  ty   td	| |d Y n0 ||v rtd	| |t|ttfr|jj  tj	d
d |||< |S )Nr   )nest_lvlr   c                 3  s   | ]} d |  V  qd S r   r   r   rn   rz   r   r   r     r   z!key_value_rule.<locals>.<genexpr>r   zCannot redefine namespace r   r   Tr   )parse_key_value_pairrangerH   re   r   rq   rs   r6   r~   rr   rj   r   r   r>   rk   r   rw   )rl   r9   rm   rn   rN   valuer   r   Zabs_key_parentZrelative_path_cont_keysZcont_keynestr   r   r   rd     s,    rd   r@   ztuple[Pos, Key, Any])rl   r9   rN   r   rQ   c                 C  sv   t | |\}}z| | }W n ty0   d }Y n0 |dkrFtd| ||d7 }t| |t}t| |||\}}|||fS )N=z,Expected '=' after a key in a key/value pairr   )r   rc   r6   rb   r%   parse_value)rl   r9   rN   r   rz   ro   r   r   r   r   r     s    
r   c                 C  s   t | |\}}|f}t| |t}z| | }W n tyB   d }Y n0 |dkrT||fS |d7 }t| |t}t | |\}}||f7 }t| |t}q d S )N.r   )parse_key_partrb   r%   rc   )rl   r9   Zkey_partrz   ro   r   r   r   r     s    

r   ztuple[Pos, str]c                 C  s   z| | }W n t y"   d }Y n0 |tv rL|}t| |t}|| || fS |dkr^t| |S |dkrpt| |S td| |d S )Nr[   r.   z(Invalid initial character for a key part)rc   r(   rb   parse_literal_strparse_one_line_basic_strr6   )rl   r9   ro   	start_posr   r   r   r     s    


r   c                 C  s   |d7 }t | |ddS )Nr   F	multiline)parse_basic_strrl   r9   r   r   r   r     s    r   ztuple[Pos, list[Any]]c                 C  s   |d7 }g }t | |}| d|r.|d |fS t| |||\}}|| t | |}| ||d  }|dkrx|d |fS |dkrtd| ||d7 }t | |}| d|r.|d |fS q.d S )Nr   r   ,zUnclosed array)r   r   r   r   r6   )rl   r9   rN   r   arrayvalcr   r   r   parse_array  s"    



r   ztuple[Pos, dict[str, Any]]c                 C  s`  |d7 }t  }t }t| |t}| d|r:|d |jfS t| |||\}}}|d d |d  }}	||tjrt	d| | |z|j
|dd}
W n  ty   t	d| |d Y n0 |	|
v rt	d|	| |||
|	< t| |t}| ||d  }|dkr|d |jfS |d	kr$t	d
| |t|ttfrF|j|tjdd |d7 }t| |t}q:d S )Nr   }r   r   Fr   r   zDuplicate inline table key r   zUnclosed inline tableTr   )r   rq   rb   r%   r   rk   r   r   rr   r6   r   r   r>   r   rw   )rl   r9   rN   r   Znested_dictre   rz   r   r   r   r   r   r   r   r   parse_inline_table  s6    

r   r   )rl   r9   r   rQ   c                C  s   | ||d  }|d7 }|r|dv r|dkr|t | |t}z| | }W n ty^   |df Y S 0 |dkrttd| ||d7 }t | |t}|dfS |dkrt| |d	S |d
krt| |dS z|t| fW S  ty   td| |d Y n0 d S )Nr;   >   \
z\	z\ r    r&   zUnescaped '\' in a stringr   z\u   z\U   )rb   r%   rc   r6   r'   parse_hex_charr0   r   )rl   r9   r   Z	escape_idro   r   r   r   parse_basic_str_escape1  s,    r   c                 C  s   t | |ddS )NTr   )r   r   r   r   r    parse_basic_str_escape_multilineN  s    r   )rl   r9   hex_lenrQ   c                 C  sd   | |||  }t ||ks&t|s2td| |||7 }t|d}t|sXtd| ||t|fS )NzInvalid hex value   z/Escaped character is not a Unicode scalar value)rH   r*   
issupersetr6   r@   is_unicode_scalar_valuer   )rl   r9   r   hex_strZhex_intr   r   r   r   R  s    
r   c                 C  s2   |d7 }|}t | |dtdd}|d | || fS )Nr   r[   Tr   )r   r"   )rl   r9   r   r   r   r   r   _  s    
r   )rl   r9   literalrQ   c                C  s   |d7 }|  d|r|d7 }|rLd}t| |dtdd}| || }|d }nd}t| |dd	\}}|  ||sv||fS |d7 }|  ||s||| fS |d7 }|||d
  fS )N   r&   r   r[   '''Tr   r.   r   r;   )r   r   r#   r   )rl   r9   r   delimZend_posresultr   r   r   parse_multiline_strh  s.    
r   c          	      C  s   |rt }t}nt}t}d}|}z| | }W n  tyJ   td| |d Y n0 |dkr|sp|d || ||  fS | d|r|d || ||  fS |d7 }q|dkr|| || 7 }|| |\}}||7 }|}q||v rtd|| ||d7 }qd S )	Nr   zUnterminated stringr.   r   """r   r/   zIllegal character )r!   r   r    r   rc   r6   r   )	rl   r9   r   r   Zparse_escapesr   r   ro   Zparsed_escaper   r   r   r     s6    r   ztuple[Pos, Any]c              
   C  s  |t krtdt  dz| | }W n ty:   d }Y n0 |dkrh| d|r^t| |ddS t| |S |dkr| d|rt| |d	dS t| |S |d
kr| d|r|d d	fS |dkr| d|r|d dfS |dkrt| |||d S |dkr
t| |||d S t	
| |}|rjzt|}W n4 ty\ } ztd| ||W Y d }~n
d }~0 0 | |fS t
| |}|r| t|fS t
| |}	|	r|	 t|	|fS | ||d  }
|
dv r|d ||
fS | ||d  }|dv r|d ||fS td| |d S )Nz;TOML inline arrays/tables are nested more than the allowed z levelsr.   r   F)r   r[   r   Tttruer   ffalse   r\   r   {zInvalid date or datetimer   >   infnan>   z+infz-infz+nanz-nanzInvalid value)r   RecursionErrorrc   r   r   r   r   r   r   r   matchr   rD   r6   endr   r	   r   r
   )rl   r9   rN   r   ro   Zdatetime_matchZdatetime_objeZlocaltime_matchZnumber_matchZfirst_threeZ
first_fourr   r   r   r     s`    



$

r   )	codepointrQ   c                 C  s0   d|   kodkn  p.d|   ko*dkS   S )Nr   i  i   i r   )r   r   r   r   r     s    r   )rN   rQ   c                   s$    t u rt S ddd fdd}|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.
    r?   r   )	float_strrQ   c                   s"    | }t |ttfrtd|S )Nz*parse_float must not return dicts or lists)r>   rk   r   rD   )r   Zfloat_valuerM   r   r   safe_parse_float  s    z/make_safe_parse_float.<locals>.safe_parse_float)float)rN   r   r   rM   r   ra     s    	ra   )H
__future__r   systypesr   _rer   r   r   r   r	   r
   TYPE_CHECKINGcollections.abcr   typingr   r   r   _typesr   r   r   getrecursionlimitr   r   	frozensetr   r   r   r    r!   r"   r#   r$   r%   r'   r(   r)   r*   r0   r1   rD   r6   r   rY   rV   rq   r   r`   rb   r   ri   r   rh   rg   rd   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ra   r   r   r   r   <module>   s|    	*=G:"		"#	 L