B
    Kkd~                 @   s   d dl mZ d dlZ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rVe
ZeZdddZd	d
ddddddZdd Zejej d Zdd Zdd ZdddZdS )    )unicode_literalsN   )format_rfc3339   Fc             C   s   t  }t| ||d | S )N)	sort_keys)ioStringIOdumpgetvalue)objr   fout r   :/tmp/pip-install-gxxfd9b7/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| dt|   n$t|dk rz| dt|   d7  q W |  d	d
 d	 S )Nr   c                  s"    kr     d S )Nr   )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)   z-_c             C   s   t dd | D rt| S | S )Nc             s   s   | ]}|t kV  qd S )N)
_key_chars).0r(   r   r   r   	<genexpr>.   s    z_escape_id.<locals>.<genexpr>)anyr)   )r   r   r   r   
_escape_id-   s    r.   c             C   s   t | tr| rdS dS t | ts*t | tr2t| S t | trjt| sPt| r`t	d
| qt| S nt | ts~t | trt| S t | tjrt| S t | trd
ddd | D S t | trd
dd	d |  D S t| d S )
Ntruefalsez{0} is not a valid TOML valuez[{0}]z, c             s   s   | ]}t |V  qd S )N)_format_value)r+   r   r   r   r   r,   B   s    z _format_value.<locals>.<genexpr>z{{{0}}}c             s   s&   | ]\}}d  t|t|V  qdS )z{} = {}N)formatr.   r1   )r+   kr   r   r   r   r,   D   s    )
isinstanceboolintlongunicodefloatmathisnanisinf
ValueErrorr2   reprbytesr)   datetimer   listr'   dictitemsRuntimeError)vr   r   r   r1   3   s"    




r1   c                sf  d| dfg}xR|r`|  \}}rbddd D }|rR|d| n|d| |rrt| n| }g }d}	x|D ] |  }
t|
tr| f |
df qt|
t	r|
rt
dd |
D r| fd	d|
D  q|
d kr|d
t  d}	q|dt t|
 d}	qW |t| sP|	r|r|d qW d S )Nr   F.c             s   s   | ]}t |V  qd S )N)r.   )r+   r(   r   r   r   r,   O   s    zdump.<locals>.<genexpr>z[[{0}]]
z[{0}]
c             s   s   | ]}t |tV  qd S )N)r4   rB   )r+   or   r   r   r,   \   s    c             3   s   | ]} f |d fV  qdS )TNr   )r+   d)r3   namer   r   r,   ]   s    z<#{} = null  # To use: uncomment and replace null with value
Tz
{0} = {1}
r   )popr'   writer2   sortedkeysr4   rB   r   rA   allextendr.   r1   reversed)r   r   r   tablestableis_arraysection_name
table_keys
new_tableshas_kvrE   r   )r3   rI   r   r	   I   s4    


 
r	   )F)F)
__future__r   r   r@   r:   stringsysutilsr   version_infor6   r7   strr8   r   r%   r)   digitsascii_lettersr*   r.   r1   r	   r   r   r   r   <module>   s   (
