3
[                 @   s   d dl mZ d dlZd dlZd dlZd dlZejd  dkrBeZe	Z
dddZddd	d
ddddZdd Zdd Zdd Zdd Zdd ZdddZdS )    )unicode_literalsN   Fc             C   s   t j }t| ||d |j S )N)	sort_keys)ioStringIOdumpgetvalue)objr   fout r   :/tmp/pip-install-65viz3iy/pip/pip/_vendor/pytoml/writer.pydumps	   s    r   nr\tbf")
r   	r   c                s   g d fdd}d xf t k r  }|dkrV| jdt|   n$t|dk rz| jdt|   d7  q W |  d	d
j d	 S )Nr   c                  s"    krj     d S )N   )appendr   )iressstartr   r   flush   s    z_escape_string.<locals>.flushz"\
	r       z\u%04xr   r    )lenr   _escapesordjoin)r   r    cr   )r   r   r   r   r   _escape_string   s    r(   c             C   s   t dd | D rt| S | S )Nc             s   s    | ]}|j   o|d kV  qdS )z-_N)isalnum).0r'   r   r   r   	<genexpr>+   s    z_escape_id.<locals>.<genexpr>)anyr(   )r   r   r   r   
_escape_id*   s    r-   c             C   s   dj djdd | D S )Nz[{0}]z, c             s   s   | ]}t |V  qd S )N)_format_value)r*   r	   r   r   r   r+   1   s    z_format_list.<locals>.<genexpr>)formatr&   )vr   r   r   _format_list0   s    r1   c             C   s"   | j | j| jd d  d  d S )N   i  
      g      $@i@B g    .A)microsecondssecondsdays)tdr   r   r   _total_seconds6   s    r9   c             C   s6  t | tr| rdS dS t | ts*t | tr2t| S t | trjtj| sPtj| r`t	dj
| nt| S nt | ts~t | trt| S t | tjr| j }|d k	rt|d nd}|dkrd}n.|dkrd}n
d}| }d	j
||d |d }| jr| jd
| S | jd| S nt | tr*t| S t| d S )Ntruefalsez{0} is not a valid TOML value<   r   Z+-z{0}{1:.02}{2:.02}z%Y-%m-%dT%H:%M:%S.%fz%Y-%m-%dT%H:%M:%S)
isinstanceboolintlongunicodefloatmathisnanisinf
ValueErrorr/   reprbytesr(   datetime	utcoffsetr9   microsecondstrftimelistr1   RuntimeError)r0   offssuffixr   r   r   r.   :   s4    


r.   c                sf  f | dfg}xR|r`|j  \}}rbdjdd D }|rR|jdj| n|jdj| |rrt|j n|j }g }d}	x|D ] |  }
t|
tr|j f |
df qt|
t	r|
rt
dd |
D r|j fdd|
D  q|
d kr|jd	jt  d
}	q|jdjt t|
 d
}	qW |jt| sP|	r|r|jd qW d S )NF.c             s   s   | ]}t |V  qd S )N)r-   )r*   r'   r   r   r   r+   d   s    zdump.<locals>.<genexpr>z[[{0}]]
z[{0}]
c             s   s   | ]}t |tV  qd S )N)r@   dict)r*   or   r   r   r+   q   s    c             3   s   | ]} f |d fV  qdS )TNr   )r*   d)knamer   r   r+   r   s    z<#{} = null  # To use: uncomment and replace null with value
Tz
{0} = {1}
r   )popr&   writer/   sortedkeysr@   rU   r   rP   allextendr-   r.   reversed)r	   r
   r   tablestableis_arraysection_name
table_keys
new_tableshas_kvr0   r   )rX   rY   r   r   ^   s4    


 
r   )F)F)
__future__r   r   rL   rF   sysversion_inforB   rC   strrD   r   r$   r(   r-   r1   r9   r.   r   r   r   r   r   <module>   s    
$