a
    |Ä#diX  ã                	   @  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   úP/var/www/html/gsl.tools/lib/python3.9/site-packages/pip/_vendor/tomli/_parser.pyÚ	<genexpr>   ó    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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')`Nr)   )ÚreadÚdecodeÚAttributeErrorÚ	TypeErrorÚloads)r+   r*   ÚbÚsr   r   r   Úload9   s    ÿþr4   Ústr)Ú__sr*   r,   c                C  sx  |   dd¡}d}ttƒ tƒ ƒ}d}t|ƒ}t||tƒ}z|| }W n tyZ   Y �qpY n0 |dkrn|d7 }q*|tv r”t	|||||ƒ}t||tƒ}nŠ|dk�rz||d  }W n tyÄ   d}Y n0 |j
 ¡  |dkrêt|||ƒ\}}nt|||ƒ\}}t||tƒ}n|dk�rt||d	ƒ‚t||ƒ}z|| }W n t�yN   Y �qpY n0 |dk�rft||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)r6   r*   ÚsrcÚposÚoutÚheaderÚcharÚsecond_charr   r   r   r1   E   sN    






ÿ
r1   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   )rU   Úadd©rW   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)rU   rT   Úclearr]   r   r   r   rD   —   s    zFlags.finalize_pending©rZ   r,   c                 C  sF   | j }|d d… D ]}||vr$ d S || d }q| |d d ¡ d S )NéÿÿÿÿÚnested)rS   Úpop)rW   rZ   ÚcontÚkr   r   r   Ú	unset_allœ   s    zFlags.unset_allÚbool)rZ   r[   r`   r,   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 )Nrc   )rC   Úrecursive_flagsrd   rd   rj   rC   )rS   rT   r\   )rW   rZ   r[   r`   rf   Ú
key_parentÚkey_stemrg   r   r   r   rT   ¤   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 )NFrc   rj   Trd   rC   )rS   )rW   rZ   r[   rf   rg   Ú
inner_contrl   r   r   r   Úis_¯   s    
z	Flags.is_N)r%   r&   r'   r(   ÚFROZENÚEXPLICIT_NESTrX   r^   rD   rh   rT   rn   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;   rQ   rR   c                 C  s
   i | _ d S r   )rJ   rV   r   r   r   rX   Â   s    zNestedDict.__init__T©Úaccess_listsr   ri   rJ   )rZ   rr   r,   c                C  sT   | j }|D ]D}||vri ||< || }|r<t|tƒr<|d }t|t ƒs
tdƒ‚q
|S )Nrc   z There is no nest behind this key)rJ   Ú
isinstanceÚlistÚKeyError)rW   rZ   rr   rf   rg   r   r   r   Úget_or_create_nestÆ   s    

zNestedDict.get_or_create_nestrb   c                 C  sV   |   |d d… ¡}|d }||v rH|| }t|tƒs<tdƒ‚| i ¡ n
i g||< d S )Nrc   z/An object other than list found behind this key)rv   rs   rt   ru   Úappend)rW   rZ   rf   Úlast_keyÚlist_r   r   r   Úappend_nest_to_list×   s    
zNestedDict.append_nest_to_listN)r%   r&   r'   rX   rv   rz   r   r   r   r   r;   Á   s   ür;   c                   @  s   e Zd ZU ded< ded< dS )r:   r;   rI   r<   rC   N)r%   r&   r'   Ú__annotations__r   r   r   r   r:   ã   s   
r:   r   zIterable[str])rK   rL   Úcharsr,   c                 C  s2   z| | |v r|d7 }qW n t y,   Y n0 |S )Nr   )r@   )rK   rL   r|   r   r   r   r>   è   s    r>   zfrozenset[str]ri   )rK   rL   ÚexpectÚerror_onÚerror_on_eofr,   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 )ÚindexÚ
ValueErrorÚlenrG   Ú
isdisjoint)rK   rL   r}   r~   r   Únew_posr   r   r   Ú
skip_untilñ   s    
r…   ©rK   rL   r,   c                 C  sF   z| | }W n t y"   d }Y n0 |dkrBt| |d dtdd�S |S )Nr8   r   r   F©r~   r   )r@   r…   ÚILLEGAL_COMMENT_CHARS)rK   rL   rO   r   r   r   rH     s    
ÿrH   c                 C  s,   |}t | |tƒ}t| |ƒ}||kr |S q d S r   )r>   ÚTOML_WS_AND_NEWLINErH   )rK   rL   Úpos_before_skipr   r   r   Úskip_comments_and_array_ws  s
    
