U
    P^)                     @   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 zd dl	m
Z W n ek
rh   dZY nX ejd  dkre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)PurePath    Fc                 C   s   t  }t| ||d | S )N)	sort_keys)ioStringIOdumpgetvalue)objr   foutr   r   :/tmp/pip-install-220asx0h/pip/pip/_vendor/pytoml/writer.pydumps   s    r   nr\tbf")
r   	r   c                    s   g d fdd}d  t k r  }|dkrT| dt|   n$t|dk rx| dt|   d7  q|  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   _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>4   s     z_escape_id.<locals>.<genexpr>)anyr+   )r!   r   r   r   
_escape_id3   s    r2   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
| nt| 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 | t rtt| S t| d S )
Ntruefalsez{0} is not a valid TOML valuez[{0}]z, c                 s   s   | ]}t |V  qd S r,   )_format_value)r/   r   r   r   r   r0   H   s     z _format_value.<locals>.<genexpr>z{{{0}}}c                 s   s&   | ]\}}d  t|t|V  qdS )z{} = {}N)formatr2   r5   )r/   kr   r   r   r   r0   J   s     )
isinstanceboolintlongunicodefloatmathisnanisinf
ValueErrorr6   reprbytesr+   datetimer   listr)   dictitems_path_typesstrRuntimeError)vr   r   r   r5   9   s&    




r5   c                    s\  d| dfg}|rX|  \}}r^ddd D }|rN|d| n|d| |rnt| n| }g }d}	|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}	q|t| sH|	r|r|d qd S )Nr   F.c                 s   s   | ]}t |V  qd S r,   )r2   r.   r   r   r   r0   W   s     zdump.<locals>.<genexpr>z[[{0}]]
z[{0}]
c                 s   s   | ]}t |tV  qd S r,   )r8   rF   )r/   or   r   r   r0   d   s     c                 3   s   | ]} f |d fV  qdS )TNr   )r/   dr7   namer   r   r0   e   s     z<#{} = null  # To use: uncomment and replace null with value
Tz
{0} = {1}
r   )popr)   writer6   sortedkeysr8   rF   r   rE   allextendr2   r5   reversed)r   r   r   tablestableis_arraysection_name
table_keys
new_tableshas_kvrK   r   rO   r   r   Q   s6    
 
r   )F)F)
__future__r   r	   rD   r>   stringsysutilsr   pathlibr   rH   ImportErrorversion_infor:   r;   rI   r<   r   r'   r+   digitsascii_lettersr-   r2   r5   r   r   r   r   r   <module>   s    (

