B
    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   R/var/www/html/venv/lib/python3.7/site-packages/setuptools/_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@   |   }y| }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')`N)r&   )readdecodeAttributeError	TypeErrorloads)r'   r&   bsr   r   r   load9   s    
r0   str)__sr&   r(   c            C  s|  |  dd}d}tt t }d}t|}xFt||t}y|| }W n tk
r\   P Y nX |dkrp|d7 }q.|tkrt	|||||}t||t}n|dkry||d  }W n tk
r   d}Y nX |j
  |dkrt|||\}}nt|||\}}t||t}n|dkr"t||d	t||}y|| }W n tk
rP   P Y nX |dkrht||d
|d7 }q.W |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)r2   r&   srcposoutheadercharsecond_charr   r   r   r-   E   sN    







r-   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 )r8   z)Flags that map to parsed keys/namespaces.r   r   None)r(   c             C  s   i | _ t | _d S )N)_flagsset_pending_flags)selfr   r   r   __init__   s    zFlags.__init__r   int)keyflagr(   c             C  s   | j ||f d S )N)rP   add)rQ   rT   rU   r   r   r   add_pending   s    zFlags.add_pendingc             C  s2   x"| j D ]\}}| j||dd qW | j   d S )NF)	recursive)rP   rO   clear)rQ   rT   rU   r   r   r   r@      s    zFlags.finalize_pending)rT   r(   c             C  sH   | j }x,|d d D ]}||kr$d S || d }qW ||d d  d S )Nnested)rN   pop)rQ   rT   contkr   r   r   	unset_all   s    zFlags.unset_allbool)rT   rU   rX   r(   c            C  s   | j }|d d |d  }}x4|D ],}||krBt t i d||< || d }q"W ||krnt t i d||< || |r|dnd | d S )NrZ   )r?   recursive_flagsr[   r[   ra   r?   )rN   rO   rV   )rQ   rT   rU   rX   r]   
key_parentkey_stemr^   r   r   r   rO      s    
z	Flags.setc             C  s   |sdS | j }x@|d d D ]0}||kr,dS || }||d krDdS |d }qW |d }||kr|| }||d kp~||d kS dS )NFrZ   ra   Tr[   r?   )rN   )rQ   rT   rU   r]   r^   
inner_contrc   r   r   r   is_   s    z	Flags.is_N)r"   r#   r$   r%   FROZENEXPLICIT_NESTrR   rW   r@   r_   rO   re   r   r   r   r   r8      s   r8   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 )r7   rM   )r(   c             C  s
   i | _ d S )N)rF   )rQ   r   r   r   rR      s    zNestedDict.__init__T)access_listsr   r`   rF   )rT   rh   r(   c            C  sX   | j }xL|D ]D}||kr i ||< || }|r>t|tr>|d }t|t stdqW |S )NrZ   z There is no nest behind this key)rF   
isinstancelistKeyError)rQ   rT   rh   r]   r^   r   r   r   get_or_create_nest   s    

zNestedDict.get_or_create_nest)rT   r(   c             C  sV   |  |d d }|d }||krH|| }t|ts<td|i  n
i g||< d S )NrZ   z/An object other than list found behind this key)rl   ri   rj   rk   append)rQ   rT   r]   last_keylist_r   r   r   append_nest_to_list   s    
zNestedDict.append_nest_to_listN)r"   r#   r$   rR   rl   rp   r   r   r   r   r7      s   r7   c               @  s   e Zd ZU ded< ded< dS )r6   r7   rE   r8   r?   N)r"   r#   r$   __annotations__r   r   r   r   r6      s   
r6   r   zIterable[str])rG   rH   charsr(   c             C  s8   yx| | |kr|d7 }qW W n t k
r2   Y nX |S )Nr   )r<   )rG   rH   rr   r   r   r   r:      s    r:   zfrozenset[str]r`   )rG   rH   expecterror_onerror_on_eofr(   c            C  s   y|  ||}W n4 tk
rD   t| }|r@t| |d|d Y nX || || sx| | |krp|d7 }qZW t| |d| | |S )Nz	Expected r   zFound invalid character )index
ValueErrorlenrC   
isdisjoint)rG   rH   rs   rt   ru   new_posr   r   r   
skip_until   s    r{   )rG   rH   r(   c             C  sH   y| | }W n t k
r$   d }Y nX |dkrDt| |d dtddS |S )Nr4   r   r   F)rt   ru   )r<   r{   ILLEGAL_COMMENT_CHARS)rG   rH   rK   r   r   r   rD     s    
rD   c             C  s0   x*|}t | |t}t| |}||kr|S qW d S )N)r:   TOML_WS_AND_NEWLINErD   )rG   rH   pos_before_skipr   r   r   skip_comments_and_array_ws  s    
r   ztuple[Pos, Key])rG   rH   rI   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 y|j
| W n" tk
r   t| |dd Y nX | d|st| |d|d |fS )	Nr   zCannot declare z twiceF)rX   zCannot overwrite a value]z.Expected ']' at the end of a table declaration)r:   r;   	parse_keyr?   re   r8   rg   rf   rC   rO   rE   rl   rk   
startswith)rG   rH   rI   rT   r   r   r   rB     s     rB   c             C  s   |d7 }t | |t}t| |\}}|j|tjrDt| |d| |j| |jj	|tj
dd y|j| W n" tk
r   t| |dd Y nX | d|st| |d|d |fS )N   z"Cannot mutate immutable namespace F)rX   zCannot overwrite a valuez]]z0Expected ']]' at the end of an array declaration)r:   r;   r   r?   re   r8   rf   rC   r_   rO   rg   rE   rp   rk   r   )rG   rH   rI   rT   r   r   r   rA   .  s    rA   r   )rG   rH   rI   rJ   r&   r(   c               s,  t | ||\}}d d d  }} | } fddtdtD }	x>|	D ]6}
|j|
tjrzt| |d|
 |j|
