o
    Ëý°j�W  ã                   @   sx  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œdede*dee)ef fdd„Z1e0dœd e)de*dee)ef fd!d"„Z2G d#d$„ d$ƒZ3G d%d&„ d&ƒZ4G d'd(„ d(ƒZ5d)e)d*e-d+e	e) de-fd,d-„Z6d)e)d*e-d.e)d/ee) d0e7de-fd1d2„Z8d)e)d*e-de-fd3d4„Z9d)e)d*e-de-fd5d6„Z:d)e)d*e-d7e3de-fd8d9„Z;d)e)d*e-d7e3de-fd:d;„Z<d)e)d*e-d7e3de*de-f
d<d=„Z=d)e)d*e-de*dee-e+ef fd>d?„Z>d)e)d*e-dee-e+f fd@dA„Z?d)e)d*e-dee-e)f fdBdC„Z@d)e)d*e-dee-e)f fdDdE„ZAd)e)d*e-de*dee-eBf fdFdG„ZCd)e)d*e-de*dee-eDf fdHdI„ZEdJdKœd)e)d*e-dLe7dee-e)f fdMdN„ZFd)e)d*e-dee-e)f fdOdP„ZGd)e)d*e-dQe,dee-e)f fdRdS„ZHd)e)d*e-dee-e)f fdTdU„ZId)e)d*e-dVe7dee-e)f fdWdX„ZJd)e)d*e-dLe7dee-e)f fdYdZ„ZKd)e)d*e-d[d\dee-e)f fd]d^„ZLd)e)d*e-de*dee-ef fd_d`„ZMd)e)d*e-dae)de/fdbdc„ZNdde,de7fdedf„ZOdS )gé    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   úŒ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pip/_vendor/tomli/_parser.pyÚ	<genexpr>   s   € 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   r2   r1   c                C   sB  |   dd¡}d}tƒ }	 t||tƒ}z|| }W n ty$   Y |jjS w |dkr.|d7 }q|tv r@t||||ƒ}t||tƒ}n:|dkrpz||d  }W n tyW   d}Y nw |dkrct|||ƒ}nt|||ƒ}t||tƒ}n
|dkrzt	||d	ƒ‚t
||ƒ}z|| }W n ty‘   Y |jjS w |dkrœt	||d
ƒ‚|d7 }q)zParse TOML from a string.z
r    r   Té   ú[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)r1   r,   ÚsrcÚposÚstateÚcharÚsecond_charr   r   r   r0   L   sT   
"Ýÿ
øÿÑr0   c                   @   s   e Zd Zddd„ZdS )r7   r.   Nc                 C   s   t ƒ | _tƒ | _d| _d S )Nr   )Ú
NestedDictrA   ÚFlagsÚflagsÚheader_namespace©Úselfr   r   r   Ú__init__Œ   s   
zState.__init__©r.   N)r'   r(   r)   rN   r   r   r   r   r7   ‹   s    r7   c                   @   s~   e Zd ZdZdZdZddd„Zdeddfd	d
„Zdedede	ddfdd„Z
dede	deddfdd„Zdede	defdd„ZdS )rI   z)Flags that map to parsed keys/namespaces.r   r3   r.   Nc                 C   ó
   i | _ d S r   ©Ú_flagsrL   r   r   r   rN   ž   s   
zFlags.__init__Úkeyc                 C   sF   | j }|d d… D ]}||vr d S || d }q	| |d d ¡ d S )NéÿÿÿÿÚnested)rR   Úpop)rM   rS   ÚcontÚkr   r   r   Ú	unset_all¡   s   zFlags.unset_allÚhead_keyÚrel_keyÚflagc                 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©rJ   Úrecursive_flagsrU   rU   rJ   ©rR   ÚsetÚadd)rM   rZ   r[   r\   rW   rX   r   r   r   Úset_for_relative_key©   s   ûzFlags.set_for_relative_keyÚ	recursivec                C   sˆ   | j }|d d… |d }}|D ]}||vr tƒ tƒ i dœ||< || d }q||vr5tƒ tƒ i dœ||< || |r<dnd  |¡ d S )NrT   r]   rU   r^   rJ   r_   )rM   rS   r\   rc   rW   Ú
key_parentÚkey_stemrX   r   r   r   r`   ¶   s   z	Flags.setc                 C   s„   |sdS | j }|d d… D ]}||vr dS || }||d v r# dS |d }q|d }||v r@|| }||d v p?||d v S dS )NFrT   r^   TrU   rJ   rQ   )rM   rS   r\   rW   rX   Ú
inner_contre   r   r   r   Úis_Á   s   
z	Flags.is_rO   )r'   r(   r)   r*   ÚFROZENÚEXPLICIT_NESTrN   ÚKeyrY   Úintrb   Úboolr`   rg   r   r   r   r   rI   •   s    
rI   c                   @   sD   e Zd Zddd„Zddœdededefd	d
„Zdeddfdd„ZdS )rH   r.   Nc                 C   rP   r   )rB   rL   r   r   r   rN   Ô   s   
zNestedDict.__init__T©Úaccess_listsrS   rn   c                C   sT   | j }|D ]"}||vri ||< || }|rt|tƒr|d }t|t ƒs'tdƒ‚q|S )NrT   z There is no nest behind this key)rB   Ú
isinstanceÚlistÚKeyError)rM   rS   rn   rW   rX   r   r   r   Úget_or_create_nestØ   s   
ÿzNestedDict.get_or_create_nestc                 C   sX   |   |d d… ¡}|d }||v r%|| }t|tƒstdƒ‚| i ¡ d S i g||< d S )NrT   z/An object other than list found behind this key)rr   ro   rp   rq   Úappend)rM   rS   rW   Úlast_keyÚlist_r   r   r   Úappend_nest_to_listé   s   
zNestedDict.append_nest_to_listrO   )	r'   r(   r)   rN   rj   rl   rB   rr   rv   r   r   r   r   rH   Ó   s    
üþü
ûrH   rC   rD   Úcharsc                 C   sB   z| | |v r|d7 }| | |v sW |S W |S  t y    Y |S w )Nr3   )r:   )rC   rD   rw   r   r   r   r8   õ   s   ÿüþþr8   ÚexpectÚerror_onÚerror_on_eofc          	   	   C   sŠ   z|   ||¡}W n ty!   t| ƒ}|rt| |d|›d�ƒ‚Y nw | | ||… ¡}|rCtt|ƒƒ}|   ||¡}t| |d|›d�ƒ‚|S )Nz
Expected "r$   zFound invalid character ")ÚindexÚ
ValueErrorÚlenr?   ÚintersectionÚnextÚiter)	rC   rD   rx   ry   rz   Únew_posÚ	bad_charsÚbad_charÚbad_posr   r   r   Ú
skip_untilþ   s   ÿþr…   c                 C   sF   z| | }W n t y   d }Y nw |dkr!t| |d dtdd�S |S )Nr5   r3   r    F©ry   rz   )r:   r…   ÚILLEGAL_COMMENT_CHARS)rC   rD   rF   r   r   r   r@     s   ÿÿr@   c                 C   s*   	 |}t | |tƒ}t| |ƒ}||kr|S qr   )r8   ÚTOML_WS_AND_NEWLINEr@   )rC   rD   Úpos_before_skipr   r   r   Úskip_comments_and_array_ws!  s   
ûrŠ   rE   c                 C   sÄ   |d7 }t | |tƒ}t| |ƒ\}}|j |tj¡s!|j |tj¡r+t| |d|› d�ƒ‚|jj	|tjdd� z|j
 |¡ W n tyJ   t| |dƒ‚w ||_| ||d … dkr^t| |dƒ‚|d S )	Nr3   zCan not declare z twiceF©rc   úCan not overwrite a valueú]z.Expected "]" at the end of a table declaration)r8   r9   Ú	parse_keyrJ   rg   rI   ri   rh   r?   r`   rA   rr   rq   rK   )rC   rD   rE   rS   r   r   r   r>   *  s    ÿr>   c                 C   sÊ   |d7 }t | |tƒ}t| |ƒ\}}|j |tj¡r"t| |d|› �ƒ‚|j |¡ |jj	|tj
dd� z|j |¡ W n tyG   t| |dƒ‚w ||_| ||d … }|dkrat| |d|›d�ƒ‚|d S )	Né   ú#Can not mutate immutable namespace Fr‹   rŒ   z]]zFound "z3" at the end of an array declaration. Expected "]]")r8   r9   rŽ   rJ   rg   rI   rh   r?   rY   r`   ri   rA   rv   rq   rK   )rC   rD   rE   rS   Ú
end_markerr   r   r   r=   =  s*   ÿ
ýr=   c                 C   sà   t | ||ƒ\}}}|d d… |d }}|j| }|j |tj¡r*t| |d|› �ƒ‚|j |j|tj¡ z|j	 
|¡}	W n tyI   t| |dƒ‚w ||	v rTt| |dƒ‚t|ttfƒrj|j| }
|jj|
tjdd� ||	|< |S )NrT   r�   rŒ   Tr‹   )Úparse_key_value_pairrK   rJ   rg   rI   rh   r?   rb   ri   rA   rr   rq   ro   rB   rp   r`   )rC   rD   rE   r,   rS   Úvaluerd   re   Úabs_key_parentÚnestÚabs_keyr   r   r   r<   Y  s(   
ÿÿ
r<   c                 C   st   t | |ƒ\}}z| | }W n ty   d }Y nw |dkr#t| |dƒ‚|d7 }t| |tƒ}t| ||ƒ\}}|||fS )Nú=z,Expected "=" after a key in a key/value pairr3   )rŽ   r:   r?   r8   r9   Úparse_value)rC   rD   r,   rS   rF   r“   r   r   r   r’   r  s   ÿ
r’   c                 C   s”   t | |ƒ\}}|g}t| |tƒ}	 z| | }W n ty"   d }Y nw |dkr-|t|ƒfS |d7 }t| |tƒ}t | |ƒ\}}| |¡ t| |tƒ}q)NTÚ.r3   )Úparse_key_partr8   r9   r:   Útuplers   )rC   rD   Úkey_partrS   rF   r   r   r   rŽ   ‚  s"   ÿ
õrŽ   c                 C   s|   z| | }W n t y   d }Y nw |tv r&|}t| |tƒ}|| ||… fS |dkr/t| |ƒS |dkr8t| |ƒS t| |dƒ‚)Nú'r$   z(Invalid initial character for a key part)r:   ÚBARE_KEY_CHARSr8   Úparse_literal_strÚparse_one_line_basic_strr?   )rC   rD   rF   Ú	start_posr   r   r   rš   ”  s   ÿ

rš   c                 C   s   |d7 }t | |dd�S )Nr3   F©Ú	multiline)Úparse_basic_str©rC   rD   r   r   r   r    ¤  s   r    c                 C   sÈ   |d7 }g }t | |ƒ}| ||d … dkr|d |fS 	 t| ||ƒ\}}| |¡ t | |ƒ}| ||d … }|dkr@|d |fS |dkrJt| |dƒ‚|d7 }t | |ƒ}| ||d … dkrc|d |fS q)Nr3   r�   Tú,zUnclosed array)rŠ   r˜   rs   r?   )rC   rD   r,   ÚarrayÚvalÚcr   r   r   Úparse_array©  s&   



òrª   c                 C   sZ  |d7 }t ƒ }tƒ }t| |tƒ}| ||d … dkr!|d |jfS 	 t| ||ƒ\}}}|d d… |d }}| |tj¡rFt| |d|› �ƒ‚z	|j	|dd�}	W n t
y\   t| |dƒ‚w ||	v rkt| |d	|› d
�ƒ‚||	|< t| |tƒ}| ||d … }
|
dkrˆ|d |jfS |
dkr’t| |dƒ‚t|ttfƒr¢|j|tjdd� |d7 }t| |tƒ}q")Nr3   Ú}TrT   r�   Frm   rŒ   zDuplicate inline table key "r$   r¦   zUnclosed inline tabler‹   )rH   rI   r8   r9   rB   r’   rg   rh   r?   rr   rq   ro   rp   r`   )rC   rD   r,   Únested_dictrJ   rS   r“   rd   re   r•   r©   r   r   r   Úparse_inline_tableÁ  s<   ÿër­   Fr¢   r£   c                C   sî   | ||d … }|d7 }|rB|dv rB|dkr8t | |tƒ}| ||d … }|s*|dfS |dkr4t| |dƒ‚|d7 }t | |tƒ}|dfS |dkrLt| |d	ƒS |d
krVt| |dƒS z|t| fW S  tyv   t|ƒdkrpt| |dƒ‚t| |dƒ‚w )Nr�   >   ú\	ú\ ú\
r°   r3   Ú r    zUnescaped "\" in a stringz\ué   z\Ué   úUnterminated string)r8   r9   r?   rˆ   Úparse_hex_charÚBASIC_STR_ESCAPE_REPLACEMENTSrq   r}   )rC   rD   r£   Ú	escape_idrF   r   r   r   Úparse_basic_str_escapeá  s0   ýr¸   c                 C   s   t | |dd�S )NTr¢   )r¸   r¥   r   r   r   Ú parse_basic_str_escape_multilineÿ  s   r¹   Úhex_lenc                 C   sl   | ||| … }t |ƒ|kstdd„ |D ƒƒrt| |dƒ‚||7 }t|dƒ}t|ƒs0t| |dƒ‚|t|ƒfS )Nc                 s   s   � | ]}|t jvV  qd S r   )ÚstringÚ	hexdigits)r   r©   r   r   r   r     s   € z!parse_hex_char.<locals>.<genexpr>zInvalid hex valueé   z/Escaped character is not a Unicode scalar value)r}   Úanyr?   rk   Úis_unicode_scalar_valuer   )rC   rD   rº   Úhex_strÚhex_intr   r   r   rµ     s   
rµ   c                 C   s2   |d7 }|}t | |dtdd�}|d | ||… fS )Nr3   r�   Tr†   )r…   ÚILLEGAL_LITERAL_STR_CHARS)rC   rD   r¡   r   r   r   rŸ     s   
ÿrŸ   Úliteralc                C   sÆ   |d7 }| ||d … dkr|d7 }|r*d}t | |dtdd�}| ||… }|d }nd}t| |dd	�\}}| ||d … |krC||fS |d7 }| ||d … |krW||| fS |d7 }|||d
  fS )Né   r3   r    r�   z'''Tr†   r$   r¢   r�   )r…   Ú#ILLEGAL_MULTILINE_LITERAL_STR_CHARSr¤   )rC   rD   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y#   t| |dƒ‚w |dkrS|s6|d || ||…  fS | |d |d … dkrN|d || ||…  fS |d7 }q|dkrm|| ||… 7 }|| |ƒ\}}||7 }|}q||v r{t| |d	|›d�ƒ‚|d7 }q)
Nr±   Tr´   r$   r3   rÄ   ú""r%   zIllegal character ")Ú!ILLEGAL_MULTILINE_BASIC_STR_CHARSr¹   ÚILLEGAL_BASIC_STR_CHARSr¸   r:   r?   )	rC   rD   r£   ry   Úparse_escapesrÈ   r¡   rF   Úparsed_escaper   r   r   r¤   6  s<   ÿìr¤   Úregexr   c                 C   s,   |  | |¡}|st| |dƒ‚| ¡ | ¡ fS )NzUnexpected sequence)Úmatchr?   ÚendÚgroup)rC   rD   rÏ   rÐ   r   r   r   Úparse_regexV  s   rÓ   c                 C   sš  z| | }W n t y   d }Y nw |dkr.| |d |d … dkr)t| |dd�S t| |ƒS |dkrJ| |d |d … dkrEt| |d	d�S t| |ƒS |d
kr`| |d |d … dkr`|d d	fS |dkrv| |d |d … dkrv|d dfS t | |¡}|r˜zt|ƒ}W n ty‘   t| |dƒ‚w | 	¡ |fS t
 | |¡}|r¨| 	¡ 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�rt| ||ƒS |dk�rt| ||ƒS | ||d … }|dv �r2|d ||ƒfS | ||d … }|dv �rG|d ||ƒfS t| |dƒ‚)Nr$   r3   rÄ   rÊ   F)rÃ   r�   z''TÚtr²   ÚrueÚfé   ÚalsezInvalid date or datetimeÚ0r�   Úxr½   Úor³   Úbr4   Ú{>   ÚinfÚnan>   ú+infú+nanú-infú-nanzInvalid value)r:   rÉ   r    rŸ   r   rÐ   r   r|   r?   rÑ   r   r   rÓ   r   rk   r   r   r   r   rª   r­   )rC   rD   r,   rF   Údatetime_matchÚdatetime_objÚlocaltime_matchrG   rÀ   Úoct_strÚbin_strÚnumber_matchÚfirst_threeÚ
first_fourr   r   r   r˜   ]  sn   ÿ

ÿ



r˜   Úmsgc                 C   s0   dt dtdt fdd„}t|› d|| |ƒ› d�ƒS )zZReturn a `TOMLDecodeError` where error message is suffixed with
    coordinates in source.rC   rD   r.   c                 S   sV   |t | ƒkrdS |  dd|¡d }|dkr|d }n	||  dd|¡ }d|› d|› �S )Nzend of documentr    r   r3   zline z	, column )r}   ÚcountÚrindex)rC   rD   ÚlineÚcolumnr   r   r   Ú
coord_repr±  s   
z suffixed_err.<locals>.coord_reprz (at ú))ÚstrÚPosr&   )rC   rD   rì   rñ   r   r   r   r?   ­  s   
r?   Ú	codepointc                 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   0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‡   r9   rˆ   Úascii_lettersÚdigitsrž   r;   r¶   ró   Ú
ParseFloatrj   rk   rô   r|   r&   Úfloatr2   r0   r7   rI   rH   r8   rl   r…   r@   rŠ   r>   r=   r<   r’   rŽ   rš   r    rp   rª   rB   r­   r¸   r¹   rµ   rŸ   rÉ   r¤   rÓ   r˜   r?   r¿   r   r   r   r   Ú<module>   s¾    ,,"ùÿ$$?
>"	ÿþýûú
ù	ÿÿÿ
þ""!ÿÿÿÿ

þ""	"" ÿÿÿ

þP