
    ?wg                     0    d Z ddlZddlmZ  G d d      Zy)z Tablib - *SV Support.
    N)StringIOc                   \    e Zd ZdZdZdZed        Zed        Zed	d       Z	ed
d       Z
y)	CSVFormatcsv)r   ,c                     t               }|j                  d| j                         t        j                  |fi |}|j                  d      D ]  }|j                  |        |j                  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rows         J/var/www/horilla/myenv/lib/python3.12/site-packages/tablib/formats/_csv.pyexport_stream_setzCSVFormat.export_stream_set   so     +s'<'<=zz&+F+##%#0 	CMM#	 	A    c                 H     | j                   |fi |}|j                         S )z&Returns CSV representation of Dataset.)r   getvalue)r   r   r   r   s       r   
export_setzCSVFormat.export_set   s(     '&&w9&9  r   c                 x   |j                          |j                  d| j                         t        j                  |fi |}t        |      D ]j  \  }}||k  r||k(  r
|r||_        |s|dkD  r7t        |      |j                  k  r|dg|j                  t        |      z
  z  z  }|j                  |       l y)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   s	            r   
import_setzCSVFormat.import_set#   s     			+s'<'<=zz).v.o 	!FAs:~J7"q5SX

2B44::C#899CC 	!r   Nc                     	 t        j                         j                  |j                  d      |xs | j                         y# t
        $ r Y yw xY w)z*Returns True if given stream is valid CSV.i   )
delimitersTF)r   Sniffersniffreadr   	Exception)r   r   r	   s      r   detectzCSVFormat.detect6   sI    	KKMD 1i>`3K`K`a 		s   AA 	AA)Tr   )N)__name__
__module____qualname__title
extensionsr   classmethodr   r   r+   r2    r   r   r   r      s`    EJ  ! !
 ! !$  r   r   )__doc__r   ior   r   r9   r   r   <module>r<      s     5 5r   