o
    e                     @   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   sP   t  }|d| j tj|fi |}|jddD ]}|| q|d |S )z3Returns CSV representation of Dataset as file-like.	delimiterF)dictsr   )r   
setdefaultDEFAULT_DELIMITERr   writer_packagewriterowseek)clsdatasetkwargsstream_csvrow r   F/var/www/html/venv/lib/python3.10/site-packages/tablib/formats/_csv.pyexport_stream_set   s   
zCSVFormat.export_stream_setc                 K   s   | j |fi |}| 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i |}t|D ]1\}}||k r!q||kr+|r+||_q|rI|dkrDt||jk rD|dg|jt|  7 }|	| qdS )z Returns dataset from CSV stream.r   r    N)
wiper   r	   r   reader	enumerateheaderslenwidthappend)	r   dset	in_streamr   
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y   Y dS w )z*Returns True if given stream is valid CSV.i   )
delimitersTF)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    