3
gW              	   @   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   W/var/www/tester-filtro-web/env/lib/python3.6/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   | j  }t||dS )zParse TOML from a file object.)r*   )readloads)r+   r*   sr   r   r   loadF   s    r0   )r/   r*   r,   c            C   sP  | j dd}d}t }x.t||t}y|| }W n tk
rH   P Y nX |dkr\|d7 }q|tkrt||||}t||t}nv|dkry||d  }W n tk
r   d}Y nX |dkrt|||}nt|||}t||t}n|dkrt	||dt
||}y|| }W n tk
r$   P Y nX |dkr<t	||d	|d7 }qW |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)r/   r*   srcposstatecharsecond_charr   r   r   r.   L   sH    




r.   c               @   s   e Zd ZddddZdS )r5   N)r,   c             C   s   t  | _t | _f | _d S )N)
NestedDictr?   Flagsflagsheader_namespace)selfr   r   r   __init__   s    zState.__init__)r&   r'   r(   rK   r   r   r   r   r5      s   r5   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 )rG   z)Flags that map to parsed keys/namespaces.r   r1   N)r,   c             C   s
   i | _ d S )N)_flags)rJ   r   r   r   rK      s    zFlags.__init__)keyr,   c             C   sH   | j }x,|d d D ]}||kr$d S || d }qW |j|d d  d S )Nr1   nestedrO   )rL   pop)rJ   rM   contkr   r   r   	unset_all   s    zFlags.unset_all)head_keyrel_keyflagr,   c             C   s   | j }x4|D ],}||kr,t t i d||< || d }qW xH|D ]@}||krb|| d j| n|ht i d||< || d }qBW d S )N)rH   recursive_flagsrN   rN   rH   )rL   setadd)rJ   rT   rU   rV   rQ   rR   r   r   r   set_for_relative_key   s    

zFlags.set_for_relative_key)rM   rV   	recursiver,   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 j| d S )Nr1   )rH   rW   rN   rN   rW   rH   rO   rO   )rL   rX   rY   )rJ   rM   rV   r[   rQ   
key_parentkey_stemrR   r   r   r   rX      s    
z	Flags.set)rM   rV   r,   c             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 )	NFr1   rW   TrN   rH   rO   rO   )rL   )rJ   rM   rV   rQ   rR   Z
inner_contr]   r   r   r   is_   s    z	Flags.is_)r&   r'   r(   r)   FROZENEXPLICIT_NESTrK   KeyrS   intrZ   boolrX   r^   r   r   r   r   rG      s   rG   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 )rF   N)r,   c             C   s
   i | _ d S )N)r@   )rJ   r   r   r   rK      s    zNestedDict.__init__T)access_lists)rM   rd   r,   c            C   sX   | j }xL|D ]D}||kr i ||< || }|r>t|tr>|d }t|t stdqW |S )Nr1   z There is no nest behind this keyrO   )r@   
isinstancelistKeyError)rJ   rM   rd   rQ   rR   r   r   r   get_or_create_nest   s    

