U
    „}agiX  ã                	   @  sD  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	d
„ edƒD ƒƒeedƒƒB Zeedƒ Zeedƒ ZeZeZeZedƒZeedƒB Z eej!ej" d ƒZ#e#edƒB Z$eej%ƒZ&eddddddddœƒZ'G dd„ de(ƒZ)e*dœddddœd d!„Z+e*dœd"ddd#œd$d%„Z,G d&d'„ d'ƒZ-G d(d)„ d)ƒZ.G d*d+„ d+e
ƒZ/d"d,d-d,d.œd/d0„Z0d"d,d"d1d2d,d3œd4d5„Z1d"d,d,d6œd7d8„Z2d"d,d,d6œd9d:„Z3d"d,d+d;d<œd=d>„Z4d"d,d+d;d<œd?d@„Z5d"d,d+dAdd,dBœdCdD„Z6d"d,ddEdFœdGdH„Z7d"d,d;d6œdIdJ„Z8d"d,dKd6œdLdM„Z9d"d,dKd6œdNdO„Z:d"d,ddPdFœdQdR„Z;d"d,ddSdFœdTdU„Z<dVdWœd"d,d2dKdXœdYdZ„Z=d"d,dKd6œd[d\„Z>d"d,d]dKd^œd_d`„Z?d"d,dKd6œdadb„Z@d"d,d2dKdcœddde„ZAd"d,d2dKdXœdfdg„ZBd"d,ddhdFœdidj„ZCd"d,d"ddkœdldm„ZDd]d2dnœdodp„ZEdddqœdrds„ZFdS )té    )Úannotations)ÚIterableN)ÚMappingProxyType)ÚAnyÚBinaryIOÚ
NamedTupleé   )ÚRE_DATETIMEÚRE_LOCALTIMEÚ	RE_NUMBERÚmatch_to_datetimeÚmatch_to_localtimeÚmatch_to_number)ÚKeyÚ
ParseFloatÚPosc                 c  s   | ]}t |ƒV  qd S ©N)Úchr©Ú.0Úi© r   úQ/var/www/html/publicvenv/lib/python3.8/site-packages/pip/_vendor/tomli/_parser.pyÚ	<genexpr>   s     r   é    é   ú	z	
z 	Ú
z-_z"'úúúú"ú\)z\bz\tz\nz\fz\rz\"z\\c                   @  s   e Zd ZdZdS )ÚTOMLDecodeErrorz0An error raised if a document is not valid TOML.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r#   5   s   r#   ©Úparse_floatr   r   zdict[str, Any])Ú__fpr)   Úreturnc                C  s@   |   ¡ }z| ¡ }W n tk
r2   tdƒd‚Y nX 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')`Nr(   )ÚreadÚdecodeÚAttributeErrorÚ	TypeErrorÚloads)r*   r)   ÚbÚsr   r   r   Úload9   s    ÿþr3   Ústr)Ú__sr)   r+   c                C  s~  |   dd¡}d}ttƒ tƒ ƒ}d}t|ƒ}t||tƒ}z|| }W n tk
r\   Y �qvY nX |dkrp|d7 }q*|tkr–t	|||||ƒ}t||tƒ}nŒ|dk�rz||d  }W n tk
rÈ   d}Y nX |j
 ¡  |dkrît|||ƒ\}}nt|||ƒ\}}t||tƒ}n|dk�r"t||d	ƒ‚t||ƒ}z|| }W n tk
