
    fh                     8    d Z ddlZddlmZ  G d d          ZdS )z Tablib - *SV Support.
    N)StringIOc                   v    e Zd ZdZdZdZed             Zed             Zedd            Z	edd
            Z
d	S )	CSVFormatcsv)r   ,c                    t                      }|                    d| j                   t          j        |fi |}|                    d          D ]}|                    |           |                    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/histauto/venv/lib/python3.11/site-packages/tablib/formats/_csv.pyexport_stream_setzCSVFormat.export_stream_set   s     +s'<===z&++F++##%#00 	 	CMM#A    c                 F     | j         |fi |}|                                S )z&Returns CSV representation of Dataset.)r   getvalue)r   r   r   r   s       r   
export_setzCSVFormat.export_set   s.     '&w99&99   r   Tr   c                    |                                  |                    d| j                   t          j        |fi |}t          |          D ]o\  }}||k     r||k    r
|r||_        |rQ|dk    r6t          |          |j        k     r|dg|j        t          |          z
  z  z  }|	                    |           pd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   s	            r   
import_setzCSVFormat.import_set#   s     			+s'<===z)..v..oo 	! 	!FAs:~~J7" !q55SXX
22B44:C#899CC   	! 	!r   Nc                     	 t          j                                        |                    d          |p| j                   dS # t
          $ r Y dS 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   sa    	KMMD 1 1i>`3K`aaa4 	 	 	55	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 5 5 5 5 5 5 5 5r   