U
    Mf                     @   s   d dl Z d dlZd dlmZ d dlZd dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ edZedZejd	Ze
ed
krdgZn
dddgZejeddd Zdd Zdd Zdd Zejdddddgdd ZdS )    N)import_optional_dependency)xlrd_version)Version)	ExcelFile)inspect_excel_formatxlrdxlwtz@ignore:As the xlwt package is no longer maintained:FutureWarning2z.xlsz.xlsxz.xlsm)paramsc                 C   s   | j S )z
    Valid extensions for reading Excel files with xlrd.

    Similar to read_ext, but excludes .ods, .xlsb, and for xlrd>2 .xlsx, .xlsm
    )param)request r   C/tmp/pip-unpacked-wheel-eb6vo0j3/pandas/tests/io/excel/test_xlrd.pyread_ext_xlrd   s    r   c           	   
   C   s   |}d}d}t | n}||| t|}t||d"}tj||dd}t || W 5 Q R X tj|||dd}t || W 5 Q R X d S )Nr   ZSheetAenginer   )
sheet_name	index_col)r   r   r   )	tmZensure_cleanZto_excelr   Zopen_workbookr   pd
read_excelZassert_frame_equal)	r   frameZdfr   r   pthZbookZxlresultr   r   r   test_read_xlrd_book(   s    
r   c              	   C   sv   | dddd}t dddd k	}|sLtjtdd	d
 t|d d W 5 Q R X n&td  tj|dd d W 5 Q R X d S )Niodataexcel
test1.xlsxopenpyxlignoreerrorsF'The xlrd engine is no longer maintainedZraise_on_extra_warningsmatchr   Sheet1)r   r   assert_produces_warningFutureWarningr   r   r   datapathpathZhas_openpyxlr   r   r   &test_excel_file_warning_with_xlsx_file:   s    r,   c              	   C   s   | dddd}t dddd k	}|sttdkrZtjtd	d
 tj|dd d W 5 Q R X qtj	t
ddd tj|dd d W 5 Q R X n&t	d  tj|dd d W 5 Q R X d S )Nr   r   r   r   r   r    r!   r	   zYour version of xlrd is )r%   r&   r   Fr#   r$   )r   r   r   pytestZraises
ValueErrorr   r   r   r'   r(   r)   r   r   r   &test_read_excel_warning_with_xlsx_fileJ   s"    r/   file_headers   	    s   	    s   	    s   ࡱc                 C   s   t | }t|dkstd S )NZxls)r   BytesIOr   AssertionError)r0   fr   r   r   test_read_old_xls_filesa   s    
r4   )r   r-   Zpandas.compat._optionalr   Zpandasr   Zpandas._testingZ_testingr   Zpandas.tests.io.excelr   Zpandas.util.versionr   Zpandas.io.excelr   Zpandas.io.excel._baser   Zimportorskipr   r   markfilterwarningsZ
pytestmarkextsZfixturer   r   r,   r/   Zparametrizer4   r   r   r   r   <module>   s<   




		