�rT   Y �qvY nX |dk�rlt||d
ƒ‚|d7 }q*|jjS )zParse TOML from a string.z
r   r   r   r   ú[Nú#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)r5   r)   ÚsrcÚposÚoutÚheaderÚcharÚsecond_charr   r   r   r0   E   sR    






  ÿ
r0   c                   @  s|   e Zd ZdZdZdZ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 )r;   z)Flags that map to parsed keys/namespaces.r   r   ÚNone©r+   c                 C  s   i | _ tƒ | _d S r   )Ú_flagsÚsetÚ_pending_flags©Úselfr   r   r   Ú__init__�   s    zFlags.__init__r   Úint)ÚkeyÚflagr+   c                 C  s   | j  ||f¡ d S r   )rT   Úadd©rV   rY   rZ   r   r   r   Úadd_pending”   s    zFlags.add_pendingc                 C  s.   | j D ]\}}| j||dd� q| j  ¡  d S )NF©Ú	recursive)rT   rS   Úclearr\   r   r   r   rC   —   s    zFlags.finalize_pending©rY   r+   c                 C  sF   | j }|d d… D ]}||kr$ d S || d }q| |d d ¡ d S )NéÿÿÿÿÚnested)rR   Úpop)rV   rY   ÚcontÚkr   r   r   Ú	unset_allœ   s    zFlags.unset_allÚbool)rY   rZ   r_   r+   c                C  sˆ   | j }|d d… |d  }}|D ],}||kr@tƒ tƒ i dœ||< || d }q ||krjtƒ tƒ i dœ||< || |rxdnd  |¡ d S )Nrb   )rB   Úrecursive_flagsrc   rc   ri   rB   )rR   rS   r[   )rV   rY   rZ   r_   re   Ú
key_parentÚkey_stemrf   r   r   r   rS   ¤   s    z	Flags.setc                 C  s„   |sdS | j }|d d… D ]4}||kr, dS || }||d krF dS |d }q|d }||kr€|| }||d kp~||d kS dS )NFrb   ri   Trc   rB   )rR   )rV   rY   rZ   re   rf   Z
inner_contrk   r   r   r   Úis_¯   s    
z	Flags.is_N)r$   r%   r&   r'   ÚFROZENÚEXPLICIT_NESTrW   r]   rC   rg   rS   rl   r   r   r   r   r;   ‡   s   r;   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 )r:   rP   rQ   c                 C  s
   i | _ d S r   )rI   rU   r   r   r   rW   Â   s    zNestedDict.__init__T©Úaccess_listsr   rh   rI   )rY   rp   r+   c                C  sT   | j }|D ]D}||kri ||< || }|r<t|tƒr<|d }t|t ƒs
tdƒ‚q
|S )Nrb   z There is no nest behind this key)rI   Ú
isinstanceÚlistÚKeyError)rV   rY   rp   re   rf   r   r   r   Úget_or_create_nestÆ   s    

zNestedDict.get_or_create_nestra   c                 C  sV   |   |d d… ¡}|d }||krH|| }t|tƒs<tdƒ‚| i ¡ n
i g||< d S )Nrb   z/An object other than list found behind this key)rt   rq   rr   rs   Úappend)rV   rY   re   Zlast_keyÚlist_r   r   r   Úappend_nest_to_list×   s    
zNestedDict.append_nest_to_listN)r$   r%   r&   rW   rt   rw   r   r   r   r   r:   Á   s   ür:   c                   @  s   e Zd ZU ded< ded< dS )r9   r:   rH   r;   rB   N)r$   r%   r&   Ú__annotations__r   r   r   r   r9   ã   s   
r9   r   zIterable[str])rJ   rK   Úcharsr+   c                 C  s4   z| | |kr|d7 }qW n t k
r.   Y nX |S )Nr   )r?   )rJ   rK   ry   r   r   r   r=   è   s    r=   zfrozenset[str]rh   )rJ   rK   ÚexpectÚerror_onÚerror_on_eofr+   c                C  sˆ   z|   ||¡}W n4 tk
rD   t| ƒ}|r@t| |d|›�ƒd ‚Y nX | | ||… ¡s„| | |krn|d7 }qXt| |d| | ›�ƒ‚|S )Nz	Expected r   zFound invalid character )ÚindexÚ
ValueErrorÚlenrF   Ú
isdisjoint)rJ   rK   rz   r{   r|   Únew_posr   r   r   Ú
skip_untilñ   s    
r‚   ©rJ   rK   r+   c                 C  sH   z| | }W n t k
r$   d }Y nX |dkrDt| |d dtdd�S |S )Nr7   r   r   F©r{   r|   )r?   r‚   ÚILLEGAL_COMMENT_CHARS)rJ   rK   rN   r   r   r   rG     s    
    ÿrG   c                 C  s,   |}t | |tƒ}t| |ƒ}||kr |S q d S r   )r=   ÚTOML_WS_AND_NEWLINErG   )rJ   rK   Zpos_before_skipr   r   r   Úskip_comments_and_array_ws  s
    