tj qTW |j|tj	rt| |d| y|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 )
NrZ   c             3  s   | ]} d |  V  qd S )Nr   )r   r   )rJ   rT   r   r   r   J  s    z!key_value_rule.<locals>.<genexpr>r   zCannot redefine namespace z"Cannot mutate immutable namespace zCannot overwrite a valueT)rX   )parse_key_value_pairrangerx   r?   re   r8   rg   rC   rW   rf   rE   rl   rk   ri   rF   rj   rO   )rG   rH   rI   rJ   r&   valuerb   rc   abs_key_parentrelative_path_cont_keyscont_keynestr   )rJ   rT   r   r>   C  s*    
r>   ztuple[Pos, Key, Any])rG   rH   r&   r(   c             C  sv   t | |\}}y| | }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<   rC   r:   r;   parse_value)rG   rH   r&   rT   rK   r   r   r   r   r   e  s    
r   c             C  s   t | |\}}|f}t| |t}xry| | }W n tk
rF   d }Y nX |dkrX||fS |d7 }t| |t}t | |\}}||f7 }t| |t}q"W d S )N.r   )parse_key_partr:   r;   r<   )rG   rH   key_partrT   rK   r   r   r   r   u  s    

r   ztuple[Pos, str]c             C  s   y| | }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_strrC   )rG   rH   rK   	start_posr   r   r   r     s    


r   c             C  s   |d7 }t | |ddS )Nr   F)	multiline)parse_basic_str)rG   rH   r   r   r   r     s    r   ztuple[Pos, list]c             C  s   |d7 }g }t | |}| d|r.|d |fS xt| ||\}}|| t | |}| ||d  }|dkrx|d |fS |dkrt| |d|d7 }t | |}| d|r0|d |fS q0W d S )Nr   r   ,zUnclosed array)r   r   r   rm   rC   )rG   rH   r&   arrayvalcr   r   r   parse_array  s$    