r‹   ztuple[Pos, Key])rK   rL   rM   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yš   t| |dƒd ‚Y n0 |  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_keyrC   rn   r<   rp   ro   rG   rT   rI   rv   ru   Ú
startswith©rK   rL   rM   rZ   r   r   r   rF     s     rF   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|¡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Ž   rC   rn   r<   ro   rG   rh   rT   rp   rI   rz   ru   r�   r�   r   r   r   rE   .  s    rE   r   )rK   rL   rM   rN   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yÜ   t| |dƒd ‚Y n0 ||v ròt| |dƒ‚t|ttfƒ�r|jjˆ ˆ tj	dd	� |||< |S )
Nrc   c                 3  s   | ]}ˆ ˆd |…  V  qd S r   r   r   ©rN   rZ   r   r   r   J  r   z!key_value_rule.<locals>.<genexpr>r   zCannot redefine namespace r’   rŒ   Tr_   )Úparse_key_value_pairÚranger‚   rC   rn   r<   rp   rG   r^   ro   rI   rv   ru   rs   rJ   rt   rT   )rK   rL   rM   rN   r*   Úvaluerk   rl   Úabs_key_parentÚrelative_path_cont_keysÚcont_keyÚnestr   r“   r   rB   C  s,    ÿrB   ztuple[Pos, Key, Any])rK   rL   r*   r,   c                 C  st   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Ž   r@   rG   r>   r?   Úparse_value)rK   rL   r*   rZ   rO   r–   r   r   r   r”   e  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_partr>   r?   r@   )rK   rL   Úkey_partrZ   rO   r   r   r   rŽ   u  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 )Nú'r"   z(Invalid initial character for a key part)r@   ÚBARE_KEY_CHARSr>   Úparse_literal_strÚparse_one_line_basic_strrG   )rK   rL   rO   Ú	start_posr   r   r   rž   ‡  s    


rž   c                 C  s   |d7 }t | |dd�S )Nr   F©Ú	multiline)Úparse_basic_str©rK   rL   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œ   rw   rG   )rK   rL   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y´   t	| |dƒd ‚Y n0 ||	v rÐt	| |d|›�ƒ‚||	|< t| |tƒ}| ||d … }
|
dk�r|d |jfS |
d	k�r"t	| |d
ƒ‚t|ttfƒ�rD|j|tjdd� |d7 }t| |tƒ}q:d S )Nr   Ú}rc   r’   Frq   rŒ   zDuplicate inline table key r©   zUnclosed inline tableTr_   )r;   r<   r>   r?   r�   rJ   r”   rn   ro   rG   rv   ru   rs   rt   rT   )rK   rL   r*   Únested_dictrC   rZ   r–   rk   rl   rš   r¬   r   r   r   Úparse_inline_table´  s6    

r°   Fr¥   )rK   rL   r¦   r,   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r¤t| |d	ƒS |d
kr¸t| |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é   )r>   r?   r@   rG   r‰   Úparse_hex_charÚBASIC_STR_ESCAPE_REPLACEMENTSru   )rK   rL   r¦   Ú	escape_idrO   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¹   rY   )rK   rL   Ú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Ú
issupersetrG   rY   Úis_unicode_scalar_valuer   )rK   rL   rº   Úhex_strÚ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)rK   rL   r¤   r   r   r   r¢      s    
ÿr¢   )rK   rL   Ú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§   )rK   rL   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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 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@   rG   r�   )	rK   rL   r¦   r~   Úparse_escapesrÈ   r¤   rO   Úparsed_escaper   r   r   r§   (  s6    r§   ztuple[Pos, Any]c              
   C  sî  z| | }W n t y"   d }Y n0 |dkrP|  d|¡rFt| |dd�S t| |ƒS |dkr||  d|¡rrt| |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 n4 t
�y6 } zt| |dƒ|‚W Y d }~n
d }~0 0 | ¡ |fS t | |¡}|�rf| ¡ 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 )Nr"   rÊ   F)rÂ   r    rÄ   TÚtÚtruer³   ÚfÚfalseé   r7   Ú{zInvalid date or datetimerÃ   >   ÚinfÚnan>   z-infz+nanz+infz-nanzInvalid value)r@   r�   rÉ   r£   r¢   r­   r°   r	   Úmatchr   r�   rG   Úendr
   r   r   r   )rK   rL   r*   rO   Údatetime_matchÚdatetime_objÚeÚlocaltime_matchÚnumber_matchÚfirst_threeÚ
first_fourr   r   r   rœ   H  sT    


$

rœ   )rK   rL   Ú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.r5   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)rK   rL   ÚlineÚcolumnr   r   r   Ú
coord_repr�  s    
z suffixed_err.<locals>.coord_reprz (at ú))r$   )rK   rL   rà   rå   r   r   r   rG   Œ  s    
rG   )Ú	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 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.
    r5   r   )Ú	float_strr,   c                   s"   ˆ | ƒ}t |ttfƒrtdƒ‚|S )Nz*parse_float must not return dicts or lists)rs   rJ   rt   r�   )rè   Ú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   Ú
ASCII_CTRLrÌ   rË   rÁ   rÅ   rˆ   r?   r‰   Úascii_lettersÚdigitsr¡   rA   Ú	hexdigitsr¼   r¶   r�   r$   rë   r4   r1   r<   r;   r:   r>   r…   rH   r‹   rF   rE   rB   r”   rŽ   rž   r£   r­   r°   r¸   r¹   rµ   r¢   rÉ   r§   rœ   rG   r¾   r=   r   r   r   r   Ú<module>   sr    "
ùÿB:"		"!ÿ	 D