r‡   ztuple[Pos, Key])rJ   rK   rL   r+   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k
rœ   t| |dƒd ‚Y nX |  d|¡s¶t| |dƒ‚|d |fS )	Nr   zCannot declare z twiceFr^   úCannot overwrite a valueú]z.Expected ']' at the end of a table declaration)r=   r>   Ú	parse_keyrB   rl   r;   rn   rm   rF   rS   rH   rt   rs   Ú
startswith©rJ   rK   rL   rY   r   r   r   rE     s     rE   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k
r–   t| |dƒd ‚Y nX |  d|¡s°t| |dƒ‚|d |fS )Né   ú"Cannot mutate immutable namespace Fr^   rˆ   z]]z0Expected ']]' at the end of an array declaration)r=   r>   rŠ   rB   rl   r;   rm   rF   rg   rS   rn   rH   rw   rs   r‹   rŒ   r   r   r   rD   .  s    rD   r   )rJ   rK   rL   rM   r)   r+   c                   s(  t | ||ƒ\}‰}ˆd d… ˆd  }}ˆ | }‡ ‡fdd„tdtˆƒƒD ƒ}	|	D ]6}
|j |
tj¡rxt| |d|
› �ƒ‚|j |
tj¡ qR|j |tj	¡r¬t| |d|› �ƒ‚z|j
 |¡}W n" tk
rÞ   t| |dƒd ‚Y nX ||krôt| |dƒ‚t|ttfƒ�r|jjˆ ˆ tj	dd	� |||< |S )
Nrb   c                 3  s   | ]}ˆ ˆd |…  V  qd S r   r   r   ©rM   rY   r   r   r   J  s     z!key_value_rule.<locals>.<genexpr>r   zCannot redefine namespace rŽ   rˆ   Tr^   )Úparse_key_value_pairÚranger   rB   rl   r;   rn   rF   r]   rm   rH   rt   rs   rq   rI   rr   rS   )rJ   rK   rL   rM   r)   Úvaluerj   rk   Zabs_key_parentZrelative_path_cont_keysZcont_keyÚnestr   r�   r   rA   C  s0      ÿrA   ztuple[Pos, Key, Any])rJ   rK   r)   r+   c                 C  sv   t | |ƒ\}}z| | }W n tk
r2   d }Y nX |dkrHt| |dƒ‚|d7 }t| |tƒ}t| ||ƒ\}}|||fS )Nú=z,Expected '=' after a key in a key/value pairr   )rŠ   r?   rF   r=   r>   Úparse_value)rJ   rK   r)   rY   rN   r’   r   r   r   r�   e  s    
r�   c                 C  s”   t | |ƒ\}}|f}t| |tƒ}z| | }W n tk
rD   d }Y nX |dkrV||fS |d7 }t| |tƒ}t | |ƒ\}}||f7 }t| |tƒ}q d S )NÚ.r   )Úparse_key_partr=   r>   r?   )rJ   rK   Zkey_partrY   rN   r   r   r   rŠ   u  s    

