U
    d                     @   s*   d Z ddlZddlmZ G dd dZdS )z Tablib - *SV Support.
    N)StringIOc                   @   sL   e Zd ZdZdZdZedd Zedd Zedd
dZ	edddZ
dS )	CSVFormatcsv)r   ,c                 K   sL   t  }|d| j tj|f|}|jddD ]}|| q.|d |S )z3Returns CSV representation of Dataset as file-like.	delimiterF)Zdictsr   )r   
setdefaultDEFAULT_DELIMITERr   writerZ_packagewriterowseek)clsdatasetkwargsstream_csvrow r   7/tmp/pip-unpacked-wheel-_3ph8cfy/tablib/formats/_csv.pyexport_stream_set   s    
zCSVFormat.export_stream_setc                 K   s   | j |f|}| S )z&Returns CSV representation of Dataset.)r   getvalue)r   r   r   r   r   r   r   
export_set   s    zCSVFormat.export_setTr   c           	      K   s   |   |d| j tj|f|}t|D ]b\}}||k r>q,||krR|rR||_q,|r,|dkrt||jk r|dg|jt|  7 }|	| q,dS )z Returns dataset from CSV stream.r   r    N)
Zwiper   r   r   reader	enumerateheaderslenwidthappend)	r   ZdsetZ	in_streamr   
skip_linesr   Zrowsir   r   r   r   
import_set#   s    zCSVFormat.import_setNc                 C   s@   z$t  j|d|p| jd W dS  tk
r:   Y dS X dS )z*Returns True if given stream is valid CSV.i   )
delimitersTFN)r   Sniffersniffreadr   	Exception)r   r   r   r   r   r   detect6   s
    zCSVFormat.detect)Tr   )N)__name__
__module____qualname__title
extensionsr   classmethodr   r   r    r&   r   r   r   r   r      s   

r   )__doc__r   ior   r   r   r   r   r   <module>   s   