a
    ibòf�W  ã                	   @   sò  d dl Z d dlmZ d dlmZmZmZmZmZm	Z	m
Z
mZmZ d dlmZmZmZmZmZmZmZmZmZ er|d dlmZ edd„ edƒD ƒƒeed	ƒƒB Zeed
ƒ Zeedƒ ZeZeedƒ Z eZ!edƒZ"e"edƒB Z#ee j$e j% d ƒZ&e&edƒB Z'edd
ddddddœƒZ(ee)gef Z*ee)df Z+e,Z-G dd„ de.ƒZ/e0dœee*ee)ef dœdd„Z1e0dœe)e*ee)ef dœdd „Z2G d!d"„ d"ƒZ3G d#d$„ d$ƒZ4G d%d&„ d&ƒZ5e)e-e	e) e-d'œd(d)„Z6e)e-e)ee) e7e-d*œd+d,„Z8e)e-e-d-œd.d/„Z9e)e-e-d-œd0d1„Z:e)e-e3e-d2œd3d4„Z;e)e-e3e-d2œd5d6„Z<e)e-e3e*e-d7œd8d9„Z=e)e-e*ee-e+ef d:œd;d<„Z>e)e-ee-e+f d-œd=d>„Z?e)e-ee-e)f d-œd?d@„Z@e)e-ee-e)f d-œdAdB„ZAe)e-e*ee-eBf d:œdCdD„ZCe)e-e*ee-eDf d:œdEdF„ZEdGdHœe)e-e7ee-e)f dIœdJdK„ZFe)e-ee-e)f d-œdLdM„ZGe)e-e,ee-e)f dNœdOdP„ZHe)e-ee-e)f d-œdQdR„ZIe)e-e7ee-e)f dSœdTdU„ZJe)e-e7ee-e)f dIœdVdW„ZKe)e-dXee-e)f dYœdZd[„ZLe)e-e*ee-ef d:œd\d]„ZMe)e-e)e/d^œd_d`„ZNe,e7daœdbdc„ZOdS )dé    N)ÚMappingProxyType)	ÚTYPE_CHECKINGÚAnyÚCallableÚDictÚ	FrozenSetÚIterableÚOptionalÚTextIOÚTuple)	ÚRE_BINÚRE_DATETIMEÚRE_HEXÚRE_LOCALTIMEÚ	RE_NUMBERÚRE_OCTÚmatch_to_datetimeÚmatch_to_localtimeÚmatch_to_number)ÚPatternc                 c   s   | ]}t |ƒV  qd S ©N)Úchr)Ú.0Úi© r   úV/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/pip/_vendor/tomli/_parser.pyÚ	<genexpr>   ó    r   é    é   ú	z	
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'   B   s   r'   ©Úparse_float)Úfpr-   Úreturnc                C   s   |   ¡ }t||d�S )zParse TOML from a file object.r,   )ÚreadÚloads)r.   r-   Úsr   r   r   ÚloadF   s    r3   )r2   r-   r/   c                C   sL  |   dd¡}d}tƒ }t||tƒ}z|| }W n tyF   Y �qDY n0 |dkrZ|d7 }q|tv r~t||||ƒ}t||tƒ}nt|dkrÞz||d  }W n ty¬   d}Y n0 |dkrÄt|||ƒ}nt|||ƒ}t||tƒ}n|dkròt	||dƒ‚t
||ƒ}z|| }W n t�y"   Y �qDY n0 |dk�r:t	||d	ƒ‚|d7 }q|jjS )
zParse TOML from a string.z
r!   r   é   ú[Nú#zInvalid statementz5Expected newline or end of document after a statement)ÚreplaceÚStateÚ
skip_charsÚTOML_WSÚ
IndexErrorÚKEY_INITIAL_CHARSÚkey_value_ruleÚcreate_list_ruleÚcreate_dict_ruleÚsuffixed_errÚskip_commentÚoutÚdict)r2   r-   ÚsrcÚposÚstateÚcharÚsecond_charr   r   r   r1   L   sH    



