U
    cUhc                  	   @  s  U d dl mZ d dlmZ d dlZd dlZd dlmZ d dlm	Z	m
Z
mZmZ d dl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 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ej'ej( d Z)d	ed< e)edB Z*d	ed< eej+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/Z0e1d+d,d-d.d/d0d1Z2e1d+d2d-d.d3d4d5Z3G d6d7 d7Z4G d8d9 d9Z5G d:d; d;eZ6d2d<d=d<d>d?d@Z7d2d<d2dAdBd<dCdDdEZ8d2d<d<dFdGdHZ9d2d<d<dFdIdJZ:d2d<d;dKdLdMdNZ;d2d<d;dKdLdOdPZ<d2d<d;dQd-d<dRdSdTZ=d2d<d-dUdVdWdXdYZ>d2d<dKdFdZd[Z?d2d<d\dFd]d^Z@d2d<d\dFd_d`ZAd2d<d-dUdadWdbdcZBd2d<d-dUdddWdedfZCdgdhd2d<dBd\didjdkZDd2d<d\dFdldmZEd2d<dUd\dndodpZFd2d<d\dFdqdrZGd2d<dBd\dsdtduZHd2d<dBd\didvdwZId2d<d-dUdxdWdydzZJdUdBd{d|d}ZKd-d-d~ddZLdS )    )annotations)IterableN)MappingProxyType)IOAnyFinal
NamedTuple   )RE_DATETIMERE_LOCALTIME	RE_NUMBERmatch_to_datetimematch_to_localtimematch_to_number)Key
ParseFloatPosr   MAX_INLINE_NESTINGc                 c  s   | ]}t |V  qd S N)chr.0i r   Y/opt/bot/vods_filmes/script/venv/lib/python3.8/site-packages/pip/_vendor/tomli/_parser.py	<genexpr>#   s     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-_BARE_KEY_CHARSz"'KEY_INITIAL_CHARS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   B   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s|tjdtdd |tk	rD|f|}|tk	rV|f|}|tk	rh|f|}tj| f|  d S |	dd|d }|dkr|d }n||
dd| }|t|krd}nd| d	| }| d
| d}t| | || _|| _|| _|| _|| _d S )Nz{Free-form arguments for TOMLDecodeError are deprecated. Please set 'msg' (str), 'doc' (str) and 'pos' (int) arguments only.   )
stacklevelr&   r   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:   rI   rJ   Z
coord_reprerrmsgr   r   r   rE   R   sF    



zTOMLDecodeError.__init__N)r2   r3   r4   r5   r1   rE   r   r   r   r   r6   G   s
   r6   parse_floatz	IO[bytes]r   zdict[str, Any])__fprN   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')`NrM   )readdecodeAttributeError	TypeErrorloads)rO   rN   bsr   r   r   load   s    rX   r?   )__srN   rP   c             	   C  s  z|  dd}W n0 ttfk
r@   tdt| j ddY nX d}tt t }d}t|}t	||t
}z|| }W n tk
r   Y qY nX |dkr|d7 }q`|tkrt|||||}t	||t
}n|d	krDz||d  }W n tk
r   d}Y nX |j  |d	kr&t|||\}}nt|||\}}t	||t
}n|d
krZtd||t||}z|| }W n tk
r   Y qY nX |dkrtd|||d7 }q`|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)replacerS   rT   typer4   Output
NestedDictFlagsmake_safe_parse_float
skip_charsr%   
IndexErrorr)   key_value_ruleflagsfinalize_pendingcreate_list_rulecreate_dict_ruler6   skip_commentdatadict)rY   rN   srcr9   outheadercharZsecond_charr   r   r   rU      s`    







  
rU   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 )ra   z)Flags that map to parsed keys/namespaces.r   r   FROZENr	   EXPLICIT_NESTNonerP   c                 C  s   i | _ t | _d S r   )_flagsset_pending_flagsrK   r   r   r   rE      s    zFlags.__init__r   r@   )keyflagrP   c                 C  s   | j ||f d S r   )rw   addrK   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)rw   rv   clearr|   r   r   r   rg      s    zFlags.finalize_pendingry   rP   c                 C  sF   | j }|d d D ]}||kr$ d S || d }q||d d  d S )Nnested)ru   pop)rK   ry   contkr   r   r   	unset_all   s    zFlags.unset_allbool)ry   rz   r   rP   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 )Nr   )rf   recursive_flagsr   r   r   rf   )ru   rv   r{   )rK   ry   rz   r   r   
key_parentkey_stemr   r   r   r   rv      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 )NFr   r   Tr   rf   )ru   )rK   ry   rz   r   r   Z
inner_contr   r   r   r   is_   s    
z	Flags.is_N)r2   r3   r4   r5   rq   __annotations__rr   rE   r}   rg   r   rv   r   r   r   r   r   ra      s   
ra   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`   rs   rt   c                 C  s
   i | _ d S r   )rl   rx   r   r   r   rE     s    zNestedDict.__init__Taccess_listsr   r   rl   )ry   r   rP   c                C  sT   | j }|D ]D}||kri ||< || }|r<t|tr<|d }t|t s
tdq
|S )Nr   z There is no nest behind this key)rl   r>   listKeyError)rK   ry   r   r   r   r   r   r   get_or_create_nest  s    

