3
[+              
   @   sn  d dl Z d dlZd dlZd dlZddlmZ ejd  dkr@eZne	Zdd e
fddZd	d
d e
fddZG dd dZejdZdd ZejdZdd Zdddddddddd	ZejdZejd Zejd!Zejd"Zejd#Zefd$d%Zejd&Zd'd( Zejd)Zejd*Zejd+Zejd,Zejd-Z d.d/ Z!d0d1 Z"ejd2Z#d3d4 Z$G d5d6 d6ej%Z&dS )7    N   )	TomlError   c             C   s   |S )N )txvr   r   :/tmp/pip-install-65viz3iy/pip/pip/_vendor/pytoml/parser.py<lambda>	   s    r
   c          	   C   s    t | j ||t| dt| dS )Nname)	translateobject_pairs_hookfilename)loadsreadgetattrrepr)finr   r   r   r   r	   load	   s    r   z<string>c             C   s   |S )Nr   )r   r   r   r   r   r	   r
      s    c                s  t | tr| jd} | jdd}  } }|}t| d}t|d}fdd  fdd	xR|D ]H\}	}
|	d
kr|
\}}||kr dj| |d||< qn|	dk}|}xL|
d d D ]<}t |j|tr|| d \}}q|j	|d  f\}}qW  }|
d }||krL|r<| fg||< n| f||< qnt || tr|sj d || j
| f qn|r d || \}}|d k	r d ||f||< qnW  fdd||S )Nzutf-8z

)r   )r   c                s   t | d d  d S )Nr   r   )r   )msg)r   posr   r	   error   s    zloads.<locals>.errorc                s   | \}}}|dkr*j dr*dd  |dkrrr\tfdddd  D r\d  fdd	D n"|d
kr  fdd	D ||S )Nstrr   r   arrayc             3   s&   | ]\}}}}| d  d  kV  qdS )r   Nr   ).0kr   r   p)valuer   r	   	<genexpr>!   s    z/loads.<locals>.process_value.<locals>.<genexpr>zarray-type-mismatchc                s   g | ]}| d qS ))r   r   )r   item)r   process_valuer   r	   
<listcomp>#   s    z0loads.<locals>.process_value.<locals>.<listcomp>tablec                s    g | ]}||  d fqS ))r   r   )r   r   )r   r!   r   r   r	   r"   %   s    )
startswithany)r   r   kindtextr   )r   r!   r   )r   r   r	   r!      s    "zloads.<locals>.process_valuekvz2duplicate_keys. Key "{0}" was used more than once.table_arrayr   table_type_mismatchduplicate_tablesc                sp   | d kr } x\|D ]T}|| kr( d || }t |trRfdd|D | |< q|d |d | |< qW | S )Nkey_table_conflictc                s   g | ]\}} ||qS r   r   )r   sctbl)merge_tablesr   r	   r"   R   s    z/loads.<locals>.merge_tables.<locals>.<listcomp>r   r   )
isinstancelist)scopetablesr   r   )r   r/   r   r   r	   r/   J   s    

zloads.<locals>.merge_tablesr4   r4   )r0   bytesdecodereplace_Source_p_tomlformatgetr1   
setdefaultappend)sr   r   r   rootr3   r2   srcastr&   r   r   r   is_table_arraycurr   d	old_scope
next_tabler   )r   r   r/   r   r   r!   r   r	   r      sP    



r   c               @   s   e Zd Zd$ddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# ZdS )%r8   Nc             C   s"   || _ d| _d | _|| _g | _d S )Nr   )r   r   )r>   _pos_last	_filenamebacktrack_stack)selfr>   r   r   r   r	   __init__Z   s
    z_Source.__init__c             C   s   | j S )N)rH   )rK   r   r   r	   lasta   s    z_Source.lastc             C   s   | j S )N)rG   )rK   r   r   r	   r   d   s    z_Source.posc             C   s
   | j d S )N)_expect)rK   r   r   r	   failg   s    z_Source.failc             C   s6   | j r2| j d | _| dd  | _ | j| j | jS d S )Nr   r   )r>   rH   _advance)rK   r   r   r	   consume_dotj   s    z_Source.consume_dotc             C   s   | j | j S )N)rN   rQ   )rK   r   r   r	   
expect_dotr   s    z_Source.expect_dotc             C   s   | j sd| _dS dS )N TF)r>   rH   )rK   r   r   r	   consume_eofu   s    z_Source.consume_eofc             C   s   | j | j S )N)rN   rT   )rK   r   r   r	   
expect_eof{   s    z_Source.expect_eofc             C   s8   | j j|r4| j t|d  | _ || _| j| dS dS )NTF)r>   r$   lenrH   rP   )rK   r>   r   r   r	   consume~   s    
z_Source.consumec             C   s   | j | j|S )N)rN   rW   )rK   r>   r   r   r	   expect   s    z_Source.expectc             C   sH   |j | j}|rD| jt|jdd  | _|| _| j|jd |S d S )Nr   )matchr>   rV   grouprH   rP   )rK   remr   r   r	   
consume_re   s    z_Source.consume_rec             C   s   | j | j|S )N)rN   r]   )rK   r[   r   r   r	   	expect_re   s    z_Source.expect_rec             C   s   | j j| j| jf d S )N)rJ   r=   r>   rG   )rK   r   r   r	   	__enter__   s    z_Source.__enter__c             C   s.   |d kr| j j  n| j j \| _| _|tkS )N)rJ   popr>   rG   r   )rK   typer   	tracebackr   r   r	   __exit__   s    z_Source.__exit__c             C   s   | j | jf| jd< d S )Nr   r4   )r>   rG   rJ   )rK   r   r   r	   commit   s    z_Source.commitc             C   s$   |s t d| jd | jd | j|S )Nr   r   r   )r   rG   rI   )rK   rr   r   r	   rN      s    z_Source._expectc             C   sX   |j d}|dkr2| jd | jd t| f| _n"| jd |jd t|| f| _d S )Nr   r   r   r4   )rfindrG   rV   count)rK   r>   
suffix_posr   r   r	   rP      s    
 z_Source._advance)N)__name__