r   ztuple[Pos, dict]c             C  sf  |d7 }t  }t }t| |t}| d|r:|d |jfS x$t| ||\}}}|d d |d  }}||tjrt	| |d| y|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rJ|j|tjdd |d7 }t| |t}q>W d S )Nr   }rZ   z"Cannot mutate immutable namespace F)rh   zCannot overwrite a valuezDuplicate inline table key r   zUnclosed inline tableT)rX   )r7   r8   r:   r;   r   rF   r   re   rf   rC   rl   rk   ri   rj   rO   )rG   rH   r&   nested_dictr?   rT   r   rb   rc   r   r   r   r   r   parse_inline_table  s8    

r   F)r   )rG   rH   r   r(   c            C  s   | ||d  }|d7 }|r|dkr|dkrzt | |t}y| | }W n tk
r\   |dfS X |dkrrt| |d|d7 }t | |t}|dfS |dkrt| |d	S |d
krt| |dS y|t| fS  tk
r   t| |dd Y nX d S )Nr   >   \ \
\	z\
 r   zUnescaped '\' in a stringr   z\u   z\U   )r:   r;   r<   rC   r}   parse_hex_charBASIC_STR_ESCAPE_REPLACEMENTSrk   )rG   rH   r   	escape_idrK   r   r   r   parse_basic_str_escape  s,    
r   c             C  s   t | |ddS )NT)r   )r   )rG   rH   r   r   r    parse_basic_str_escape_multiline  s    r   rS   )rG   rH   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)rx   HEXDIGIT_CHARS
issupersetrC   rS   is_unicode_scalar_valuer   )rG   rH   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   T)rt   ru   )r{   ILLEGAL_LITERAL_STR_CHARS)rG   rH   r   r   r   r   r      s
    r   )rG   rH   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   z'''T)rt   ru   r   )r   r   )r   r{   #ILLEGAL_MULTILINE_LITERAL_STR_CHARSr   )rG   rH   r   delimend_posresultr   r   r   parse_multiline_str	  s,    
r   c      	      C  s   |rt }t}nt}t}d}|}xy| | }W n" tk
rN   t| |dd Y nX |dkr|st|d || ||  fS | d|r|d || ||  fS |d7 }q |dkr|| || 7 }|| |\}}||7 }|}q ||krt| |d||d7 }q W d S )	Nr   zUnterminated stringr   r   z"""r   r    zIllegal character )!ILLEGAL_MULTILINE_BASIC_STR_CHARSr   ILLEGAL_BASIC_STR_CHARSr   r<   rC   r   )	rG   rH   r   rt   parse_escapesr   r   rK   parsed_escaper   r   r   r   (  s8    r   ztuple[Pos, Any]c          
   C  s  y| | }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rt| ||S |dkrt| ||S t| |}|rDyt	|}W n2 t
k
r6 } zt| |d|W d 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   z"""F)r   r   z'''Tttruer   ffalse   r3   {zInvalid date or datetimer   >   naninf>   -nan+inf+nan-infzInvalid value)r<   r   r   r   r   r   r   r	   matchr   rw   rC   endr
   r   r   r   )rG   rH   r&   rK   datetime_matchdatetime_objelocaltime_matchnumber_matchfirst_three
first_fourr   r   r   r   H  sT    


 

r   )rG   rH   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.r1   r   )rG   rH   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 )rx   countrindex)rG   rH   linecolumnr   r   r   
coord_repr  s    
z suffixed_err.<locals>.coord_reprz (at ))r!   )rG   rH   r   r   r   r   r   rC     s    
rC   )	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.
    r1   r   )	float_strr(   c               s"    | }t |ttfrtd|S )Nz*parse_float must not return dicts or lists)ri   rF   rj   rw   )r   float_value)r&   r   r   safe_parse_float  s    z/make_safe_parse_float.<locals>.safe_parse_float)float)r&   r   r   )r&   r   r9     s    	r9   )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   r=   	hexdigitsr   r   rw   r!   r   r0   r-   r8   r7   r6   r:   r{   rD   r   rB   rA   r>   r   r   r   r   r   r   r   r   r   r   r   r   r   rC   r   r9   r   r   r   r   <module>   sl    "

B:"		"!	 D