o
    ;Di                     @   s   d dl Z d dlZd dlZd dlmZmZ eeZej	Z	ej
Z
ejZdd ZG dd deZdd Zd	d
 Zdd Zdd ZG dd deZdS )    N)Tabledatac                 K   s   t | fi |S N)CSVView)sourcekwargs r   H/var/www/Datamplify/venv/lib/python3.10/site-packages/petl/io/csv_py3.pyfromcsv_impl   s   r
   c                   @   s   e Zd Zdd Zdd ZdS )r   c                 K   s"   || _ || _|| _|| _|| _d S r   )r   encodingerrorscsvargsheader)selfr   r   r   r   r   r   r   r	   __init__   s
   
zCSVView.__init__c              	   c   s    | j d urt| j V  | jd4}tj|| j| jdd}ztj	|fi | j
}|D ]}t|V  q+W |  n|  w W d    d S 1 sIw   Y  d S )Nrb r   r   newline)r   tupler   openioTextIOWrapperr   r   csvreaderr   detach)r   bufcsvfiler   rowr   r   r	   __iter__   s   

"zCSVView.__iter__N__name__
__module____qualname__r   r   r   r   r   r	   r      s    r   c                 K      t | f|dd| d S )Nwbr   mode	_writecsvtabler   r   r   r   r	   
tocsv_impl+      r,   c                 K   r$   )Nabr&   r(   r*   r   r   r	   appendcsv_impl/   r-   r/   c              	   K   s   |r| nt | }||5}tj|||dd}	ztj|	fi |}
|D ]}|
| q#|	  W |	  n|	  w W d    d S 1 sEw   Y  d S )Nr   r   )	r   r   r   r   r   writerwriterowflushr   )r+   r   r'   write_headerr   r   r   rowsr   r   r0   r   r   r   r	   r)   3   s   

"r)   c                 K   s   t | fd|i|S )Nr   )
TeeCSVViewr*   r   r   r	   teecsv_implB   s   r6   c                   @   s"   e Zd Z		dddZdd ZdS )	r5   NstrictTc                 K   s(   || _ || _|| _|| _|| _|| _d S r   )r+   r   r3   r   r   r   )r   r+   r   r   r   r3   r   r   r   r	   r   H   s   
zTeeCSVView.__init__c              	   c   s    | j dk}tj|| j| jdd}zQtj|fi | j}t	| j
}zt|}W n ty>   Y W |  W d    d S w | jrG|| t|V  |D ]}|| t|V  qN|  W |  n|  w W d    d S 1 suw   Y  d S )Nr%   r   r   )r   r   r   r   r   r   r   r0   r   iterr+   nextStopIterationr   r3   r1   r   r2   )r   r   r   r0   ithdrr   r   r   r	   r   Q   s0   

		



"zTeeCSVView.__iter__)NNr7   Tr    r   r   r   r	   r5   F   s
    
	r5   )r   r   loggingpetl.util.baser   r   	getLoggerr!   loggerwarninginfodebugr
   r   r,   r/   r)   r6   r5   r   r   r   r	   <module>   s   