zNestedDict.get_or_create_nest)rM   r,   c             C   sV   | j |d d }|d }||krH|| }t|ts<td|ji  n
i g||< d S )Nr1   z/An object other than list found behind this keyrO   rO   )rh   re   rf   rg   append)rJ   rM   rQ   Zlast_keylist_r   r   r   append_nest_to_list   s    
zNestedDict.append_nest_to_list)	r&   r'   r(   rK   ra   rc   r@   rh   rk   r   r   r   r   rF      s   
rF   )rA   rB   charsr,   c             C   s8   yx| | |kr|d7 }qW W n t k
r2   Y nX |S )Nr1   )r8   )rA   rB   rl   r   r   r   r6      s    r6   )rA   rB   expecterror_onerror_on_eofr,   c      	      C   s   y| j ||}W n4 tk
rD   t| }|r@t| |d|dY nX |j| || }|rtt|}| j ||}t| |d|d|S )Nz
Expected "r#   zFound invalid character ")index
ValueErrorlenr=   intersectionnextiter)	rA   rB   rm   rn   ro   Znew_posZ	bad_charsZbad_charZbad_posr   r   r   
skip_until   s    rv   )rA   rB   r,   c             C   sH   y| | }W n t k
r$   d }Y nX |dkrDt| |d dtddS |S )Nr3   r1   r   F)rn   ro   )r8   rv   ILLEGAL_COMMENT_CHARS)rA   rB   rD   r   r   r   r>     s    
r>   c             C   s0   x*|}t | |t}t| |}||kr|S qW d S )N)r6   TOML_WS_AND_NEWLINEr>   )rA   rB   Zpos_before_skipr   r   r   skip_comments_and_array_ws!  s    
ry   )rA   rB   rC   r,   c             C   s   |d7 }t | |t}t| |\}}|jj|tjsB|jj|tjrVt| |d| d|jj	|tjdd y|j
j| W n  tk
r   t| |dY nX ||_| ||d  dkrt| |d|d S )	Nr1   zCan not declare z twiceF)r[   zCan not overwrite a value]z.Expected "]" at the end of a table declaration)r6   r7   	parse_keyrH   r^   rG   r`   r_   r=   rX   r?   rh   rg   rI   )rA   rB   rC   rM   r   r   r   r<   *  s     r<   c             C   s   |d7 }t | |t}t| |\}}|jj|tjrDt| |d| |jj| |jj	|tj
dd y|jj| W n  tk
r   t| |dY nX ||_| ||d  }|dkrt| |d|d|d S )	N   z#Can not mutate immutable namespace F)r[   zCan not overwrite a valuez]]zFound "z3" at the end of an array declaration. Expected "]]")r6   r7   r{   rH   r^   rG   r_   r=   rS   rX   r`   r?   rk   rg   rI   )rA   rB   rC   rM   Z
end_markerr   r   r   r;   =  s&    r;   )rA   rB   rC   r*   r,   c             C   s   t | ||\}}}|d d |d  }}|j| }|jj|tjrTt| |d| |jj|j|tj y|j	j
|}	W n  tk
r   t| |dY nX ||	krt| |dt|ttfr|j| }
|jj|
tjdd ||	|< |S )Nr1   z#Can not mutate immutable namespace zCan not overwrite a valueT)r[   rO   rO   )parse_key_value_pairrI   rH   r^   rG   r_   r=   rZ   r`   r?   rh   rg   re   r@   rf   rX   )rA   rB   rC   r*   rM   valuer\   r]   Zabs_key_parentnestZabs_keyr   r   r   r:   Y  s$    

r:   )rA   rB   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 pairr1   )r{   r8   r=   r6   r7   parse_value)rA   rB   r*   rM   rD   r~   r   r   r   r}   r  s    
r}   c             C   s   t | |\}}|g}t| |t}xvy| | }W n tk
rF   d }Y nX |dkr\|t|fS |d7 }t| |t}t | |\}}|j| t| |t}q"W d S )N.r1   )parse_key_partr6   r7   r8   tupleri   )rA   rB   Zkey_partrM   rD   r   r   r   r{     s    

r{   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)r8   BARE_KEY_CHARSr6   parse_literal_strparse_one_line_basic_strr=   )rA   rB   rD   	start_posr   r   r   r     s    


r   c             C   s   |d7 }t | |ddS )Nr1   F)	multiline)parse_basic_str)rA   rB   r   r   r   r     s    r   c             C   s   |d7 }g }t | |}| ||d  dkr6|d |fS xt| ||\}}|j| t | |}| ||d  }|dkr|d |fS |dkrt| |d|d7 }t | |}| ||d  dkr8|d |fS q8W d S )Nr1   rz   ,zUnclosed array)ry   r   ri   r=   )rA   rB   r*   arrayvalcr   r   r   parse_array  s$    



r   c             C   sn  |d7 }t  }t }t| |t}| ||d  dkrB|d |jfS x$t| ||\}}}|d d |d  }}|j|tjrt| |d| y|j	|dd}	W n  t
k
r   t| |dY nX ||	krt| |d| d||	|< t| |t}| ||d  }
|
dkr|d |jfS |
d	kr0t| |d
t|ttfrR|j|tjdd |d7 }t| |t}qFW d S )Nr1   }z#Can not mutate immutable namespace F)rd   zCan not overwrite a valuezDuplicate inline table key "r#   r   zUnclosed inline tableT)r[   rO   rO   )rF   rG   r6   r7   r@   r}   r^   r_   r=   rh   rg   re   rf   rX   )rA   rB   r*   Znested_dictrH   rM   r~   r\   r]   r   r   r   r   r   parse_inline_table  s8    