ÿ
r1   c                   @   s   e Zd Zddœdd„ZdS )r8   N©r/   c                 C   s   t ƒ | _tƒ | _d| _d S )Nr   )Ú
NestedDictrB   ÚFlagsÚflagsÚheader_namespace©Úselfr   r   r   Ú__init__Œ   s    zState.__init__)r(   r)   r*   rP   r   r   r   r   r8   ‹   s   r8   c                   @   sp   e Zd ZdZdZdZddœdd„Zeddœd	d
„Zeee	ddœdd„Z
ee	eddœdd„Zee	edœdd„ZdS )rK   z)Flags that map to parsed keys/namespaces.r   r4   NrI   c                 C   s
   i | _ d S r   ©Ú_flagsrN   r   r   r   rP   ž   s    zFlags.__init__©Úkeyr/   c                 C   sF   | j }|d d… D ]}||vr$ d S || d }q| |d d ¡ d S )NéÿÿÿÿÚnested)rR   Úpop)rO   rT   ÚcontÚkr   r   r   Ú	unset_all¡   s    zFlags.unset_all)Úhead_keyÚrel_keyÚflagr/   c                 C   s‚   | j }|D ],}||vr*tƒ tƒ i dœ||< || d }q
|D ]@}||v r\|| d  |¡ n|htƒ i dœ||< || d }q<d S )N©rL   Úrecursive_flagsrV   rV   rL   ©rR   ÚsetÚadd)rO   r[   r\   r]   rX   rY   r   r   r   Úset_for_relative_key©   s    zFlags.set_for_relative_key)rT   r]   Ú	recursiver/   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 )NrU   r^   rV   r_   rL   r`   )rO   rT   r]   rd   rX   Ú
key_parentÚkey_stemrY   r   r   r   ra   ¶   s    z	Flags.set)rT   r]   r/   c                 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 )NFrU   r_   TrV   rL   rQ   )rO   rT   r]   rX   rY   Ú
inner_contrf   r   r   r   Úis_Á   s    
z	Flags.is_)r(   r)   r*   r+   ÚFROZENÚEXPLICIT_NESTrP   ÚKeyrZ   Úintrc   Úboolra   rh   r   r   r   r   rK   •   s   rK   c                   @   sB   e Zd Zddœdd„Zddœeeedœdd	„Zedd
œdd„ZdS )rJ   NrI   c                 C   s
   i | _ d S r   )rC   rN   r   r   r   rP   Ô   s    zNestedDict.__init__T©Úaccess_lists)rT   ro   r/   c                C   sT   | j }|D ]D}||vri ||< || }|r<t|tƒr<|d }t|t ƒs
tdƒ‚q
|S )NrU   z There is no nest behind this key)rC   Ú
isinstanceÚlistÚKeyError)rO   rT   ro   rX   rY   r   r   r   Úget_or_create_nestØ   s    

zNestedDict.get_or_create_nestrS   c                 C   sV   |   |d d… ¡}|d }||v rH|| }t|tƒs<tdƒ‚| i ¡ n
i g||< d S )NrU   z/An object other than list found behind this key)rs   rp   rq   rr   Úappend)rO   rT   rX   Úlast_keyÚlist_r   r   r   Úappend_nest_to_listé   s    
zNestedDict.append_nest_to_list)	r(   r)   r*   rP   rk   rm   rC   rs   rw   r   r   r   r   rJ   Ó   s   üûrJ   )rD   rE   Úcharsr/   c                 C   s2   z| | |v r|d7 }qW n t y,   Y n0 |S )Nr4   )r;   )rD   rE   rx   r   r   r   r9   õ   s    r9   )rD   rE   ÚexpectÚerror_onÚerror_on_eofr/   c          	   	   C   sŠ   z|   ||¡}W n2 tyB   t| ƒ}|r>t| |d|›d�ƒ‚Y n0 | | ||… ¡}|r†tt|ƒƒ}|   ||¡}t| |d|›d�ƒ‚|S )Nz
Expected "r%   zFound invalid character ")ÚindexÚ
ValueErrorÚlenr@   ÚintersectionÚnextÚiter)	rD   rE   ry   rz   r{   Únew_posÚ	bad_charsÚbad_charÚbad_posr   r   r   Ú
skip_untilþ   s    r†   ©rD   rE   r/   c                 C   sF   z| | }W n t y"   d }Y n0 |dkrBt| |d dtdd�S |S )Nr6   r4   r!   F©rz   r{   )r;   r†   ÚILLEGAL_COMMENT_CHARS)rD   rE   rG   r   r   r   rA     s    
ÿrA   c                 C   s,   |}t | |tƒ}t| |ƒ}||kr |S q d S r   )r9   ÚTOML_WS_AND_NEWLINErA   )rD   rE   Úpos_before_skipr   r   r   Úskip_comments_and_array_ws!  s
    
rŒ   )rD   rE   rF   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ƒ‚Y n0 ||_| ||d … dkrÀt| |dƒ‚|d S )	Nr4   zCan not declare z twiceF©rd   úCan not overwrite a valueú]z.Expected "]" at the end of a table declaration)r9   r:   Ú	parse_keyrL   rh   rK   rj   ri   r@   ra   rB   rs   rr   rM   )rD   rE   rF   rT   r   r   r   r?   *  s     r?   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ƒ‚Y n0 ||_| ||d … }|dkrÆt| |d|›d�ƒ‚|d S )	Né   ú#Can not mutate immutable namespace Fr�   rŽ   z]]zFound "z3" at the end of an array declaration. Expected "]]")r9   r:   r�   rL   rh   rK   ri   r@   rZ   ra   rj   rB   rw   rr   rM   )rD   rE   rF   rT   Ú
end_markerr   r   r   r>   =  s(    
ýr>   )rD   rE   rF   r-   r/   c                 C   sä   t | ||ƒ\}}}|d d… |d  }}|j| }|j |tj¡rTt| |d|› �ƒ‚|j |j|tj¡ z|j	 
|¡}	W n ty–   t| |dƒ‚Y n0 ||	v r¬t| |dƒ‚t|ttfƒrØ|j| }
|jj|
tjdd� ||	|< |S )NrU   r’   rŽ   Tr�   )Úparse_key_value_pairrM   rL   rh   rK   ri   r@   rc   rj   rB   rs   rr   rp   rC   rq   ra   )rD   rE   rF   r-   rT   Úvaluere   rf   Úabs_key_parentÚnestÚabs_keyr   r   r   r=   Y  s&    
ÿ
r=   )rD   rE   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 pairr4   )r�   r;   r@   r9   r:   Úparse_value)rD   rE   r-   rT   rG   r•   r   r   r   r”   r  s    
r”   c                 C   s–   t | |ƒ\}}|g}t| |tƒ}z| | }W n tyB   d }Y n0 |dkrX|t|ƒfS |d7 }t| |tƒ}t | |ƒ\}}| |¡ t| |tƒ}q d S )NÚ.r4   )Úparse_key_partr9   r:   r;   Útuplert   )rD   rE   Úkey_partrT   rG   r   r   r   r�   ‚  s    

r�   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_CHARSr9   Úparse_literal_strÚparse_one_line_basic_strr@   )rD   rE   rG   Ú	start_posr   r   r   rœ   ”  s    


rœ   c                 C   s   |d7 }t | |dd�S )Nr4   F©Ú	multiline)Úparse_basic_str©rD   rE   r   r   r   r¢   ¤  s    r¢   c                 C   sÊ   |d7 }g }t | |ƒ}| ||d … dkr6|d |fS t| ||ƒ\}}| |¡ t | |ƒ}| ||d … }|dkr~|d |fS |dkr’t| |dƒ‚|d7 }t | |ƒ}| ||d … dkr6|d |fS q6d S )Nr4   r�   ú,zUnclosed array)rŒ   rš   rt   r@   )rD   rE   r-   ÚarrayÚvalÚcr   r   r   Úparse_array©  s"    



r¬   c                 C   sf  |d7 }t ƒ }tƒ }t| |tƒ}| ||d … dkrB|d |jfS t| ||ƒ\}}}|d d… |d  }}| |tj¡rŠt| |d|› �ƒ‚z|j	|dd�}	W n t
yº   t| |dƒ‚Y n0 ||	v rØt| |d|› d	�ƒ‚||	|< t| |tƒ}| ||d … }
|
dk�r|d |jfS |
d
k�r*t| |dƒ‚t|ttfƒ�rL|j|tjdd� |d7 }t| |tƒ}qBd S )Nr4   Ú}rU   r’   Frn   rŽ   zDuplicate inline table key "r%   r¨   zUnclosed inline tableTr�   )rJ   rK   r9   r:   rC   r”   rh   ri   r@   rs   rr   rp   rq   ra   )rD   rE   r-   Únested_dictrL   rT   r•   re   rf   r—   r«   r   r   r   Úparse_inline_tableÁ  s6    

r¯   Fr¤   )rD   rE   r¥   r/   c                C   sö   | ||d … }|d7 }|r„|dv r„|dkrpt | |tƒ}| ||d … }|sT|dfS |dkrht| |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kràt| |dƒ‚t| |dƒ‚Y n0 d S )Nr‘   >   ú\
z\ z\	r°   r4   Ú r!   zUnescaped "\" in a stringz\ué   z\Ué   úUnterminated string)r9   r:   r@   rŠ   Úparse_hex_charÚBASIC_STR_ESCAPE_REPLACEMENTSrr   r~   )rD   rE   r¥   Ú	escape_idrG   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¹   )rD   rE   Úhex_lenr/   c                 C   sl   | ||| … }t |ƒ|ks.tdd„ |D ƒƒr:t| |dƒ‚||7 }t|dƒ}t|ƒs`t| |dƒ‚|t|ƒfS )Nc                 s   s   | ]}|t jvV  qd S r   )ÚstringÚ	hexdigits)r   r«   r   r   r   r     r   z!parse_hex_char.<locals>.<genexpr>zInvalid hex valueé   z/Escaped character is not a Unicode scalar value)r~   Úanyr@   rl   Úis_unicode_scalar_valuer   )rD   rE   rº   Úhex_strÚhex_intr   r   r   rµ     s    
rµ   c                 C   s2   |d7 }|}t | |dtdd�}|d | ||… fS )Nr4   rŸ   Trˆ   )r†   ÚILLEGAL_LITERAL_STR_CHARS)rD   rE   r£   r   r   r   r¡     s    
ÿr¡   )rD   rE   Úliteralr/   c                C   sÆ   |d7 }| ||d … dkr$|d7 }|rTd}t | |dtdd�}| ||… }|d }nd}t| |dd	�\}}| ||d … |kr†||fS |d7 }| ||d … |kr®||| fS |d7 }|||d
  fS )Né   r4   r!   rŸ   z'''Trˆ   r%   r¤   r‘   )r†   Ú#ILLEGAL_MULTILINE_LITERAL_STR_CHARSr¦   )rD   rE   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yH   t| |dƒ‚Y n0 |dkr¨|sn|d || ||…  fS | |d |d … dkrž|d || ||…  fS |d7 }q|dkrÜ|| ||… 7 }|| |ƒ\}}||7 }|}q||v røt| |d|›d�ƒ‚|d7 }qd S )	Nr±   r´   r%   r4   rÄ   ú""r&   zIllegal character ")Ú!ILLEGAL_MULTILINE_BASIC_STR_CHARSr¹   ÚILLEGAL_BASIC_STR_CHARSr¸   r;   r@   )	rD   rE   r¥   rz   Úparse_escapesrÈ   r£   rG   Úparsed_escaper   r   r   r¦   6  s6    r¦   r   )rD   rE   Úregexr/   c                 C   s,   |  | |¡}|st| |dƒ‚| ¡ | ¡ fS )NzUnexpected sequence)Úmatchr@   ÚendÚgroup)rD   rE   rÏ   rÐ   r   r   r   Úparse_regexV  s    rÓ   c                 C   s°  z| | }W n t y"   d }Y n0 |dkr\| |d |d … dkrRt| |dd�S t| |ƒS |dkr”| |d |d … dkrŠt| |d	d�S t| |ƒS |d
krÀ| |d |d … dkrÀ|d d	fS |dkrì| |d |d … dkrì|d dfS t | |¡}|�r8zt|ƒ}W n  t�y*   t| |dƒ‚Y n0 | 	¡ |fS t
 | |¡}|�rZ| 	¡ t|ƒfS |dk�rü| |d |d … }|dk�r¤t| |d tƒ\}}|t|dƒfS |dk�rÐt| |d tƒ\}}	|t|	dƒfS |dk�rüt| |d tƒ\}}
|t|
dƒfS t | |¡}|�r | 	¡ t||ƒfS |dk�r6t| ||ƒS |dk�rLt| ||ƒS | ||d … }|dv �rv|d ||ƒfS | ||d … }|dv �r |d ||ƒfS t| |dƒ‚d S )Nr%   r4   rÄ   rÊ   F)rÃ   rŸ   z''TÚtr²   ÚrueÚfé   ÚalsezInvalid date or datetimeÚ0r‘   Úxr½   Úor³   Úbr5   Ú{>   ÚnanÚinf>   z+infz-infz+nanz-nanzInvalid value)r;   rÉ   r¢   r¡   r   rÐ   r   r}   r@   rÑ   r   r   rÓ   r   rl   r   r   r   r   r¬   r¯   )rD   rE   r-   rG   Údatetime_matchÚdatetime_objÚlocaltime_matchrH   rÀ   Úoct_strÚbin_strÚnumber_matchÚfirst_threeÚ
first_fourr   r   r   rš   ]  sj    










rš   )rD   rE   Úmsgr/   c                 C   s,   t tt dœdd„}t|› d|| |ƒ› d�ƒS )zZReturn a `TOMLDecodeError` where error message is suffixed with
    coordinates in source.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   r4   zline z	, column )r~   ÚcountÚrindex)rD   rE   ÚlineÚcolumnr   r   r   Ú
coord_repr±  s    
z suffixed_err.<locals>.coord_reprz (at ú))ÚstrÚPosr'   )rD   rE   rè   rí   r   r   r   r@   ­  s    
r@   )Ú	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¿   )Pr»   Útypesr   Útypingr   r   r   r   r   r   r	   r
   r   Úpip._vendor.tomli._rer   r   r   r   r   r   r   r   r   Úrer   Ú	frozensetÚranger   Ú
ASCII_CTRLrÌ   rË   rÂ   rÅ   r‰   r:   rŠ   Úascii_lettersÚdigitsr    r<   r¶   rï   Ú
ParseFloatrk   rl   rð   r}   r'   Úfloatr3   r1   r8   rK   rJ   r9   rm   r†   rA   rŒ   r?   r>   r=   r”   r�   rœ   r¢   rq   r¬   rC   r¯   r¸   r¹   rµ   r¡   rÉ   r¦   rÓ   rš   r@   r¿   r   r   r   r   Ú<module>   sŽ   ,,"ùÿ  ?
>"
ù	þ!ÿ
þ	 
þP