U
    yag•  ã                   @   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   úG/var/www/html/myvenv/lib/python3.8/site-packages/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r„t|ƒ|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   Z
skip_linesr   Ú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   