rŠ   ztuple[Pos, str]c                 C  s‚   z| | }W n t k
r$   d }Y nX |tkrN|}t| |tƒ}|| ||… fS |dkr`t| |ƒS |dkrrt| |ƒS t| |dƒ‚d S )Nú'r!   z(Invalid initial character for a key part)r?   ÚBARE_KEY_CHARSr=   Úparse_literal_strÚparse_one_line_basic_strrF   )rJ   rK   rN   Ú	start_posr   r   r   r—   ‡  s    


r—   c                 C  s   |d7 }t | |dd�S )Nr   F©Ú	multiline)Úparse_basic_str©rJ   rK   r   r   r   r›   —  s    r›   ztuple[Pos, list]c                 C  sº   |d7 }g }t | |ƒ}|  d|¡r.|d |fS t| ||ƒ\}}| |¡ t | |ƒ}| ||d … }|dkrv|d |fS |dkrŠt| |dƒ‚|d7 }t | |ƒ}|  d|¡r.|d |fS q.d S )Nr   r‰   ú,zUnclosed array)r‡   r‹   r•   ru   rF   )rJ   rK   r)   ÚarrayÚvalÚcr   r   r   Úparse_arrayœ  s"    



r¥   ztuple[Pos, dict]c                 C  s`  |d7 }t ƒ }tƒ }t| |tƒ}|  d|¡r:|d |jfS t| ||ƒ\}}}|d d… |d  }}| |tj¡r‚t	| |d|› �ƒ‚z|j
|dd�}	W n" tk
r¶   t	| |dƒd ‚Y nX ||	krÒt	| |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   Ú}rb   rŽ   Fro   rˆ   zDuplicate inline table key r¡   zUnclosed inline tableTr^   )r:   r;   r=   r>   r‹   rI   r�   rl   rm   rF   rt   rs   rq   rr   rS   )rJ   rK   r)   Znested_dictrB   rY   r’   rj   rk   r“   r¤   r   r   r   Úparse_inline_table´  s6    

