o
    ;Di                     @   s   d dl mZmZmZ d dlZd dlmZmZmZm	Z	 d dl
mZ d dlmZmZ dddZG d	d
 d
eZ	 	dddZee_dS )    )divisionprint_functionabsolute_importN)izip_longestnextxrangeBytesIO)Table)read_source_from_argwrite_source_from_argTc                 K   s   t | f||d|S )z
    Extract a table from a sheet in an Excel .xls file.
    
    Sheet is identified by its name or index number.
    
    N.B., the sheet name is case sensitive.

    )sheetuse_view)XLSViewfilenamer   r   kwargs r   D/var/www/Datamplify/venv/lib/python3.10/site-packages/petl/io/xls.pyfromxls   s   
r   c                   @   s   e Zd ZdddZdd ZdS )r   NTc                 K   s   || _ || _|| _|| _d S )Nr   )selfr   r   r   r   r   r   r   __init__   s   
zXLSView.__init__c           
   	   c   s   | j rNddlm} t| j}|d0}| }|j|fi | j}| j	d u r-|d }n|| j	 }|D ]}t
|V  q4W d    d S 1 sGw   Y  d S dd l}t| j}|da}| }|jd|dd| j8}| j	d u ry|d}nt| j	tr|| j	}n|t| j	}t|jD ]
}	t
||	V  qW d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   )xlutils_viewrbT)file_contents	on_demandr   )r   petl.ior   r
   r   openreadViewr   r   tuplexlrdopen_workbooksheet_by_index
isinstanceintsheet_by_namestrr   nrows
row_values)
r   r   sourcesource2source3wbwsrowr    rownumr   r   r   __iter__"   sH   



"


"zXLSView.__iter__NT)__name__
__module____qualname__r   r0   r   r   r   r   r      s    
r   c                    s  ddl }|du rt }|j||d}||} du r7t| D ]\}	}
t|
D ]\}}|j|	||d q(q nit| }z.t|}t	t
t|}t|D ]\}}|jd||d | vsa | du rg|jj |< qKW n	 tyr   Y nw  fdd|D  t|D ]\}	}
tt|
 ddD ]\}\}}|j|	d |||d	 qqt|}|d
}|| W d   dS 1 sw   Y  dS )z2
    Write a table to a new Excel .xls file.

    r   N)encodingstyle_compression)labelc                    s   g | ]} | qS r   r   ).0fstylesr   r   
<listcomp>b   s    ztoxls.<locals>.<listcomp>)	fillvalue   )r7   styler,   )xlwtlocalegetpreferredencodingWorkbook	add_sheet	enumeratewriteiterr   listmapr&   Styledefault_styleStopIterationr   r   r   save)tblr   r   r5   r6   r;   r@   r,   r-   rr.   cvithdrfldsr9   r?   targettarget2r   r:   r   toxlsC   sF   
"rW   r1   )Nr   N)
__future__r   r   r   rA   petl.compatr   r   r   r   petl.util.baser	   petl.io.sourcesr
   r   r   r   rW   r   r   r   r   <module>   s   
)

*