U
    ®[ÖeT  ã                   @   sP   d dl mZ d dlmZ d dlmZ dd„ ZG dd„ deƒZG dd	„ d	eƒZ	d
S )é    )ÚSheetReader)ÚNEW_READERS)ÚOrderedDictc              	   C   sR   i }i }ddddddddd	g	}| D ]&}||kr<| | ||< q"| | ||< q"||fS )
NZ	start_rowZ	row_limitZstart_columnZcolumn_limitZskip_column_funcZskip_row_funcZskip_empty_rowsZrow_rendererZkeep_trailing_empty_cells© )ÚkeywordsZsheet_keywordsÚnative_sheet_keywordsZ	args_listÚargr   r   úS/var/www/html/services/stratfitenv/lib/python3.8/site-packages/pyexcel_io/reader.pyÚclean_keywords   s"    ÷r
   c                   @   sf   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚReaderNc                 C   s   || _ || _d | _d | _d S ©N)Ú	file_typeÚlibraryr   Úreader_class)Úselfr   r   r   r   r	   Ú__init__   s    zReader.__init__c                 K   sH   | j d kr tj| jd| jd| _ t|ƒ\| _}| j || jf|Ž| _| jS )NÚfile©Úlocationr   )r   r   Úget_a_pluginr   r   r
   r   Úreader)r   Ú	file_namer   r   r   r   r	   Úopen)   s    
  ÿ ÿÿzReader.openc                 K   sH   t |ƒ\| _}| jd kr.tj| jd| jd| _| j|| jf|Ž| _| jS )NÚcontentr   ©r
   r   r   r   r   r   r   r   )r   Zfile_contentr   r   r   r   r	   Úopen_content4   s    
  ÿ ÿÿzReader.open_contentc                 K   sH   t |ƒ\| _}| jd kr.tj| jd| jd| _| j|| jf|Ž| _| jS )NZmemoryr   r   )r   Zfile_streamr   r   r   r   r	   Úopen_stream?   s    
  ÿ ÿÿzReader.open_streamc                 C   s   | j  ¡ }| |¡}|  |¡S )z;
        read a named sheet from a excel data book
        )r   Úsheet_namesÚindexÚread_sheet_by_index)r   Z
sheet_namer   r   r   r   r	   Úread_sheet_by_nameJ   s    

zReader.read_sheet_by_namec                 C   s4   | j  |¡}| j  ¡ }t|f| jŽ}|| | ¡ iS r   )r   Z
read_sheetr   ÚEncapsulatedSheetReaderr   Zto_array)r   Úsheet_indexZsheet_readerr   Úsheetr   r   r	   r   S   s    
zReader.read_sheet_by_indexc                 C   s2   t ƒ }tt| jƒƒD ]}|  |¡}| |¡ q|S ©z8
        read everything from a excel data book
        )r   ÚrangeÚlenr   r   Úupdate)r   Úresultr"   Zcontent_dictr   r   r	   Úread_allY   s
    
zReader.read_allc                 C   s@   t ƒ }|D ]0}t|tƒr*| |  |¡¡ q
| |  |¡¡ q
|S r$   )r   Ú
isinstanceÚintr'   r   r    )r   Zsheetsr(   r#   r   r   r	   Ú	read_manyc   s    
zReader.read_manyc                 C   s
   | j  ¡ S r   )r   Úclose©r   r   r   r	   r-   o   s    zReader.closec                 C   s   | S r   r   r.   r   r   r	   Ú	__enter__r   s    zReader.__enter__c                 C   s   |   ¡  d S r   )r-   )r   Úa_typeÚvalueÚ	tracebackr   r   r	   Ú__exit__u   s    zReader.__exit__)N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r    r   r)   r,   r-   r/   r3   r   r   r   r	   r      s   
	
r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )r!   c                 c   s   | j  ¡ E d H  d S r   )Ú_native_sheetÚrow_iteratorr.   r   r   r	   r8   z   s    z$EncapsulatedSheetReader.row_iteratorc                 c   s   | j  |¡E d H  d S r   )r7   Úcolumn_iterator)r   Úrowr   r   r	   r9   }   s    z'EncapsulatedSheetReader.column_iteratorN)r4   r5   r6   r8   r9   r   r   r   r	   r!   y   s   r!   N)
Zpyexcel_io.sheetr   Zpyexcel_io.pluginsr   Zpyexcel_io._compactr   r
   Úobjectr   r!   r   r   r   r	   Ú<module>   s
   ]