r   F)r   )rA   rB   r   r,   c            C   s   | ||d  }|d7 }|r|dkr|dkrpt | |t}| ||d  }|sT|dfS |dkrht| |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krt| |dt| |dY nX d S )Nr|   \ \	\
r1    r   zUnescaped "\" in a stringz\u   z\U   zUnterminated string>   r   r   r   )r6   r7   r=   rx   parse_hex_charBASIC_STR_ESCAPE_REPLACEMENTSrg   rr   )rA   rB   r   Z	escape_idrD   r   r   r   parse_basic_str_escape  s.    r   c             C   s   t | |ddS )NT)r   )r   )rA   rB   r   r   r    parse_basic_str_escape_multiline  s    r   )rA   rB   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kV  qd S )N)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)rr   anyr=   rb   is_unicode_scalar_valuer   )rA   rB   r   hex_strZhex_intr   r   r   r     s    
r   c             C   s2   |d7 }|}t | |dtdd}|d | || fS )Nr1   r   T)rn   ro   )rv   ILLEGAL_LITERAL_STR_CHARS)rA   rB   r   r   r   r   r     s
    r   )rA   rB   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   r1   r   r   z'''T)rn   ro   r#   )r   r|   )rv   #ILLEGAL_MULTILINE_LITERAL_STR_CHARSr   )rA   rB   r   delimZ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
rL   t| |dY nX |dkr|sr|d || ||  fS | |d |d  dkr|d || ||  fS |d7 }q |dkr|| || 7 }|| |\}}||7 }|}q ||krt| |d|d|d7 }q W d S )	Nr   zUnterminated stringr#   r1   r   z""r$   zIllegal character ")!ILLEGAL_MULTILINE_BASIC_STR_CHARSr   ILLEGAL_BASIC_STR_CHARSr   r8   r=   )	rA   rB   r   rn   Zparse_escapesr   r   rD   Zparsed_escaper   r   r   r   6  s8    r   r   )rA   rB   regexr,   c             C   s,   |j | |}|st| |d|j |j fS )NzUnexpected sequence)matchr=   endgroup)rA   rB   r   r   r   r   r   parse_regexV  s    r   c             C   s  y| | }W n t k
r$   d }Y nX |dkr^| |d |d  dkrTt| |ddS t| |S |dkr| |d |d  dkrt| |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j| |}|r<yt|}W n" tk
r.   t| |dY nX |j	 |fS t
j| |}|r^|j	 t|fS |dkr | |d |d  }|dkrt| |d t\}}|t|dfS |dkrt| |d t\}}	|t|	dfS |dkr t| |d t\}}
|t|
dfS tj| |}|r$|j	 t||fS |dkr:t| ||S |dkrPt| ||S | ||d  }|d!krz|d ||fS | ||d  }|d"kr|d ||fS t| |d d S )#Nr#   r1   r   z""F)r   r   z''Ttr   Zruef   ZalsezInvalid date or datetime0r|   xr   or   br2   {infnan-inf+inf-nan+nanzInvalid value>   r   r   >   r   r   r   r   )r8   r   r   r   r   r   r   rq   r=   r   r   r   r   r   rb   r   r   r   r   r   r   )rA   rB   r*   rD   Zdatetime_matchZdatetime_objZlocaltime_matchrE   r   Zoct_strZbin_strZnumber_matchZfirst_threeZ
first_fourr   r   r   r   ]  sj    










r   )rA   rB   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.)rA   rB   r,   c             S   sV   |t | krdS | jdd|d }|dkr4|d }n|| jdd| }d| d| S )Nzend of documentr   r   r1   zline z	, column )rr   countrindex)rA   rB   linecolumnr   r   r   
coord_repr  s    
z suffixed_err.<locals>.coord_reprz (at ))strPosr%   )rA   rB   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   Zpip._vendor.tomli._rer   r   r   r   r   r   r   r   r   rer   	frozensetranger   Z
ASCII_CTRLr   r   r   r   rw   r7   rx   ascii_lettersdigitsr   r9   r   r   Z
ParseFloatra   rb   r   rq   r%   floatr0   r.   r5   rG   rF   r6   rc   rv   r>   ry   r<   r;   r:   r}   r{   r   r   rf   r   r@   r   r   r   r   r   r   r   r   r   r=   r   r   r   r   r   <module>   s~   ,,"
  ?
>"
	!	 N