r§   Fr�   )rJ   rK   rž   r+   c                C  sð   | ||d … }|d7 }|r’|dkr’|dkr~t | |tƒ}z| | }W n tk
r`   |df Y S X |dkrvt| |dƒ‚|d7 }t | |tƒ}|dfS |dkr¦t| |d	ƒS |d
krºt| |dƒS z|t| fW S  tk
rê   t| |dƒd ‚Y nX d S )Nr�   >   ú\ ú\	ú\
rª   Ú r   zUnescaped '\' in a stringr   z\ué   z\Ué   )r=   r>   r?   rF   r†   Úparse_hex_charÚBASIC_STR_ESCAPE_REPLACEMENTSrs   )rJ   rK   rž   Z	escape_idrN   r   r   r   Úparse_basic_str_escapeÔ  s,    r°   c                 C  s   t | |dd�S )NTr�   )r°   r    r   r   r   Ú parse_basic_str_escape_multilineñ  s    r±   rX   )rJ   rK   Úhex_lenr+   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)r   ÚHEXDIGIT_CHARSÚ
issupersetrF   rX   Úis_unicode_scalar_valuer   )rJ   rK   r²   Úhex_strZhex_intr   r   r   r®   õ  s    
r®   c                 C  s2   |d7 }|}t | |dtdd�}|d | ||… fS )Nr   r˜   Tr„   )r‚   ÚILLEGAL_LITERAL_STR_CHARS)rJ   rK   rœ   r   r   r   rš      s        ÿrš   )rJ   rK   Úliteralr+   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‚   Ú#ILLEGAL_MULTILINE_LITERAL_STR_CHARSrŸ   )rJ   rK   r¹   ÚdelimÚend_posÚresultr   r   r   Úparse_multiline_str	  s.    û
rÀ   c          	      C  sü   |rt }t}nt}t}d}|}z| | }W n" tk
rL   t| |dƒd ‚Y nX |dkr |sr|d || ||…  fS |  d|¡r–|d || ||…  fS |d7 }q|dkrÔ|| ||… 7 }|| |ƒ\}}||7 }|}q||krît| |d|›�ƒ‚|d7 }qd S )	Nr«   zUnterminated stringr!   r   ú"""rº   r"   zIllegal character )Ú!ILLEGAL_MULTILINE_BASIC_STR_CHARSr±   ÚILLEGAL_BASIC_STR_CHARSr°   r?   rF   r‹   )	rJ   rK   rž   r{   Zparse_escapesr¿   rœ   rN   Zparsed_escaper   r   r   rŸ   (  s6    rŸ   ztuple[Pos, Any]c              
   C  sî  z| | }W n t k
r$   d }Y nX |dkrR|  d|¡rHt| |dd�S t| |ƒS |dkr~|  d|¡rtt| |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rÒt| ||ƒS |dkræt| ||ƒS t | |¡}|�rDzt	|ƒ}W n2 t
k
�r6 } zt| |dƒ|‚W 5 d }~X Y nX | ¡ |fS t | |¡}|�rf| ¡ t|ƒfS t | |¡}|�rŠ| ¡ t||ƒfS | ||d … }	|	dk�r´|d ||	ƒfS | ||d
 … }
|
dk�rÞ|d
 ||
ƒfS t| |dƒ‚d S )Nr!   rÁ   F)r¹   r˜   r»   TÚtÚtruer¬   ÚfÚfalseé   r6   Ú{zInvalid date or datetimerº   >   ÚinfÚnan>   ú+nanú+infú-nanú-infzInvalid value)r?   r‹   rÀ   r›   rš   r¥   r§   r	   Úmatchr   r~   rF   Úendr
   r   r   r   )rJ   rK   r)   rN   Zdatetime_matchZdatetime_objÚeZlocaltime_matchZnumber_matchZfirst_threeZ
first_fourr   r   r   r•   H  sT    


 

r•   )rJ   rK   Úmsgr+   c                 C  s,   ddddœdd„}t |› d|| |ƒ› d�ƒS )zZReturn a `TOMLDecodeError` where error message is suffixed with
    coordinates in source.r4   r   rƒ   c                 S  sV   |t | ƒkrdS |  dd|¡d }|dkr4|d }n||  dd|¡ }d|› d|› �S )Nzend of documentr   r   r   zline z	, column )r   ÚcountÚrindex)rJ   rK   ÚlineÚcolumnr   r   r   Ú
coord_repr�  s    
z suffixed_err.<locals>.coord_reprz (at ú))r#   )rJ   rK   rÓ   rØ   r   r   r   rF   Œ  s    
rF   )Ú	codepointr+   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¶   )r)   r+   c                   s$   ˆ t k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.
    r4   r   )Ú	float_strr+   c                   s"   ˆ | ƒ}t |ttfƒrtdƒ‚|S )Nz*parse_float must not return dicts or lists)rq   rI   rr   r~   )rÛ   Zfloat_valuer(   r   r   Úsafe_parse_float­  s    z/make_safe_parse_float.<locals>.safe_parse_float)Úfloat)r)   rÜ   r   r(   r   r<   ¡  s    	r<   )GÚ
__future__r   Úcollections.abcr   ÚstringÚtypesr   Útypingr   r   r   Ú_rer	   r
   r   r   r   r   Ú_typesr   r   r   Ú	frozensetr‘   r   Z
ASCII_CTRLrÃ   rÂ   r¸   r¼   r…   r>   r†   Úascii_lettersÚdigitsr™   r@   Ú	hexdigitsr´   r¯   r~   r#   rÝ   r3   r0   r;   r:   r9   r=   r‚   rG   r‡   rE   rD   rA   r�   rŠ   r—   r›   r¥   r§   r°   r±   r®   rš   rÀ   rŸ   r•   rF   r¶   r<   r   r   r   r   Ú<module>   sr    "
ùÿB:"		"!ÿ	 D