__module____qualname__rL   rM   r   rO   rQ   rR   rT   rU   rW   rX   r]   r^   r_   rc   rd   rN   rP   r   r   r   r	   r8   Y   s"   
	r8   z!(?:[ \t]|#[^\n]*\n|#[^\n]*\Z|\n)*c             C   s   | j t d S )N)r^   _ews_re)r>   r   r   r	   _p_ews   s    rm   z[ \t]*c             C   s   | j t d S )N)r^   _ws_re)r>   r   r   r	   _p_ws   s    ro   r   	"'\/)	bnre   r   rs   rt   ru   rv   fz[^"\\\000-\037]*zu([0-9a-fA-F]{4})zU([0-9a-fA-F]{8})z[bnrt"'\\/f]z
[ 	
]*c             C   s   g }x|j | j|jd | jds(P | jtr4q| jtsH| jtrh|j tt	| j
 jdd q| jt |j t| j
 jd  qW dj|S )Nr   ru   r      rS   )r=   r^   rZ   rW   r]   _newline_esc_re_short_uni_re_long_uni_re_chrintrM   _escapes_re_escapesjoin)r>   contentresr   r   r	   _p_basicstr_content   s    

 
r   z[0-9a-zA-Z-_]+c          
   C   s   | $ | j d t| t}| j d |S Q R X | jdr|| jdr^| jtjd}| j d n| jtjd}| j d |S | jtjdS )Nrs   rt   z''r   z''')	rX   r   _basicstr_rerW   r^   _litstr_ml_rerZ   
_litstr_re_key_re)r>   re   r   r   r	   _p_key   s    






r   zH[+-]?(?:0|[1-9](?:_?\d)*)(?:\.\d(?:_?\d)*)?(?:[eE][+-]?(?:\d(?:_?\d)*))?zP(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?(?:Z|([+-]\d{2}):(\d{2}))z&(?:(?:|"|"")[^"\\\000-\011\013-\037])*z[^'\000\010\012-\037]*z((?:(?:|'|'')(?:[^'\000-\010\013-\037]))*c             C   s  | j  }| jdr"d| j d|fS | jdr<d| j d|fS | jdr| jdrft| t}| jd nt| t}| jd d	|||fS | jd
r| jdr| jtj	d}| jd n| jt
j	d}| jd
 d	|||fS | jtr| j }|j	d}tt|j d d }|j	dr,t|j	d}nd}|j	drvt|j	ddd t|j	dd }ttjd|d }nttjdd}|\}	}}
}}}tj|	||
|||t|d |}d|||fS | jtr(| j j	d}|jdd}d|ksd|ksd|krd|t||fS d|t|d|fS | jdrg }| J xBt|  |jt| |d | j  t|  | jd | j  q@W W d Q R X t|  | jd  d!d ||fS | jd"rvt|  | }| jd#sjt| }t|  | jd$ t|  t| |d||< t|  xT| jdr^t|  t| }t|  | jd$ t|  t| |d||< t|  qW | jd# d%d ||fS | j  d S )&NtrueboolTfalseFrs   z""z"""r   rt   z''r   z'''         
   <   	   i@B datetime_rS   .eEfloatr   [)r   ,]r   {}=r#   )r   rW   rM   r   _basicstr_ml_rerX   r   r^   r   rZ   r   r]   _datetime_remapr   groupsr   	_TimeZoner   	timedelta	_float_rer7   rm   r=   _p_valuerd   ro   r   rO   )r>   r   r   re   r\   s0microgtzyrD   HMSdtitemsr   r   r   r	   r      s    










$ 




r   c             C   s   | j  }| jdr| jd}t|  t| g}t|  x,| jdrbt|  |jt|  t|  q8W | jd |r|| jd |rdnd||fS t| }t|  | jd t|  t| |d}d||f|fS )	Nr   r   r   r)   r#   r   )r   r(   )r   rW   ro   r   r=   rX   r   )r>   r   r   is_arraykeyskeyr   r   r   r	   _p_stmt>  s(    





r   z(?:[ \t]*(?:#[^\n]*)?\n)+[ \t]*c             C   sl   g }t |  | B |jt| |d x(| j  | jt |jt| |d q&W W d Q R X t |  | j  |S )N)r   )rm   r=   r   rd   r^   _stmtsep_rerU   )r>   r   stmtsr   r   r	   r9   V  s    
 r9   c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
r   c             C   s
   || _ d S )N)_offset)rK   offsetr   r   r	   rL   d  s    z_TimeZone.__init__c             C   s   | j S )N)r   )rK   r   r   r   r	   	utcoffsetg  s    z_TimeZone.utcoffsetc             C   s   d S )Nr   )rK   r   r   r   r	   dstj  s    z_TimeZone.dstc             C   sH   | j j d }|dk r"d}| }nd}|d }||d  }dj|||S )Nr   r   -+z{}{:.02}{:.02})r   total_secondsr:   )rK   r   r\   r   hr   r   r	   tznamem  s    z_TimeZone.tznameN)ri   rj   rk   rL   r   r   r   r   r   r   r	   r   c  s   r   )'stringr[   sysr   corer   version_infounichrr   chrdictr   r   r8   compilerl   rm   rn   ro   r   r   r}   r~   r   r|   r   r   r   r   r   r   r   r   r   r   r   r9   tzinfor   r   r   r   r	   <module>   s>    MU












Z