zNestedDict.get_or_create_nestr   c                 C  sV   |  |d d }|d }||k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   ry   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U ded< ded< dS )r_   r`   rk   ra   rf   N)r2   r3   r4   r   r   r   r   r   r_   1  s   
r_   r   zIterable[str])rm   r9   charsrP   c                 C  s4   z| | |kr|d7 }qW n t k
r.   Y nX |S )Nr	   )rd   )rm   r9   r   r   r   r   rc   6  s    rc   zfrozenset[str]r   )rm   r9   expecterror_onerror_on_eofrP   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 )indexrD   rH   r6   
isdisjoint)rm   r9   r   r   r   new_posr   r   r   
skip_until?  s    
r   )rm   r9   rP   c                 C  sH   z| | }W n t k
r$   d }Y nX |dkrDt| |d dtddS |S )Nr\   r	   r&   Fr   r   )rd   r   r$   )rm   r9   rp   r   r   r   rj   U  s    
    rj   c                 C  s,   |}t | |t}t| |}||kr |S q d S r   )rc   r'   rj   )rm   r9   Zpos_before_skipr   r   r   skip_comments_and_array_wsa  s
    
r   ztuple[Pos, Key])rm   r9   rn   rP   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|std| ||d |fS )	Nr	   zCannot declare z twiceFr~   Cannot overwrite a value]z.Expected ']' at the end of a table declaration)rc   r%   	parse_keyrf   r   ra   rr   rq   r6   rv   rk   r   r   
startswithrm   r9   rn   ry   r   r   r   ri   j  s"       ri   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|std| ||d |fS )Nr;   "Cannot mutate immutable namespace Fr~   r   z]]z0Expected ']]' at the end of an array declaration)rc   r%   r   rf   r   ra   rq   r6   r   rv   rr   rk   r   r   r   r   r   r   r   rh   ~  s$      rh   r   )rm   r9   rn   ro   rN   rP   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k
r   td	| |d Y nX ||k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   ro   ry   r   r   r     s     z!key_value_rule.<locals>.<genexpr>r	   zCannot redefine namespace r   r   Tr~   )parse_key_value_pairrangerH   rf   r   ra   rr   r6   r}   rq   rk   r   r   r>   rl   r   rv   )rm   r9   rn   ro   rN   valuer   r   Zabs_key_parentZrelative_path_cont_keysZcont_keynestr   r   r   re     s0      re   r@   ztuple[Pos, Key, Any])rm   r9   rN   r   rP   c                 C  sx   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   rd   r6   rc   r%   parse_value)rm   r9   rN   r   ry   rp   r   r   r   r   r     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_partrc   r%   rd   )rm   r9   Zkey_partry   rp   r   r   r   r     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 )NrZ   r.   z(Invalid initial character for a key part)rd   r(   rc   parse_literal_strparse_one_line_basic_strr6   )rm   r9   rp   	start_posr   r   r   r     s    


r   c                 C  s   |d7 }t | |ddS )Nr	   F	multiline)parse_basic_strrm   r9   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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   )rm   r9   rN   r   arrayvalcr   r   r   parse_array  s"    



r   ztuple[Pos, dict]c                 C  sb  |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k
r   t	d| |d Y nX |	|
krt	d|	| |||
|	< t| |t}| ||d  }|dkr|d |jfS |d	kr&t	d
| |t|ttfrH|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`   ra   rc   r%   r   rl   r   r   rq   r6   r   r   r>   r   rv   )rm   r9   rN   r   Znested_dictrf   ry   r   r   r   r   r   r   r   r   parse_inline_table  s6    

r   Fr   )rm   r9   r   rP   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rt| |d	S |d
krt| |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   )rc   r%   rd   r6   r'   parse_hex_charr0   r   )rm   r9   r   Z	escape_idrp   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_multilineG  s    r   )rm   r9   hex_lenrP   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   )rm   r9   r   hex_strZhex_intr   r   r   r   K  s    
  r   c                 C  s2   |d7 }|}t | |dtdd}|d | || fS )Nr	   rZ   Tr   )r   r"   )rm   r9   r   r   r   r   r   X  s        r   )rm   r9   literalrP   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	   rZ   '''Tr   r.   r   r;   )r   r   r#   r   )rm   r9   r   delimend_posresultr   r   r   parse_multiline_stra  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rtd|| ||d7 }qd S )	Nr   zUnterminated stringr.   r	   """r   r/   zIllegal character )r!   r   r    r   rd   r6   r   )	rm   r9   r   r   Zparse_escapesr   r   rp   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k
r<   d }Y nX |dkrj| 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 n2 tk
r\ } ztd| ||W 5 d }~X Y nX | |fS t
| |}|r| 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 )Nz;TOML inline arrays/tables are nested more than the allowed z levelsr.   r   F)r   rZ   r   Tttruer   ffalse   r[   r	   {zInvalid date or datetimer   >   naninf>   -inf+inf+nan-nanzInvalid value)r   RecursionErrorrd   r   r   r   r   r   r   r
   matchr   rD   r6   endr   r   r   r   )rm   r9   rN   r   rp   Zdatetime_matchZdatetime_objeZlocaltime_matchZnumber_matchZfirst_threeZ
first_fourr   r   r   r     s\    




 

r   )	codepointrP   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   rP   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.
    r?   r   )	float_strrP   c                   s"    | }t |ttfrtd|S )Nz*parse_float must not return dicts or lists)r>   rl   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   rb     s    	rb   )M
__future__r   collections.abcr   stringsystypesr   typingr   r   r   r   rA   _rer
   r   r   r   r   r   _typesr   r   r   getrecursionlimitr   r   	frozensetr   r   r   r    r!   r"   r#   r$   r%   r'   ascii_lettersdigitsr(   r)   	hexdigitsr*   r0   r1   rD   r6   r   rX   rU   ra   r`   r_   rc   r   rj   r   ri   rh   re   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rb   r   r   r   r   <module>   sz     *;G:"		"#	 L