Ë
    ž…jáõ  ã                  óî  — d dl mZ d dlmZmZ d dlmZ d dlmZ d dlZd dl	m
Z
 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Zd dlZd dlmc mZ d dlZd d	lmZmZmZmZmZ d dl m!Z" g d
¢Z# ejH                  d ejJ                  d«      g¬«       ejH                  d ejJ                  d«      g¬«       ejH                  d ejJ                  d«      g¬«       ejH                  d ejJ                  d«      ¬«       ejH                  d ejJ                  d«      ¬«       ejH                  d ejJ                  d«      ¬«      gZ&d!d„Z'd„ Z( ejR                  e&D � �cg c]  } e#D ]  } e'| |«      r	 e(| |«      ‘Œ Œ c}} e*¬«      d„ «       Z+ejR                  d„ «       Z,ejR                  d„ «       Z-ejR                  d„ «       Z.ejR                  d„ «       Z/d"d„Z0d#d„Z1d„ Z2 G d„ d«      Z3 G d„ d «      Z4yc c}} w )$é    )Úannotations)ÚdatetimeÚtime)Úpartial)ÚBytesION)ÚPath)ÚURLError)Ú
BadZipFile)Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚread_csv)ú.xlsú.xlsxú.xlsmú.xlsbú.odsÚxlrd©ÚmarksÚopenpyxlÚpyxlsbÚodfÚcalamineÚpython_calaminec                ó¢   — | j                   d   } | dk(  r|dk(  ry| dk(  r|dk7  ry|dk(  r| dvry| dk(  r|d	k7  ry|d	k(  r| d
vry| dk(  r|dk7  ryy)zm
    Filter out invalid (engine, ext) pairs instead of skipping, as that
    produces 500+ pytest.skips.
    r   r   r   Fr   r   >   r   r   r   r   >   r   r   r   T)Úvalues)ÚengineÚread_exts     úc/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/pandas/tests/io/excel/test_readers.pyÚ_is_valid_engine_ext_pairr"   =   s‚   € ð
 �]‰]˜1Ñ€FØ�Ò ¨FÒ 2ØØ�‚˜8 vÒ-ØØ�6Ò˜fÐ,?Ñ?ØØ�Ò˜h¨'Ò1ØØ�7Ò˜vÐ-CÑCØØ�Ò˜H¨Ò.ØØó    c                ój   — g | j                   ¢|‘­}t        j                  || j                  ¬«      }|S )z�
    engine gives us a pytest.param object with some marks, read_ext is just
    a string.  We need to generate a new pytest.param inheriting the marks.
    r   )r   ÚpytestÚparamr   )r   r    r   Ú	new_params       r!   Ú_transfer_marksr(   R   s1   € ð
 (ˆv�}‰}Ð'˜hÑ'€FÜ—‘˜V¨6¯<©<Ô8€IØÐr#   )ÚparamsÚidsc                ó   — | j                   S )zS
    Fixture for Excel reader engine and read_ext, only including valid pairs.
    )r&   )Úrequests    r!   Úengine_and_read_extr-   \   s   € ð �=‰=Ðr#   c                ó   — | \  }}|S ©N© ©r-   r   r    s      r!   r   r   l   s   € à*Ñ€FˆHØ€Mr#   c                ó   — | \  }}|S r/   r0   r1   s      r!   r    r    r   s   € à*Ñ€FˆHØ€Or#   c                ón   — |t        j                  «       › | › �z  }|j                  «        t        |«      S r/   )ÚuuidÚuuid4ÚtouchÚstr)r    Útmp_pathÚtmps      r!   Ú	tmp_excelr:   x   s-   € à
œŸ
™
›�~ h ZÐ0Ñ
0€CØ‡I�I„KÜˆs‹8€Or#   c                ó:   —  | dddd«      }t        |ddd¬«      }|S )	zI
    Obtain the reference data from read_csv with the Python engine.
    ÚioÚdataÚcsvz	test1.csvr   TÚpython)Ú	index_colÚparse_datesr   )r   )ÚdatapathÚfilepathÚdf_refs      r!   rD   rD      s)   € ñ
 ˜˜f e¨[Ó9€HÜ�h¨!¸ÀhÔO€FØ€Mr#   c                 ó   — y)NÚusr0   )r    r   s     r!   Úget_exp_unitrG   ‰   s   € Ør#   c                ó~   — d | j                   _        t        ||«      }| j                   j                  |«      | _         y r/   )ÚindexÚnamerG   Úas_unit)Úexpectedr    r   Úunits       r!   Úadjust_expectedrN   �   s0   € Ø€H‡N�NÔÜ˜ &Ó)€Dà—^‘^×+Ñ+¨DÓ1€H…Nr#   c                ón   — | dk(  r0|j                  t        j                  j                  d¬«      «       y y )Nr   z3Sheets containing datetimes not supported by pyxlsb©Úreason)Úapplymarkerr%   ÚmarkÚxfail)r   r,   s     r!   Úxfail_datetimes_with_pyxlsbrU   ”   s7   € Ø�ÒØ×ÑÜ�K‰K×ÑØLð ó õ	
ð r#   c                  ó   — e Zd Zej                  j                  dg d¢dgddgg«      d„ «       Zd„ Z ej                  d¬«      d„ «       Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zej                  j                  dg d¢g d¢g d¢g d¢g d¢g d¢g«      d„ «       Zej                  j                  dddgddgg«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                  j                  dd d!g«      d"„ «       Zd#„ Zd$„ Zd%„ Zd&„ Zd'„ Zd(„ Zd)„ Zd*„ Zej                  j                  d+d g d,¢g d-¢g d,¢d.d/e jB                  d0gd1œfd2d3e"e"d1œ e#g d,¢d2¬4«       e#g d-¢d3¬4«       e#g d5¢d6¬4«       e#d7d8e jB                  d9gd6¬4«      d1œfg«      d:„ «       Z$d;„ Z%d<„ Z&d=„ Z'ej                  j                  d>i d?fd@dAid?fg«      dB„ «       Z(dC„ Z)ej                  j                  dDdE e*dFdGgi«      fdH e*dIg¬J«      fg«      dK„ «       Z+dL„ Z,dM„ Z-dN„ Z.dO„ Z/dP„ Z0dQ„ Z1ej                  je                  dR«      dS„ «       Z3dT„ Z4dU„ Z5dV„ Z6ej                  j                  dWdXdYdXgdXdYgdZd[dZgdZd[gg«      d\„ «       Z7d]„ Z8d^„ Z9ej                  jt                  ej                  jv                  d_„ «       «       Z<e=j|                  ej                  jv                  d`„ «       «       Z?ej                  jv                  da„ «       Z@ej                  j‚                  db„ «       ZBdc„ ZCdd„ ZDde„ ZEdf„ ZFej                  j                  dgdhe jB                  didjdigfdke jB                  gdlz  fg«      dm„ «       ZGdn„ ZHdo„ ZIdp„ ZJdq„ ZKdr„ ZLds„ ZMdt„ ZNdu„ ZOej                  j                  dvdwdxdYd?gdYd fdwdyd dYd?gd fdwdzdYd?gdYd?gd fdwd{dYd?gdYd fd|d}d d dYd!gfd|d}d d d~„ fg«      d„ «       ZPd€„ ZQd�„ ZRd‚„ ZSdƒ„ ZTd„„ ZUd…„ ZVd†„ ZWd‡„ ZXy )ˆÚTestReadersÚcol)TNFTFc                óà   — |dv rt        j                  d|› d�«       t        d|id¬«      }|j                  |d¬«       t	        j
                  |ddi¬«      }t        j                  ||«       y )	N©r   r   úNo engine for filetype: 'ú'Úbool_columnÚboolean©ÚdtypeF)rI   )r%   Úskipr   Úto_excelÚpdÚ
read_excelÚtmÚassert_frame_equal)ÚselfrX   r:   r    ÚdfÚdf2s         r!   Útest_read_excel_type_checkz&TestReaders.test_read_excel_type_checkž   si   € ð Ð(Ñ(Ü�K‰KÐ3°H°:¸QÐ?Ô@Ü˜ sÐ+°9Ô=ˆØ
�‰�I UˆÔ+Ü�m‰m˜I¨m¸YÐ-GÔHˆÜ
×Ñ˜b #Õ&r#   c           	     óö   —  |dddd«      }t        j                  |«      5 }t        j                  |ddg d¢dd	¬
«      }d d d «       t        dg d¢id¬«      }t	        j
                  |«       y # 1 sw Y   Œ1xY w)Nr<   r=   Úexcelztest_none_type.xlsxÚSheet1T)ÚnanÚNoneÚabcdr^   r   )Ú
sheet_nameÚkeep_default_naÚ	na_valuesr`   r   ÚTest)TNFNFNTr_   )rc   Ú	ExcelFilerd   r   re   rf   )rg   rB   Úf_pathrl   ÚparsedrL   s         r!   Útest_pass_none_typezTestReaders.test_pass_none_type¨   s€   € á˜$ ¨Ð1FÓGˆä�\‰\˜&Ó!ð 	 UÜ—]‘]ØØ#Ø $Ú1ØØ!ôˆF÷	ô ØÒAÐBØô
ˆô
 	×Ñ˜f hÕ/÷	ð 	ús   ¡A/Á/A8©Úautousec                óš   — t        t        j                  |¬«      }|j                   |ddd«      «       |j	                  t        d|«       y)zG
        Change directory and set engine for read_excel calls.
        ©r   r<   r=   rl   rd   N)r   rc   rd   ÚchdirÚsetattr©rg   r   rB   ÚmonkeypatchÚfuncs        r!   Úcd_and_set_enginezTestReaders.cd_and_set_engine¼   s=   € ô
 ”r—}‘}¨VÔ4ˆØ×Ñ™( 4¨°Ó9Ô:Ø×ÑœB ¨dÕ3r#   c                óö   — d„ }|j                  t        j                  d|«       ddddddœ}t        d|z   d	«      5 }t        j                  |«      }d d d «       |�|}n||d
d     }|k(  sJ ‚y # 1 sw Y   ŒxY w)Nc                ó   — | j                   S r/   r|   )rg   ÚargsÚkwargss      r!   Úparserz,TestReaders.test_engine_used.<locals>.parserÇ   s   € Ø—;‘;Ðr#   Úparser   r   r   r   ©ÚxlsxÚxlsmÚxlsbÚxlsÚodsÚtest1Úrbé   )r~   rc   ru   Úopenrd   )	rg   r    r   r€   r‡   Úexpected_defaultsÚfÚresultrL   s	            r!   Útest_engine_usedzTestReaders.test_engine_usedÅ   s™   € ò	ð 	×ÑœBŸL™L¨'°6Ô:ð ØØØØñ
Ðô �'˜HÑ$ dÓ+ð 	&¨qÜ—]‘] 1Ó%ˆF÷	&ð ÐØ‰Hà(¨°!°"¨Ñ6ˆHØ˜Ò!Ð!Ñ!÷	&ð 	&ús   ¼A/Á/A8c           
     óf  — ddiddiddiddiddidœ}|dv rt        j                  d«      }n0|d	k(  rt        j                  d
«      }nt        j                  d«      }|�Gt        j                  t        |¬«      5  t        j                  d|z   dd||dd     ¬«       d d d «       y y # 1 sw Y   y xY w)NÚfoorp   é{   ÚTrueTr‰   >   r   r   z8open_workbook() got an unexpected keyword argument 'foo'r   z/load() got an unexpected keyword argument 'foo'z8load_workbook() got an unexpected keyword argument 'foo'©Úmatchr�   rm   r   r‘   )rq   r@   Úengine_kwargs)ÚreÚescaper%   ÚraisesÚ	TypeErrorrc   rd   )rg   r    r   r“   Úmsgs        r!   Útest_engine_kwargszTestReaders.test_engine_kwargsÝ   sÉ   € ð ˜F�OØ˜C�LØ˜F�OØ˜4�=Ø˜6�?ñ
Ðð Ð'Ñ'Ü—)‘)ÐWÓX‰CØ�uŠ_Ü—)‘)ÐNÓO‰Cä—)‘)ÐWÓXˆCàÐÜ—‘œy°Ô4ñ Ü—‘Ø˜hÑ&Ø'ØØ"3°H¸Q¸R°LÑ"Aõ	÷ð ð ÷ð ús   Á:#B'Â'B0c                ó<  — d}t        j                  t        |¬«      5  t        j                  d|z   ddd¬«       d d d «       t        j                  t        |¬«      5  t        j                  d|z   dd	gdd¬
«       d d d «       y # 1 sw Y   ŒLxY w# 1 sw Y   y xY w)Nz Passing an integer for `usecols`r›   r�   rm   r   é   ©rq   r@   ÚusecolsÚSheet2r‘   ©rq   Úskiprowsr@   r§   ©r%   r    Ú
ValueErrorrc   rd   ©rg   r    r¢   s      r!   Útest_usecols_intzTestReaders.test_usecols_int÷   s�   € à0ˆÜ�]‰]œ:¨SÔ1ñ 	Ü�M‰MØ˜(Ñ"¨xÀ1Èaõ÷	ô �]‰]œ:¨SÔ1ñ 	Ü�M‰MØ˜(Ñ"Ø#Ø˜ØØõ÷	ð 	÷	ð 	ú÷	ð 	ús   žBÁBÂBÂBc                ó  — t        ||«       |ddg   }t        |||«       t        j                  d|z   ddg d¢¬«      }t        j                  d|z   dd	gdg d¢¬
«      }t	        j
                  ||«       t	        j
                  ||«       y )NÚBÚCr�   rm   r   )r   é   r¥   r¦   r¨   r‘   r©   ©rU   rN   rc   rd   re   rf   )rg   r,   r   r    rD   rL   Údf1ri   s           r!   Útest_usecols_listzTestReaders.test_usecols_list	  sŠ   € Ü# F¨GÔ4à˜3 ˜*Ñ%ˆÜ˜ (¨FÔ3ä�m‰mØ�hÑ¨8¸qÊ)ô
ˆô �m‰mØ�hÑØØ�SØÚô
ˆô 	×Ñ˜c 8Ô,Ü
×Ñ˜c 8Õ,r#   c                óÐ  — t        ||«       |g d¢   }t        |||«       t        j                  d|z   ddd¬«      }t        j                  d|z   ddgdd¬	«      }t	        j
                  ||«       t	        j
                  ||«       |d
dg   }t        |||«       t        j                  d|z   ddd¬«      }t        j                  d|z   ddgdd¬	«      }t	        j
                  ||«       t	        j
                  ||«       t        j                  d|z   ddd¬«      }t        j                  d|z   ddgdd¬	«      }t	        j
                  ||«       t	        j
                  ||«       y )N©ÚAr°   r±   r�   rm   r   zA:Dr¦   r¨   r‘   r©   r°   r±   zA,C,DzA,C:Dr³   )rg   r,   r   r    rD   rL   ri   Údf3s           r!   Útest_usecols_strzTestReaders.test_usecols_str  sh  € Ü# F¨GÔ4àš/Ñ*ˆÜ˜ (¨FÔ3ä�m‰mØ�hÑ¨8¸qÈ%ô
ˆô �m‰mØ�hÑØØ�SØØô
ˆô 	×Ñ˜c 8Ô,Ü
×Ñ˜c 8Ô,à˜3 ˜*Ñ%ˆÜ˜ (¨FÔ3ä�m‰mØ�hÑ¨8¸qÈ'ô
ˆô �m‰mØ�hÑØØ�SØØô
ˆô 	×Ñ˜c 8Ô,Ü
×Ñ˜c 8Ô,ä�m‰mØ�hÑ¨8¸qÈ'ô
ˆô �m‰mØ�hÑØØ�SØØô
ˆô 	×Ñ˜c 8Ô,Ü
×Ñ˜c 8Õ,r#   r§   )r   r‘   r¥   )r   r¥   r‘   )r‘   r   r¥   )r‘   r¥   r   )r¥   r   r‘   )r¥   r‘   r   c                ó¨   — t        ||«       |ddg   }t        |||«       t        j                  d|z   dd|¬«      }t	        j
                  ||«       y )Nr¸   r±   r�   rm   r   r¦   r³   )rg   r,   r   r    r§   rD   rL   r•   s           r!   Ú.test_usecols_diff_positional_int_columns_orderz:TestReaders.test_usecols_diff_positional_int_columns_orderQ  sV   € ô 	$ F¨GÔ4à˜3 ˜*Ñ%ˆÜ˜ (¨FÔ3ä—‘Ø�hÑ¨8¸qÈ'ô
ˆô 	×Ñ˜f hÕ/r#   r°   ÚDc                ó¦   — |ddg   }t        t        |«      «      |_        t        j                  d|z   d|¬«      }t        j                  ||«       y )Nr°   r½   r�   rm   ©rq   r§   )ÚrangeÚlenrI   rc   rd   re   rf   )rg   r    r§   rD   rL   r•   s         r!   Ú.test_usecols_diff_positional_str_columns_orderz:TestReaders.test_usecols_diff_positional_str_columns_ordera  sH   € à˜3 ˜*Ñ%ˆÜœs 8›}Ó-ˆŒä—‘˜w¨Ñ1¸hÐPWÔXˆÜ
×Ñ˜f hÕ/r#   c                óœ   — t        ||«       |}t        |||«       t        j                  d|z   dd¬«      }t	        j
                  ||«       y ©Nr�   rm   r   ©rq   r@   r³   ©rg   r,   r   r    rD   rL   r•   s          r!   Útest_read_excel_without_slicingz+TestReaders.test_read_excel_without_slicingi  sE   € Ü# F¨GÔ4àˆÜ˜ (¨FÔ3ä—‘˜w¨Ñ1¸hÐRSÔTˆÜ
×Ñ˜f hÕ/r#   c                ó¨   — t        ||«       |ddg   }t        |||«       t        j                  d|z   ddd¬«      }t	        j
                  ||«       y )Nr±   r½   r�   rm   r   zA,D:Er¦   r³   rÆ   s          r!   Útest_usecols_excel_range_strz(TestReaders.test_usecols_excel_range_strr  sT   € Ü# F¨GÔ4à˜3 ˜*Ñ%ˆÜ˜ (¨FÔ3ä—‘Ø�hÑ¨8¸qÈ'ô
ˆô 	×Ñ˜f hÕ/r#   c                óž   — d}t        j                  t        |¬«      5  t        j                  d|z   dd¬«       d d d «       y # 1 sw Y   y xY w)NzInvalid column name: E1r›   r�   rm   zD:E1r¿   r«   r­   s      r!   Ú$test_usecols_excel_range_str_invalidz0TestReaders.test_usecols_excel_range_str_invalid}  sC   € Ø'ˆä�]‰]œ:¨SÔ1ñ 	SÜ�M‰M˜' HÑ,¸È6ÕR÷	S÷ 	Sñ 	Súó   žAÁAc                ó¦   — d}t        j                  t        |¬«      5  t        j                  d|z   ddgddg¬«       d d d «       y # 1 sw Y   y xY w)Nz(list indices must be integers.*, not strr›   r�   rm   r¸   r±   r¦   ©r%   r    r¡   rc   rd   r­   s      r!   Útest_index_col_label_errorz&TestReaders.test_index_col_label_errorƒ  sM   € Ø8ˆä�]‰]œ9¨CÔ0ñ 	Ü�M‰MØ˜(Ñ"Ø#Ø˜%Ø˜c˜
õ	÷	÷ 	ñ 	ús   ž AÁAc                óš   — t        j                  d|z   dd¬«      }t        g d¢t        g d¬«      ¬«      }t	        j
                  ||«       y )Nr�   ÚSheet3r¸   rÅ   )r°   r±   r½   ÚEÚF©rJ   ©ÚcolumnsrI   )rc   rd   r   r   re   rf   ©rg   r    r•   rL   s       r!   Útest_index_col_strzTestReaders.test_index_col_strŽ  sB   € ä—‘˜w¨Ñ1¸hÐRUÔVˆÜÚ-´U¸2ÀCÔ5Hô
ˆô 	×Ñ˜f hÕ/r#   c           	     ó´   — t        j                  d|z   dg d¢¬«      }t        g d¢t        g gdz  g gdz  g d¢¬«      ¬«      }t	        j
                  ||«       y )	Nr�   rÑ   r·   rÅ   )r½   rÒ   rÓ   r¥   ©ÚlevelsÚcodesÚnamesrÕ   )rc   rd   r   r   re   rf   r×   s       r!   Útest_index_col_emptyz TestReaders.test_index_col_empty–  sU   € ä—‘Ø�hÑ¨8ºô
ˆô Ú#Ü R D¨1¡H°R°D¸1±HÂOÔTô
ˆô 	×Ñ˜f hÕ/r#   r@   Nr²   c                óÐ   — t        j                  d|z   d|¬«      }t        g d¢g d¢gg d¢¬«      }|r|j                  |j                  |   «      }t        j                  ||«       y )Nr�   ÚSheet4rÅ   )Úi1ÚaÚx)Úi2ÚbÚy)z
Unnamed: 0Úcol1Úcol2©rÖ   )rc   rd   r   Ú	set_indexrÖ   re   rf   )rg   r    r@   r•   rL   s        r!   Útest_index_col_with_unnamedz'TestReaders.test_index_col_with_unnamed¡  sf   € ô —‘Ø�hÑ¨8¸yô
ˆô ÚÒ/Ð0Ò:Xô
ˆñ Ø×)Ñ)¨(×*:Ñ*:¸9Ñ*EÓFˆHä
×Ñ˜f hÕ/r#   c                óž   — d}t        j                  t        |¬«      5  t        j                  d|z   dg¬«       d d d «       y # 1 sw Y   y xY w)NzEUsecols do not match columns, columns expected but not found: \['E'\]r›   r�   rÒ   ©r§   r«   r­   s      r!   Ú%test_usecols_pass_non_existent_columnz1TestReaders.test_usecols_pass_non_existent_column¯  sF   € ðð 	ô �]‰]œ:¨SÔ1ñ 	=Ü�M‰M˜' HÑ,°s°eÕ<÷	=÷ 	=ñ 	=úrÌ   c                ó    — d}t        j                  t        |¬«      5  t        j                  d|z   ddg¬«       d d d «       y # 1 sw Y   y xY w)Nz['usecols' must either be list-like of all strings, all unicode, all integers or a callable.r›   r�   ÚE1r   rí   r«   r­   s      r!   Útest_usecols_wrong_typez#TestReaders.test_usecols_wrong_type¹  sM   € ðDð 	ô
 �]‰]œ:¨SÔ1ñ 	AÜ�M‰M˜' HÑ,°t¸Q°iÕ@÷	A÷ 	Añ 	Aús   žAÁAc                óˆ   — t        j                  d|z   d¬«      }t        ddggddg¬«      }t        j                  ||«       y )	NÚtest2rm   ©rq   ÚaaaaÚbbbbbrt   ÚTest1ré   ©rc   rd   r   re   rf   )rg   r    rw   rL   s       r!   Útest_excel_stop_iteratorz$TestReaders.test_excel_stop_iteratorÂ  s@   € Ü—‘˜w¨Ñ1¸hÔGˆÜ˜v wÐ/Ð0¸6À7Ð:KÔLˆÜ
×Ñ˜f hÕ/r#   c                ó*  — t        ||«       |dk(  r4|dk(  r/|j                  t        j                  j	                  d¬«      «       t        j                  d|z   d¬«      }t        t        j                  ggdg¬	«      }t        j                  ||«       y )
Nr   r   z+Calamine can't extract error from ods filesrP   Útest3rm   rô   rt   ré   )rU   rR   r%   rS   rT   rc   rd   r   Únprn   re   rf   )rg   r,   r   r    rw   rL   s         r!   Útest_excel_cell_error_naz$TestReaders.test_excel_cell_error_naÇ  s~   € Ü# F¨GÔ4ð �ZÒ H°Ò$6Ø×ÑÜ—‘×!Ñ!Ð)VÐ!ÓWôô —‘˜w¨Ñ1¸hÔGˆÜœrŸv™v˜h˜Z°&°Ô:ˆÜ
×Ñ˜f hÕ/r#   c                ó€  — t        ||«       |}t        |||«       t        j                  d|z   dd¬«      }t        j                  d|z   ddgd¬«      }t	        j
                  ||«       t	        j
                  ||«       t        j                  d|z   ddd¬«      }t	        j
                  ||j                  d d	 «       y )
Nr�   rm   r   rÅ   r¨   r‘   ©rq   rª   r@   ©rq   r@   Ú
skipfooteréÿÿÿÿ)rU   rN   rc   rd   re   rf   Úiloc)	rg   r,   r   r    rD   rL   r´   ri   r¹   s	            r!   Útest_excel_tablezTestReaders.test_excel_tableÔ  s¬   € Ü# F¨GÔ4àˆÜ˜ (¨FÔ3ä�m‰m˜G hÑ.¸8ÈqÔQˆÜ�m‰mØ�hÑ¨8¸q¸cÈQô
ˆô 	×Ñ˜c 8Ô,Ü
×Ñ˜c 8Ô,ä�m‰mØ�hÑ¨8¸qÈQô
ˆô 	×Ñ˜c 3§8¡8¨C¨R =Õ1r#   c                ó˜  — t        ||«       t        ||«      }t        j                  g d¢g d¢g d¢g d¢g d¢t	        t        ddd«      t        ddd	«      t        d
dd«      t        ddd«      t        ddd«      gd|› d�¬«      dœ«      }d}t        j                  ||z   d¬«      }t        j                  ||«       |j                  «       }d|j                  |j                  d   df<   t        j                  ||z   d¬«      }t        j                  ||«       t        |j                  «      D ]G  \  }	}
t        j                  ||z   d|	¬«      }|j                  |
«      }t        j                  ||«       ŒI |d   j!                  t"        «      |d<   t        j                  ||z   ddt"        i¬«      }t        j                  ||«       y )N)r‘   r²   éýÿÿÿé   r   )g      ô?g      @gHáz®Gý?g¸…ëQ¸þ?g•Ö&è.>)TFTTF)r‘   r²   r¥   r  é   )râ   r¥   ÚcÚdÚeiÝ  é
   é   é   iq  r‘   é   é   iß  r¥   úM8[ú]r_   )ÚIntColÚFloatColÚBoolColÚStrColÚStr2ColÚDateColÚ
test_typesrm   rô   g      @r  rÅ   r  ©rq   Ú
converters)rU   rG   r   Ú	from_dictr   r   rc   rd   re   rf   ÚcopyÚlocrI   Ú	enumeraterÖ   rê   Úapplyr7   )rg   r,   r   r    rM   rL   ÚbasenameÚactualÚfloat_expectedÚicolrJ   Úexps               r!   Útest_reader_special_dtypesz&TestReaders.test_reader_special_dtypesç  sº  € Ü# F¨GÔ4ä˜H fÓ-ˆÜ×&Ñ&â*ÚBÚ;Ú)Ú2Ü ä   r¨2Ó.Ü   r¨2Ó.Ü   q¨!Ó,Ü   r¨2Ó.Ü   q¨"Ó-ðð   ˜v Q˜-ô	ñó
ˆð&  ˆô —‘˜x¨(Ñ2¸xÔHˆÜ
×Ñ˜f hÔ/ð "Ÿ™›ˆØADˆ×Ñ˜>×/Ñ/°Ñ2°IÐ=Ñ>Ü—‘˜x¨(Ñ2¸xÔHˆÜ
×Ñ˜f nÔ5ô $ H×$4Ñ$4Ó5ò 	/‰JˆD�$Ü—]‘]Ø˜8Ñ#°ÀDôˆFð ×$Ñ$ TÓ*ˆCÜ×!Ñ! &¨#Õ.ð	/ð & hÑ/×5Ñ5´cÓ:ˆ�ÑÜ—‘Ø�xÑ¨HÀ(ÌCÀô
ˆô 	×Ñ˜f hÕ/r#   c           
     ó  — d}t        j                  g d¢dt        j                  dddgg d¢dt        j                  d	d
dgdœ«      }d„ d„ d„ d„ dœ}t	        j
                  ||z   d|¬«      }t        j                  ||«       y )NÚtest_converters)r‘   r²   r  éüÿÿr   g      )@gÍÌÌÌÌL2@g3333333@g:Œ0âŽy5>)ÚFoundr*  r*  ú	Not foundr*  Ú1Ú3Ú4Ú5)r  r  r  r  c                ó&   — | dk7  rt        | «      S dS )NÚ r)  )Úint©rã   s    r!   ú<lambda>z4TestReaders.test_reader_converters.<locals>.<lambda>&  s   € ¨!¨rª'¤ A£€ °u€ r#   c                ó0   — | rd| z  S t         j                  S )Nr  )rü   rn   r3  s    r!   r4  z4TestReaders.test_reader_converters.<locals>.<lambda>'  s   € ©A " q¡&€ ´2·6±6€ r#   c                ó   — | dk7  rdS dS )Nr1  r*  r+  r0   r3  s    r!   r4  z4TestReaders.test_reader_converters.<locals>.<lambda>(  s   €  A¨¢G˜€ °€ r#   c                ó    — | rt        | «      S dS )Nr1  )r7   r3  s    r!   r4  z4TestReaders.test_reader_converters.<locals>.<lambda>)  s   € ¡1œ˜Q›€ ¨"€ r#   )r  r  r²   r¥   rm   r  )r   r  rü   rn   rc   rd   re   rf   )rg   r    r!  rL   r  r"  s         r!   Útest_reader_convertersz"TestReaders.test_reader_converters  s‰   € Ø$ˆä×&Ñ&â.Ø!¤2§6¡6¨4°°{ÐCÚLØ¤§¡¨¨S°#Ð6ñ	ó
ˆñ =Ù9Ù<Ù,ñ	
ˆ
ô —‘Ø�xÑ¨HÀô
ˆô 	×Ñ˜f hÕ/r#   c           	     ó@  — d}t        j                  ||z   «      }t        g d¢g d¢g d¢ddt        j                  dgdœ«      }t        j                  ||«       t        j                  ||z   dd	t        d
œ¬«      }|d   j                  d«      |d<   |d   j                  d	«      |d<   t        g d¢d¬«      |d<   t        j                  ||«       d}t        j                  t        |¬«      5  t        j                  ||z   ddi¬«       d d d «       y # 1 sw Y   y xY w)NÚ	testdtype©r‘   r²   r¥   r  ©ç      @ç      @ç      @ç      @ç      ð?ç       @ç      @©râ   rå   r	  r
  Úfloat64Úfloat32)râ   rå   r	  r_   râ   rå   ©Ú001Ú002Ú003Ú004r7   r	  z(Unable to convert column d to type int64r›   r
  Úint64)rc   rd   r   rü   rn   re   rf   r7   Úastyper   r%   r    r¬   )rg   r    r!  r"  rL   r¢   s         r!   Útest_reader_dtypezTestReaders.test_reader_dtype3  s	  € àˆÜ—‘˜x¨(Ñ2Ó3ˆäâ!Ú)Ú!Ø˜3¤§¡¨Ð,ñ	ó
ˆô 	×Ñ˜f hÔ/ä—‘Ø�xÑ¨Y¸YÌSÑ'Qô
ˆð ! ™×,Ñ,¨YÓ7ˆ�‰Ø  ™×,Ñ,¨YÓ7ˆ�‰ÜÒ;À5ÔIˆ�‰Ü
×Ñ˜f hÔ/à8ˆÜ�]‰]œ:¨SÔ1ñ 	EÜ�M‰M˜( XÑ-°c¸7°^ÕD÷	E÷ 	Eñ 	Eús   Ã.DÄDzdtype,expectedr;  r<  rA  rB  rC  rD  rE  rF  r_   rG  r7   r,  Ú2r.  c                ó~   — d}t        j                  ||z   |¬«      }t        |«      }t        j                  ||«       y )Nr:  r_   rø   )rg   r    r`   rL   r!  r"  s         r!   Útest_reader_dtype_strz!TestReaders.test_reader_dtype_strP  s8   € ð2 ˆä—‘˜x¨(Ñ2¸%Ô@ˆÜ˜XÓ&ˆÜ
×Ñ˜f hÕ/r#   c                óT  — |dv rt        j                  d|› d�«       t        t        ddgd¬«      t        dd	gd
¬«      t        ddgd¬«      t        ddgd¬«      t        t        j
                  dgd¬«      t        t        j
                  dgd
¬«      t        t        j
                  dgd¬«      t        t        j
                  dgd¬«      t        t	        j                  d«      gdz  «      t        t        j
                  t        j
                  gd¬«      dœ
«      }|j                  |dd¬«       t	        j                  |d|¬«      }|dk(  �rdd l	}ddl
m} t        |j                  D �	ci c]  }	|	 ||j                  ||	   d¬«      «      “Œ! c}	«      }
|
d   j                  t	        j                  |j!                  «       «      «      |
d<   |
d   j                  t	        j                  |j!                  «       «      «      |
d<    ||
d   j                  j"                  j%                  |j'                  d ¬!«      «      «      |
d<    ||j                  d d g«      «      |
d"<   n)|}
t)        ||«      }|
d   j                  d#|› d$�«      |
d<   t+        j,                  ||
«       y c c}	w )%NrZ   r[   r\   r‘   r¥   ÚInt64r_   r=  r?  ÚFloat64TFr^   râ   rå   Ústringé   g      @z
2019-12-31r²   )
râ   rå   r	  r
  r  r”   ÚgÚhÚiÚjÚtest©rq   rI   ©rq   Údtype_backendÚpyarrowr   )ÚArrowExtensionArray)Úfrom_pandasr
  rX  rY  rF   )rM   rZ  r  r  )r%   ra   r   r   rc   ÚNAÚ	Timestamprb   rd   r_  Úpandas.arraysr`  rÖ   ÚarrayrM  Ú
ArrowDtyperU  Ú	_pa_arrayÚcastÚ	timestamprG   re   rf   )rg   r    r^  r   r:   rh   r•   Úpar`  rX   rL   rM   s               r!   Útest_dtype_backendzTestReaders.test_dtype_backendo  sD  € àÐ(Ñ(Ü�K‰KÐ3°H°:¸QÐ?Ô@ää˜Q ˜F¨'Ô2Ü˜S #˜J¨iÔ8Ü˜T 5˜M°Ô;Ü˜S #˜J¨hÔ7ÜœRŸU™U A˜J¨gÔ6ÜœRŸU™U C˜L°	Ô:ÜœRŸU™U D˜M°Ô;ÜœRŸU™U C˜L°Ô9ÜœRŸ\™\¨,Ó7Ð8¸1Ñ<Ó=ÜœRŸU™U¤B§E¡E˜N°'Ô:ñó
ˆð 	�‰�I¨&¸ˆÔ>Ü—‘Ø &¸ô
ˆð ˜IÓ%Û å9ä ð  "Ÿz™zöàð Ñ,¨R¯X©X°b¸±gÈ4¨XÓ-PÓQÑQòóˆHð % S™M×0Ñ0´·±¸r¿y¹y»{Ó1KÓLˆH�S‰MØ$ S™M×0Ñ0´·±¸r¿y¹y»{Ó1KÓLˆH�S‰Má/Ø˜‘×#Ñ#×-Ñ-×2Ñ2°2·<±<ÀT°<Ó3JÓKóˆH�S‰Mñ 0°·±¸$À¸Ó0FÓGˆH�SŠMàˆHÜ ¨&Ó1ˆDØ$ S™M×0Ñ0°3°t°f¸A°Ó?ˆH�S‰Mä
×Ñ˜f hÕ/ùò)s   Å,$J%c                ó   — |dv rt        j                  d|› d�«       t        t        j                  dgdt        j                  gdœ«      }|j                  |dd¬	«       t        j                  |dd
d¬«      }t        j                  ||«       y )NrZ   r[   r\   rA  r=  ©râ   rå   r[  Fr\  Únumpy_nullablerE  )rq   r^  r`   )
r%   ra   r   rü   rn   rb   rc   rd   re   rf   )rg   r    r:   rh   r•   s        r!   Útest_dtype_backend_and_dtypez(TestReaders.test_dtype_backend_and_dtype¢  s~   € àÐ(Ñ(Ü�K‰KÐ3°H°:¸QÐ?Ô@äœbŸf™f c˜]°#´r·v±v°Ñ?Ó@ˆØ
�‰�I¨&¸ˆÔ>Ü—‘ØØØ*Øô	
ˆô 	×Ñ˜f bÕ)r#   c           	     ó„  — |dv rt        j                  d|› d�«       t        t        j                  ddgt        j
                  ¬«      t        j                  dt        j                  gt        j
                  ¬«      dœ«      }|j                  |d	d
¬«       t        j                  d|«      5  t        j                  |d	d¬«      }d d d «       t        t        ddgt        j                  |«      ¬«      t        dd gt        j                  |«      ¬«      dœ«      }t        j                  |d
¬«       y # 1 sw Y   ŒpxY w)NrZ   r[   r\   râ   rå   r_   rã   rm  r[  Fr\  zmode.string_storagern  r]  )Úcheck_column_type)r%   ra   r   rü   re  Úobject_rc   rb  rb   Úoption_contextrd   r   ÚStringDtypere   rf   )rg   r    Ústring_storager:   rh   r•   rL   s          r!   Útest_dtype_backend_stringz%TestReaders.test_dtype_backend_string±  s  € àÐ(Ñ(Ü�K‰KÐ3°H°:¸QÐ?Ô@ää—X‘X˜s C˜j´·
±
Ô;Ü—X‘X˜s¤B§E¡E˜l´"·*±*Ô=ñó
ˆð 	�‰�I¨&¸ˆÔ>ä×ÑÐ4°nÓEñ 	Ü—]‘]Ø fÐ<LôˆF÷	ô
 ä˜S #˜J¬b¯n©n¸^Ó.LÔMÜ˜S $˜K¬r¯~©~¸nÓ/MÔNñó
ˆô 	×Ñ˜f hÀ%ÖH÷	ð 	ús   Â.D6Ä6D?zdtypes, exp_valuer‘   úa.1rL  c                ó  — d}dt         i|¥}|j                  «       }t        j                  ||z   |¬«      }t	        t        dgt         ¬«      t        |g|st         nd ¬«      dœ«      }||k(  sJ d«       ‚t        j                  ||«       y )NÚdf_mangle_dup_col_dtypesrâ   r_   r‘   )râ   rw  zdtype dict changed)Úobjectr  rc   rd   r   r   re   rf   )	rg   r    ÚdtypesÚ	exp_valuer!  Ú
dtype_dictÚdtype_dict_copyr•   rL   s	            r!   Útest_dtype_mangle_dup_colsz&TestReaders.test_dtype_mangle_dup_colsÍ  sŠ   € ð .ˆØœ6Ð, VÐ,ˆ
Ø$Ÿ/™/Ó+ˆä—‘˜x¨(Ñ2¸*ÔEˆÜä˜Q˜C¤vÔ.Ü˜y˜k¹vµÈ4ÔPñó
ˆð ˜_Ò,ÐBÐ.BÓBÐ,Ü
×Ñ˜f hÕ/r#   c                ó‚   — d}t        j                  ||z   «      }t        dg d¢i«      }t        j                  ||«       y )NÚtest_spacesÚtestcol)zthis is greatz4    spacesz1 trailing z
 1 leadingz2  spaces  multiple  timesrø   )rg   r    r!  r"  rL   s        r!   Útest_reader_spaceszTestReaders.test_reader_spacesÞ  sC   € à ˆä—‘˜x¨(Ñ2Ó3ˆÜàò ðó

ˆô 	×Ñ˜f hÕ/r#   zbasename,expectedzgh-35802ÚCOLUMNzTest (1)zgh-36122z
got 2nd saré   c                óš   — |dk7  rt        j                  d|› �«       t        j                  ||z   «      }t	        j
                  ||«       y )Nr   zSkipped for engine: )r%   ra   rc   rd   re   rf   )rg   r   r    r!  rL   r"  s         r!   Útest_read_excel_ods_nested_xmlz*TestReaders.test_read_excel_ods_nested_xmlñ  sB   € ð �UŠ?Ü�K‰KÐ.¨v¨hÐ7Ô8ä—‘˜x¨(Ñ2Ó3ˆÜ
×Ñ˜f hÕ/r#   c                óÈ   — d}t        j                  ||z   d ¬«      }g d¢}t        j                  ||j	                  «       «       |t        |j	                  «       «      k(  sJ ‚y )NÚtest_multisheetrô   )ÚCharlieÚAlphaÚBeta)rc   rd   re   Úassert_contains_allÚkeysÚlist©rg   r    r!  ÚdfsÚexpected_keyss        r!   Útest_reading_all_sheetsz#TestReaders.test_reading_all_sheets   sT   € ð %ˆÜ�m‰m˜H xÑ/¸DÔAˆâ4ˆÜ
×Ñ˜}¨c¯h©h«jÔ9ð ¤ S§X¡X£ZÓ 0Ò0Ð0Ñ0r#   c                ó  — d}g d¢}t        j                  ||z   |¬«      }t        t        |«      «      }t	        j
                  ||j                  «       «       t        |«      t        |j                  «       «      k(  sJ ‚y )Nrˆ  )r²   r‰  r‰  rô   )rc   rd   rŽ  Úsetre   rŒ  r�  rÁ   )rg   r    r!  r‘  r�  s        r!   Ú%test_reading_multiple_specific_sheetsz1TestReaders.test_reading_multiple_specific_sheets  se   € ð %ˆâ1ˆÜ�m‰m˜H xÑ/¸MÔJˆÜœS Ó/Ó0ˆÜ
×Ñ˜}¨c¯h©h«jÔ9Ü�=Ó!¤S¨¯©«£_Ò4Ð4Ñ4r#   c                óŒ   — d}t        j                  ||z   d ¬«      }g d¢}t        j                  ||j	                  «       «       y )NÚblank_with_headerrô   )rm   r¨   rÑ   )rc   rd   re   rŒ  r�  r�  s        r!   Ú"test_reading_all_sheets_with_blankz.TestReaders.test_reading_all_sheets_with_blank  s9   € ð 'ˆÜ�m‰m˜H xÑ/¸DÔAˆÚ6ˆÜ
×Ñ˜}¨c¯h©h«jÕ9r#   c                ót   — t        j                  d|z   d¬«      }t        j                  |t	        «       «       y )NÚblankrm   rô   )rc   rd   re   rf   r   )rg   r    r"  s      r!   Útest_read_excel_blankz!TestReaders.test_read_excel_blank%  s)   € Ü—‘˜w¨Ñ1¸hÔGˆÜ
×Ñ˜f¤i£kÕ2r#   c                ó€   — t        ddg¬«      }t        j                  d|z   d¬«      }t        j                  ||«       y )NÚcol_1Úcol_2ré   r—  rm   rô   )r   rc   rd   re   rf   )rg   r    rL   r"  s       r!   Ú!test_read_excel_blank_with_headerz-TestReaders.test_read_excel_blank_with_header)  s7   € Ü g¨wÐ%7Ô8ˆÜ—‘Ð2°XÑ=È(ÔSˆÜ
×Ñ˜f hÕ/r#   c                ó4  — t        j                  t        d¬«      5  t        j                  d|z   dgd ¬«       d d d «       t        j                  t
        d¬«      5  t        j                  d|z   d„ d ¬«       d d d «       y # 1 sw Y   ŒJxY w# 1 sw Y   y xY w)	Nz \(sheet: Sheet1\)$r›   r—  r‘   )Úheaderrq   r�   c                ó   — ddz  S )Nr‘   r   r0   r3  s    r!   r4  zHTestReaders.test_exception_message_includes_sheet_name.<locals>.<lambda>3  s
   € ÀÀAÁ€ r#   )r§   rq   )r%   r    r¬   rc   rd   ÚZeroDivisionError©rg   r    s     r!   Ú*test_exception_message_includes_sheet_namez6TestReaders.test_exception_message_includes_sheet_name.  sˆ   € ä�]‰]œ:Ð-CÔDñ 	WÜ�M‰MÐ-°Ñ8À!ÀÐQUÕV÷	Wä�]‰]Ô,Ð4JÔKñ 	XÜ�M‰M˜' HÑ,±oÐRVÕW÷	Xð 	X÷	Wð 	Wú÷	Xð 	Xús   œBÁBÂBÂBz-ignore:Cell A4 is marked:UserWarning:openpyxlc                óÆ  — t        ||«       t        t        j                  d«      dgt        j                  d«      dgddggddg¬	«      }|d
k(  r/|j	                  t
        j                  j                  d¬«      «       |€3|dv r/|j	                  t
        j                  j                  d¬«      «       t        j                  d|z   «      }t        j                  ||«       y )Nz
2016-03-12zMarc Johnsonz
2016-03-16z
Jack Blackg@Œµx¯DzTimothy BrownÚDateColWithBigIntÚ	StringColré   r   zMaybe not supported by openpyxlrP   )r   r   z)Defaults to openpyxl, maybe not supportedÚtestdateoverflow)rU   r   rc   rc  rR   r%   rS   rT   rd   re   rf   )rg   r,   r   r    rL   r•   s         r!   Útest_date_conversion_overflowz)TestReaders.test_date_conversion_overflow5  sØ   € ô 	$ F¨GÔ4ää—‘˜lÓ+¨^Ð<Ü—‘˜lÓ+¨\Ð:Ø�Ð'ðð
 )¨+Ð6ô
ˆð �ZÒØ×ÑÜ—‘×!Ñ!Ð)JÐ!ÓKôð ˆ>˜hÐ*<Ñ<à×ÑÜ—‘×!Ñ!Ð)TÐ!ÓUôô —‘Ð1°HÑ<Ó=ˆÜ
×Ñ˜f hÕ/r#   c                ó  — t        ||«       d}d}|}t        |||«       t        j                  ||z   |d¬«      }t        j                  ||z   d|¬«      }	t	        j
                  ||«       t	        j
                  |	|«       y ©Nr�   rm   r   rÅ   )r@   rq   r³   )
rg   r,   r    r   rD   Úfilenamerq   rL   r´   ri   s
             r!   Útest_sheet_namezTestReaders.test_sheet_nameQ  sz   € Ü# F¨GÔ4àˆØˆ
àˆÜ˜ (¨FÔ3ä�m‰mØ�xÑ¨JÀ!ô
ˆô �m‰m˜H xÑ/¸1ÈÔTˆä
×Ñ˜c 8Ô,Ü
×Ñ˜c 8Õ,r#   c                óÜ   — d|z   }t        j                  |dd¬«      }t        |d«      5 }t        j                  |dd¬«      }t        j                  ||«       d d d «       y # 1 sw Y   y xY w)Nr�   rm   r   rÅ   r�   )rc   rd   r’   re   rf   )rg   r    ÚpthrL   r”   r"  s         r!   Útest_excel_read_bufferz"TestReaders.test_excel_read_bufferb  s`   € Ø˜Ñ ˆÜ—=‘= °ÀQÔGˆÜ�#�t‹_ð 	4 Ü—]‘] 1°ÀQÔGˆFÜ×!Ñ! (¨FÔ3÷	4÷ 	4ñ 	4ús   ª/A"Á"A+c                ó–   — d}t        j                  t        d¬«      5  t        j                  d|¬«       d d d «       y # 1 sw Y   y xY w)Nr˜   zUnknown engine: foor›   r1  r|   r«   )rg   Ú
bad_engines     r!   Útest_bad_engine_raisesz"TestReaders.test_bad_engine_raisesi  s9   € Øˆ
Ü�]‰]œ:Ð-BÔCñ 	1Ü�M‰M˜" ZÕ0÷	1÷ 	1ñ 	1ús	   ž?¿Arq   r¥   r   rà   rm   c                óœ   — d}t        j                  t        |¬«      5  t        j                  d|z   |¬«       d d d «       y # 1 sw Y   y xY w©Nz?Worksheet index 3 is invalid|Worksheet named 'Sheet4' not foundr›   rš  rô   r«   )rg   r    rq   r¢   s       r!   Útest_bad_sheetname_raisesz%TestReaders.test_bad_sheetname_raisesn  sD   € ð PˆÜ�]‰]œ:¨SÔ1ñ 	EÜ�M‰M˜' HÑ,¸ÕD÷	E÷ 	Eñ 	Eúó   žAÁAc                ó¾   — d|› �}dj                  g d¢«      }t        j                  t        |¬«      5  t	        j
                  |«       d d d «       y # 1 sw Y   y xY w)Nr˜   ú|)z(No such file or directoryu   æ²¡æœ‰é‚£ä¸ªæ–‡ä»¶æˆ–ç›®å½•zFile o directory non esistente)r›   )Újoinr%   r    ÚFileNotFoundErrorrc   rd   )rg   r    Úbad_filerœ   s       r!   Útest_missing_file_raisesz$TestReaders.test_missing_file_raisesx  sS   € Ø˜˜
Ð#ˆà—‘òó
ˆô �]‰]Ô,°EÔ:ñ 	$Ü�M‰M˜(Ô#÷	$÷ 	$ñ 	$ús   ´AÁAc                ó  — d}|€	t         }d}n(|dk(  rddlm} |}d}n|dk(  rddlm} |}d	}nt
        }d
}t        j                  ||¬«      5  t        j                  t        |«      «       d d d «       y # 1 sw Y   y xY w)Ns   foozLExcel file format cannot be determined, you must specify an engine manually.r   r   )Ú	XLRDErrorzFUnsupported format, or corrupt file: Expected BOF record; found b'foo'r   ©ÚCalamineErrorzCannot detect file formatzFile is not a zip filer›   )r¬   r   rÀ  r   rÂ  r
   r%   r    rc   rd   r   )rg   r   Ú
bad_streamÚerrorr¢   rÀ  rÂ  s          r!   Útest_corrupt_bytes_raisesz%TestReaders.test_corrupt_bytes_raises…  sŠ   € Øˆ
Øˆ>ÜˆEð.ñ ð �vÒÝ&àˆEàXñ ð �zÒ!Ý5à!ˆEØ-‰CäˆEØ*ˆCÜ�]‰]˜5¨Ô,ñ 	/Ü�M‰Mœ' *Ó-Ô.÷	/÷ 	/ñ 	/ús   ÁA5Á5A>c                ó&  — t        d|z   d«      5 }|j                  |j                  «       ¬«       d d d «       t        j                  |j
                  «      }t        j                  d|z   «      }t        j                  ||«       y # 1 sw Y   ŒWxY w)Nr�   r�   )Úcontent)r’   Úserve_contentÚreadrc   rd   Úurlre   rf   )rg   Ú
httpserverr    r”   Ú	url_tableÚlocal_tables         r!   Útest_read_from_http_urlz#TestReaders.test_read_from_http_urlŸ  sv   € ô �'˜HÑ$ dÓ+ð 	7¨qØ×$Ñ$¨Q¯V©V«XÐ$Ô6÷	7ä—M‘M *§.¡.Ó1ˆ	Ü—m‘m G¨hÑ$6Ó7ˆÜ
×Ñ˜i¨Õ5÷		7ð 	7ús   �!BÂBc                ó(  — t        d|z   d«      5 }|j                  d|z   |¬«       d d d «       d|j                  › d�|z   }t        j                  ||¬«      }t        j                  d|z   «      }t        j                  ||«       y # 1 sw Y   ŒbxY w)Nr�   r�   ©ÚKeyÚBodyús3://ú/test1)Ústorage_options)r’   Ú
put_objectrJ   rc   rd   re   rf   )rg   r    Ús3_bucket_publicÚs3sor”   rÊ  rÌ  rÍ  s           r!   Útest_read_from_s3_urlz!TestReaders.test_read_from_s3_url¨  s–   € ô �'˜HÑ$ dÓ+ð 	H¨qØ×'Ñ'¨G°hÑ,>ÀQÐ'ÔG÷	Hð Ð&×+Ñ+Ð,¨FÐ3°hÑ>ˆä—M‘M #°tÔ<ˆ	Ü—m‘m G¨hÑ$6Ó7ˆÜ
×Ñ˜i¨Õ5÷	Hð 	Hús   �BÂBc                ó˜  — t        d|z   d«      5 }|j                  d|z   |¬«       d d d «       dd l} |j                  di |¤Ž}|j                  d|j                  › d�|z   «      5 }t        j                  |«      }d d d «       t        j                  d|z   «      }t        j                  |«       y # 1 sw Y   ŒŽxY w# 1 sw Y   ŒDxY w)Nr�   r�   rÐ  r   rÓ  rÔ  r0   )	r’   rÖ  Ús3fsÚS3FileSystemrJ   rc   rd   re   rf   )	rg   r    r×  rØ  r”   rÛ  Ús3rÌ  rÍ  s	            r!   Útest_read_from_s3_objectz$TestReaders.test_read_from_s3_object´  sÌ   € ô �'˜HÑ$ dÓ+ð 	H¨qØ×'Ñ'¨G°hÑ,>ÀQÐ'ÔG÷	Hó 	àˆT×ÑÑ& Ñ&ˆà�W‰W�uÐ-×2Ñ2Ð3°6Ð:¸XÑEÓFð 	)È!ÜŸ™ aÓ(ˆI÷	)ô —m‘m G¨hÑ$6Ó7ˆÜ
×Ñ˜i¨Õ5÷	Hð 	Hú÷	)ð 	)ús   �B4Á'C Â4B=Ã C	c                ó’  — t         j                  j                   |ddd«      d|z   «      }t        j                  |«      }	 t        j                  d|z   «      }t        j                  |«       y # t
        $ rL dj                  t        j                  «       «      j                  «       }t        j                  d|› �«       Y Œkw xY w)Nr<   r=   rl   r�   zfile://localhost/ú zfailing on )ÚosÚpathr»  rc   rd   r	   ÚplatformÚunameÚstripr%   ra   re   rf   )rg   r    rB   Ú
localtablerÍ  rÌ  Úplatform_infos          r!   Útest_read_from_file_urlz#TestReaders.test_read_from_file_urlÄ  s¡   € ô —W‘W—\‘\¡(¨4°¸Ó"AÀ7ÈXÑCUÓVˆ
Ü—m‘m JÓ/ˆð	7ÜŸ™Ð&9¸JÑ&FÓGˆIô 	×Ñ˜i¨Õ5øô ò 	7àŸH™H¤X§^¡^Ó%5Ó6×<Ñ<Ó>ˆMÜ�K‰K˜+ m _Ð5Ö6ð	7ús   ÁA1 Á1ACÃCc                ó¶   — d|z   }t        j                  |dd¬«      }t        d|z   «      }t        j                  |dd¬«      }t        j                  ||«       y rÄ   )rc   rd   r   re   rf   )rg   r    Ústr_pathrL   Úpath_objr"  s         r!   Útest_read_from_pathlib_pathz'TestReaders.test_read_from_pathlib_pathÓ  sO   € à˜XÑ%ˆÜ—=‘= °hÈ!ÔLˆä˜ (Ñ*Ó+ˆÜ—‘˜x°HÈÔJˆä
×Ñ˜h¨Õ/r#   c                óÜ   — t         j                  j                  d|z   «      }t        |d«      5 }t	        j
                  |dd¬«      }~|j                  «        d d d «       y # 1 sw Y   y xY w)Nr�   r�   rm   r   rÅ   )rá  râ  r»  r’   rc   rd   rÉ  )rg   r    rê  r”   rã   s        r!   Útest_close_from_py_localpathz(TestReaders.test_close_from_py_localpathÝ  sX   € ä—7‘7—<‘< ¨(Ñ 2Ó3ˆÜ�(˜DÓ!ð 	 QÜ—‘˜a¨HÀÔBˆAØà�F‰FŒH÷		÷ 	ñ 	ús   ¯*A"Á"A+c                ó–  — t        ||«       |dk(  r4|dk(  r/|j                  t        j                  j	                  d¬«      «       t        j                  dt        ddd«      t        dd	d
d«      t        dddd«      t        dddd«      t        dddd«      t        dddd«      t        dddd«      t        ddd d!«      t        d d"dd#«      t        d$d%d&d'«      t        d(d)d*«      gi«      }t        j                  d+|z   d,¬-«      }t        j                  ||«       t        j                  d.|z   d,¬-«      }t        j                  ||«       y )/Nr   r   z0ODS file contains bad datetime (seconds as text)rP   ÚTimer‘   r²   r¥   é-   é8   i † r  é   é1   i@ rV  é   é*   ià“ é   é9   é#   i€ é	   é)   é   i ¡ é   é   é   iÀ'	 r  i`®
 é5   i 5 é   é%   r   i » é   é   é6   Ú
times_1900rm   rô   Ú
times_1904)rU   rR   r%   rS   rT   r   r  r   rc   rd   re   rf   )rg   r,   r   r    rL   r"  s         r!   Útest_reader_secondszTestReaders.test_reader_secondsæ  sE  € Ü# F¨GÔ4ð �ZÒ H°Ò$6Ø×ÑÜ—‘×!Ñ!ØMð "ó ôô ×&Ñ&àÜ˜˜A˜q“MÜ˜˜B  FÓ+Ü˜˜B  FÓ+Ü˜˜B  FÓ+Ü˜˜B  FÓ+Ü˜˜B  FÓ+Ü˜˜R  VÓ,Ü˜˜Q  FÓ+Ü˜˜R  FÓ+Ü˜˜R  FÓ+Ü˜˜R Ó$ððó
ˆô$ —‘˜|¨hÑ6À8ÔLˆÜ
×Ñ˜f hÔ/ä—‘˜|¨hÑ6À8ÔLˆÜ
×Ñ˜f hÕ/r#   c           
     ó   — t        ||«       t        ||«      }t        j                  ddgddgg«      }d|z   }t	        ddt        j                  d«      d	gd
dt        j                  d«      dgddt        j                  d«      dgddt        j                  d«      d	gg|¬«      }||d
      j                  d|› d�«      ||d
   <   t        j                  |dddgd¬«      }t        j                  ||«       ||_        g d¢|_        t        j                  |dddg¬«      }t        j                  ||«       ||_        t        j                  |dddgddg¬«      }t        j                  ||«       g d¢|_        |j                  dd g«      |_        t        j                  |d!ddg¬«      }t        j                  ||«       t        d«      |_        |j                  d"d#g«      |_        t        j                  |d$ddgd¬«      }t        j                  ||«       |j                  dd
gd¬%«      j                  d"d#g«      |_        t        j                  |d&dddg¬«      }t        j                  ||«       |j                  d"d#g«      |_        |j                  dd g«      |_        t        j                  |d'ddgddg¬«      }t        j                  ||«       t        j                  |d(ddgddgd
¬)«      }t        j                  ||«       y )*Nr˜   Úbarrâ   rå   Útestmultiindexr‘   r=  ú
2015-01-01Tr²   r>  ú
2015-01-02Fr¥   r?  ú
2015-01-03r  r@  ú
2015-01-04ré   r  r  Ú	mi_columnr   )rq   r¡  r@   rD  Úmi_indexrÅ   Úboth©rq   r@   r¡  Úilvl1Úilvl2Úmi_index_nameÚc1Úc2Úmi_column_name)ÚlevelÚname_with_intÚ	both_nameÚboth_name_skiprows)rq   r@   r¡  rª   )rU   rG   r   Úfrom_productr   rc   rc  rM  rd   re   rf   rI   rÖ   Ú	set_namesrÀ   Ú
set_levels)	rg   r,   r   r    rM   ÚmiÚmi_filerL   r"  s	            r!   Útest_read_excel_multiindexz&TestReaders.test_read_excel_multiindex
  sõ  € ä# F¨GÔ4ä˜H fÓ-ˆä×$Ñ$ u¨e n°s¸C°jÐ%AÓBˆØ" XÑ-ˆô à�CœŸ™ lÓ3°TÐ:Ø�CœŸ™ lÓ3°UÐ;Ø�CœŸ™ lÓ3°UÐ;Ø�CœŸ™ lÓ3°TÐ:ð	ð ô
ˆð # 2 a¡5™/×0Ñ0°3°t°f¸A°Ó?ˆ��A‘‰ä—‘Ø °Q¸°FÀaô
ˆô 	×Ñ˜f hÔ/ð ˆŒÚ/ˆÔä—‘˜w°:È!ÈQÈÔPˆÜ
×Ñ˜f hÔ/ð ˆÔä—‘Ø °1°a°&À!ÀQÀô
ˆô 	×Ñ˜f hÔ/ò 0ˆÔØŸ™ w°Ð&8Ó9ˆŒä—‘˜w°?ÈqÐRSÈfÔUˆÜ
×Ñ˜f hÔ/ô ˜q›ˆŒØŸ<™<¨¨t¨Ó5ˆÔÜ—‘ØÐ 0¸!¸Q¸È1ô
ˆô 	×Ñ˜f hÔ/ð Ÿ=™=¨!¨Q¨°q˜=Ó9×CÑCÀTÈ4ÀLÓQˆÔä—‘Ø ¸1ÀaÈÀVô
ˆô 	×Ñ˜f hÔ/ð Ÿ<™<¨¨t¨Ó5ˆÔØŸ™ w°Ð&8Ó9ˆŒä—‘Ø ¸¸1°vÀqÈ!Àfô
ˆô 	×Ñ˜f hÔ/ô —‘ØØ+Ø˜!�fØ�q�6Øô
ˆô 	×Ñ˜f hÕ/r#   zsheet_name,idx_lvl2Úboth_name_blank_after_mi_namerå   râ   Úboth_name_multiple_blanksr  c           
     ó6  — t        ||«       d|z   }t        j                  ddgddggddg¬«      }t        ||«      }t	        d	d
t        j                  d«      dgddt        j                  d«      dgddt        j                  d«      dgddt        j                  d«      dgg|t        j                  g d¢|fddg¬«      ¬«      }	|	|d      j                  d|› d�«      |	|d   <   t        j                  ||dd	gdd	g¬«      }
t        j                  |
|	«       y )Nr  r˜   r
  râ   rå   r  r  ©rÝ   r‘   r=  r  Tr²   r>  r  Fr¥   r?  r  r  r@  r  )r˜   r˜   r
  r
  r  r  rÕ   r  r  r   r  )rU   r   r  rG   r   rc   rc  Úfrom_arraysrM  rd   re   rf   )rg   r,   r   r    rq   Úidx_lvl2r"  r!  rM   rL   r•   s              r!   Ú+test_read_excel_multiindex_blank_after_namez7TestReaders.test_read_excel_multiindex_blank_after_name^  s,  € ô 	$ F¨GÔ4à" XÑ-ˆÜ×$Ñ$ u¨e n°s¸C°jÐ%AÈ$ÐPTÈÔVˆä˜H fÓ-ˆÜà�CœŸ™ lÓ3°TÐ:Ø�CœŸ™ lÓ3°UÐ;Ø�CœŸ™ lÓ3°UÐ;Ø�CœŸ™ lÓ3°TÐ:ð	ð Ü×(Ñ(Ú-¨xÐ8Ø Ð(ôô
ˆð # 2 a¡5™/×0Ñ0°3°t°f¸A°Ó?ˆ��A‘‰Ü—‘ØØ!Ø˜!�fØ�q�6ô	
ˆô 	×Ñ˜f hÕ/r#   c                óÂ   — d|z   }t        j                  |dddg¬«      }t        j                  ddg«      }t	        g d¢gd	z  |¬
«      }t        j                  ||«       y )Nr  Úindex_col_noner   r‘   ©rq   r¡  ©r¸   r°   ©ÚkeyÚvalr;  r²   ré   )rc   rd   r   r  r   re   rf   )rg   r    r"  r•   Úexp_columnsrL   s         r!   Ú&test_read_excel_multiindex_header_onlyz2TestReaders.test_read_excel_multiindex_header_only…  s^   € ð # XÑ-ˆÜ—‘˜wÐ3CÈQÐPQÈFÔSˆä ×-Ñ-¨z¸>Ð.JÓKˆÜšl˜^¨aÑ/¸ÔEˆÜ
×Ñ˜f hÕ/r#   c           	     óÊ  — d|z   }t        j                  t         j                  t         j                  t         j                  t         j                  t         j                  gg d¢g d¢g d¢g d¢g d¢gt        ¬«      }g d¢}t	        g d	¢g d
¢gg d¢g d¢gd d g¬«      }t        g d	¢d ¬«      }t        |||¬«      }t        j                  |dd¬«      }t        j                  ||«       ||_        t        j                  |dddg¬«      }t        j                  ||«       t        j                  g d¢g d¢g d¢g d¢g d¢g«      }g d¢}t	        g d¢g d¢gg d¢g d¢gd d g¬«      }t        g d¢d ¬«      }t        |||¬«      }t        j                  |dd¬«      }t        j                  ||«       ||_        t        j                  |dddg¬«      }t        j                  ||«       y )NÚtest_index_name_pre17)ÚR0C0ÚR0C1ÚR0C2ÚR0C3ÚR0C4)ÚR1C0ÚR1C1ÚR1C2ÚR1C3ÚR1C4)ÚR2C0ÚR2C1ÚR2C2ÚR2C3ÚR2C4)ÚR3C0ÚR3C1ÚR3C2ÚR3C3ÚR3C4)ÚR4C0ÚR4C1ÚR4C2ÚR4C3ÚR4C4r_   )ÚC_l0_g0ÚC_l0_g1ÚC_l0_g2ÚC_l0_g3ÚC_l0_g4)ÚR0ÚR_l0_g0ÚR_l0_g1ÚR_l0_g2ÚR_l0_g3ÚR_l0_g4)ÚR1ÚR_l1_g0ÚR_l1_g1ÚR_l1_g2ÚR_l1_g3ÚR_l1_g4)r   r‘   r²   r¥   r  r  rÚ   rÔ   ©rI   rÖ   Úsingle_namesr   rÅ   Úmulti_namesr‘   )rU  rV  rW  rX  rY  )r[  r\  r]  r^  r_  )r   r‘   r²   r¥   r  Úsingle_no_namesÚmulti_no_names)rü   re  rn   rz  r   r   r   rc   rd   re   rf   rI   )	rg   r    r­  r=   rÖ   r!  ÚsirL   r"  s	            r!   Útest_excel_old_index_formatz'TestReaders.test_excel_old_index_format�  s½  € à*¨XÑ5ˆô
 �x‰xä—‘œŸ™¤§¡¬¯©´·±Ð8Ú8Ú8Ú8Ú8Ú8ðô ô

ˆò JˆÜâMÚMðò &Ò'9Ð:Ø˜�,ô
ˆô ÚIÐPTô
ˆô ˜T¨°WÔ=ˆä—‘˜x°NÈaÔPˆÜ
×Ñ˜f hÔ/àˆŒä—‘˜x°MÈaÐQRÈVÔTˆÜ
×Ñ˜f hÔ/ô �x‰xâ8Ú8Ú8Ú8Ú8ðó
ˆò JˆÜâGÚGðò #¢OÐ4Ø˜�,ô
ˆô ÒJÐQUÔVˆä˜T¨°WÔ=ˆä—‘˜xÐ4EÐQRÔSˆÜ
×Ñ˜f hÔ/àˆŒä—‘˜xÐ4DÐQRÐTUÐPVÔWˆÜ
×Ñ˜f hÕ/r#   c                óª   — d}dD ]@  }t        j                  t        |¬«      5  t        j                  d|z   |¬«       d d d «       ŒB y # 1 sw Y   ŒMxY w)Nz#Passing a bool to header is invalid)TFr›   r�   ©r¡  rÎ   )rg   r    r¢   Úargs       r!   Útest_read_excel_bool_header_argz+TestReaders.test_read_excel_bool_header_argÙ  sQ   € à3ˆØ ò 	>ˆCÜ—‘œy°Ô4ñ >Ü—‘˜g¨Ñ0¸Õ=÷>ð >ñ	>÷>ð >ús   £A	Á	A	c           
     óê  — t        ||«       t        ||«      }t        j                  d|z   dddg¬«      }t	        ddt        j
                  d«      d	gdd
t        j
                  d«      dgddt        j
                  d«      dgddt        j
                  d«      d	ggg d¢¬«      }|d   j                  d|› d�«      |d<   t        j                  ||«       t        j                  d|z   dt        j                  ddg«      ¬«      }t        j                  ||«       t        j                  d|z   dd„ ¬«      }t        j                  ||«       t        j                  d|z   ddg d¢¬«      }t	        dd
t        j
                  d«      dgddt        j
                  d«      dgddt        j
                  d«      d	ggg d¢¬«      }|d   j                  d|› d�«      |d<   t        j                  ||«       y )NÚtestskiprowsÚskiprows_listr   r²   ©rq   rª   r‘   r=  r  Tr>  r  Fr¥   r?  r  r  r@  r  rD  ré   r	  r  r  c                ó
   — | dv S ©N)r   r²   r0   r3  s    r!   r4  z6TestReaders.test_read_excel_skiprows.<locals>.<lambda>   s
   € ˜q F˜{€ r#   )rq   rª   rÝ   )rU   rG   rc   rd   r   rc  rM  re   rf   rü   re  ©rg   r,   r   r    rM   r"  rL   s          r!   Útest_read_excel_skiprowsz$TestReaders.test_read_excel_skiprowsà  sæ  € ä# F¨GÔ4ä˜H fÓ-ˆä—‘Ø˜XÑ%°/ÈQÐPQÈFô
ˆô à�CœŸ™ lÓ3°TÐ:Ø�CœŸ™ lÓ3°UÐ;Ø�CœŸ™ lÓ3°UÐ;Ø�CœŸ™ lÓ3°TÐ:ð	ò )ô
ˆð ! ™×,Ñ,¨s°4°&¸¨]Ó;ˆ�‰Ü
×Ñ˜f hÔ/ä—‘Ø˜XÑ%Ø&Ü—X‘X˜q !˜fÓ%ô
ˆô
 	×Ñ˜f hÔ/ô —‘Ø˜XÑ%Ø&Ù*ô
ˆô
 	×Ñ˜f hÔ/ä—‘Ø˜XÑ%Ø&ØÚ&ô	
ˆô ð �CœŸ™ lÓ3°UÐ;Ø�CœŸ™ lÓ3°UÐ;Ø�CœŸ™ lÓ3°TÐ:ð	ò )ô
ˆð ! ™×,Ñ,¨s°4°&¸¨]Ó;ˆ�‰Ü
×Ñ˜f hÕ/r#   c                óL  — t        ||«       t        ||«      }t        j                  d|z   dd„ ¬«      }t	        ddt        j
                  d«      dgd	d
t        j
                  d«      dggg d¢¬«      }|d   j                  d|› d�«      |d<   t        j                  ||«       y )Nrl  rm  c                ó
   — | dvS )N)r‘   r¥   r  r0   r3  s    r!   r4  zFTestReaders.test_read_excel_skiprows_callable_not_in.<locals>.<lambda>  s   € ˜q¨	Ð1€ r#   rn  r‘   r=  r  Tr¥   r?  r  FrD  ré   r	  r  r  )	rU   rG   rc   rd   r   rc  rM  re   rf   rq  s          r!   Ú(test_read_excel_skiprows_callable_not_inz4TestReaders.test_read_excel_skiprows_callable_not_in  s¦   € ä# F¨GÔ4Ü˜H fÓ-ˆä—‘Ø˜XÑ%Ø&Ù1ô
ˆô
 à�CœŸ™ lÓ3°TÐ:à�CœŸ™ lÓ3°UÐ;ðò )ô
ˆð ! ™×,Ñ,¨s°4°&¸¨]Ó;ˆ�‰Ü
×Ñ˜f hÕ/r#   c                ó¢   — d}t        j                  d|z   |¬«      }t        j                  d|z   «      }|d | }t        j                  ||«       y )Nr  r�   ©Únrows)rc   rd   re   rf   )rg   r    Únum_rows_to_pullr"  rL   s        r!   Útest_read_excel_nrowsz!TestReaders.test_read_excel_nrows,  sO   € àÐÜ—‘˜w¨Ñ1Ð9IÔJˆÜ—=‘= ¨8Ñ!3Ó4ˆØÐ-Ð-Ð.ˆÜ
×Ñ˜f hÕ/r#   c                ó´   — t        j                  d|z   «      }t        |«      }|dz   }t        j                  d|z   |¬«      }t        j                  ||«       y )Nr�   r  rw  )rc   rd   rÁ   re   rf   )rg   r    rL   Únum_records_in_filery  r"  s         r!   Ú0test_read_excel_nrows_greater_than_nrows_in_filez<TestReaders.test_read_excel_nrows_greater_than_nrows_in_file4  sP   € ä—=‘= ¨8Ñ!3Ó4ˆÜ! (›mÐØ.°Ñ3ÐÜ—‘˜w¨Ñ1Ð9IÔJˆÜ
×Ñ˜f hÕ/r#   c                óœ   — d}t        j                  t        |¬«      5  t        j                  d|z   d¬«       d d d «       y # 1 sw Y   y xY w)Nz'nrows' must be an integer >=0r›   r�   r/  rw  r«   r­   s      r!   Ú+test_read_excel_nrows_non_integer_parameterz7TestReaders.test_read_excel_nrows_non_integer_parameter<  s=   € à.ˆÜ�]‰]œ:¨SÔ1ñ 	9Ü�M‰M˜' HÑ,°CÕ8÷	9÷ 	9ñ 	9úr¸  z-filename,sheet_name,header,index_col,skiprowsr  r  r  r  r  rl  rm  c                ó
   — | dv S rp  r0   r3  s    r!   r4  zTestReaders.<lambda>J  s
   € ÀAÈÀK€ r#   c                óÀ   — t        j                  ||z   ||||¬«      j                  dd }t        j                  ||z   ||||d¬«      }t        j                  ||«       y)z—
        For various parameters, we should get the same result whether we
        limit the rows during load (nrows=3) or after (df.iloc[:3]).
        )rq   r¡  r@   rª   Nr¥   )rq   r¡  r@   rª   rx  )rc   rd   r  re   rf   )	rg   r    r­  rq   r¡  r@   rª   rL   r"  s	            r!   Útest_read_excel_nrows_paramsz(TestReaders.test_read_excel_nrows_paramsB  so   € ô& —=‘=Ø�xÑØ!ØØØô
÷ ‰$ˆr�ðˆô —‘Ø�xÑØ!ØØØØô
ˆô 	×Ñ˜f hÕ/r#   c                ó˜   — t        j                  t        d¬«      5  t        j                  d|z   dd«       d d d «       y # 1 sw Y   y xY w)Nzbut 3 positional argumentsr›   r�   rm   r   rÎ   r¤  s     r!   Útest_deprecated_kwargsz"TestReaders.test_deprecated_kwargsf  s;   € Ü�]‰]œ9Ð,HÔIñ 	;Ü�M‰M˜' HÑ,¨h¸Ô:÷	;÷ 	;ñ 	;ús   œA Á A	c                óÆ   — d|z   }g d¢}t        j                  g d¢d¬«      }t        ||d¬«      }t        j                  |dd	d
gd ¬«      }t        j                  ||«       y )Nr  ))r°   r°   r/  ©r¥   r  r†  ))r¸   r¸   r/  ©r‘   r²   r‡  )r   r‘   r'  )r²   r¥   r`  r,  r   r‘   r  )r   Úfrom_tuplesr   rc   rd   re   rf   )rg   r    Ú	file_namer=   ÚidxrL   r•   s          r!   Ú"test_no_header_with_list_index_colz.TestReaders.test_no_header_with_list_index_colj  sd   € à$ xÑ/ˆ	Ú;ˆÜ×$Ñ$Ú8Àô
ˆô ˜T¨°fÔ=ˆÜ—‘ØÐ"2¸qÀ!¸fÈTô
ˆô 	×Ñ˜h¨Õ/r#   c                ó¨   — d|z   }dt         j                  ddg}t        |dg¬«      }t        j                  |«      }t        j                  ||«       y )NÚone_col_blank_lineg      à?r‘   r²   Únumbersré   )rü   rn   r   rc   rd   re   rf   )rg   r    r‰  r=   rL   r•   s         r!   Útest_one_col_noskip_blank_linez*TestReaders.test_one_col_noskip_blank_linew  sJ   € à(¨8Ñ3ˆ	Ø”R—V‘V˜Q Ð"ˆÜ˜T¨I¨;Ô7ˆÜ—‘˜yÓ)ˆÜ
×Ñ˜f hÕ/r#   c                óB  — d|z   }t        j                  ddg«      }t        j                  t        j                  gt        j                  t        j                  gddgddgg}t	        ||¬«      }t        j                  |d	d
dg¬«      }t        j                  ||«       y )Nr  )râ   r¸   )rå   r°   r‘   r¥   r²   r  ré   Úmi_column_empty_rowsr   r-  )	r   rˆ  rü   rn   r   rc   rd   re   rf   )rg   r    r‰  rÖ   r=   rL   r•   s          r!   Ú test_multiheader_two_blank_linesz,TestReaders.test_multiheader_two_blank_lines  s‰   € à$ xÑ/ˆ	Ü×(Ñ(¨*°jÐ)AÓBˆÜ—‘œŸ™Ð ¤2§6¡6¬2¯6©6Ð"2°Q¸°F¸QÀ¸FÐCˆÜ˜T¨7Ô3ˆÜ—‘ØÐ"8À!ÀQÀô
ˆô 	×Ñ˜f hÕ/r#   c                óZ   — d|z   }t        j                  |«      }|j                  dk(  sJ ‚y)z›
        Sheets can contain blank cells with no data. Some of our readers
        were including those cells, creating many empty rows and columns
        Útrailing_blanks)r¥   r¥   N)rc   rd   Úshape)rg   r    r‰  r•   s       r!   Útest_trailing_blanksz TestReaders.test_trailing_blanksŠ  s.   € ð
 &¨Ñ0ˆ	Ü—‘˜yÓ)ˆØ�|‰|˜vÒ%Ð%Ñ%r#   c                ó4  — |dk(  rt        j                  d«       |dk(  r/|j                  t         j                  j	                  d¬«      «       t        j
                  t        d¬«      5  t        j                  d|z   d	¬
«       d d d «       y # 1 sw Y   y xY w)Nr   ú*chartsheets do not exist in the ODF formatr   ú4pyxlsb can't distinguish chartsheets from worksheetsrP   z"Worksheet named 'Chart1' not foundr›   Ú
chartsheetÚChart1rô   ©	r%   ra   rR   rS   rT   r    r¬   rc   rd   ©rg   r,   r   r    s       r!   Útest_ignore_chartsheets_by_strz*TestReaders.test_ignore_chartsheets_by_str“  s„   € à�vÒÜ�K‰KÐDÔEØ�XÒØ×ÑÜ—‘×!Ñ!ØQð "ó ôô
 �]‰]œ:Ð-QÔRñ 	HÜ�M‰M˜,¨Ñ1¸hÕG÷	H÷ 	Hñ 	Húó   Á*BÂBc                ó4  — |dk(  rt        j                  d«       |dk(  r/|j                  t         j                  j	                  d¬«      «       t        j
                  t        d¬«      5  t        j                  d|z   d	¬
«       d d d «       y # 1 sw Y   y xY w)Nr   r˜  r   r™  rP   z0Worksheet index 1 is invalid, 1 worksheets foundr›   rš  r‘   rô   rœ  r�  s       r!   Útest_ignore_chartsheets_by_intz*TestReaders.test_ignore_chartsheets_by_int   s‰   € à�vÒÜ�K‰KÐDÔEØ�XÒØ×ÑÜ—‘×!Ñ!ØQð "ó ôô
 �]‰]ÜÐPô
ñ 	Aô �M‰M˜,¨Ñ1¸aÕ@÷	A÷ 	Añ 	AúrŸ  c                ó–   — t        j                  d|z   dd¬«      }t        g d¢g d¢g d¢gg d¢¬	«      }t        j                  ||«       y )
NÚtest_decimalú,r‘   )Údecimalrª   )r‘   gAñcÌ�Ä—@gÕ	h¢ïÖAÚABCÚpoig2Ø[j‡ô@)r²   gHáz®G^@g{®GáÍ@ÚDEFÚuytg¥Uq&Ø?)r¥   g%�•Cq‹@gçû©ñÖ^ú@ÚGHIÚrezgÈ)¬ç³â@)ÚIdÚNumber1ÚNumber2ÚText1ÚText2ÚNumber3ré   rø   r×   s       r!   Útest_euro_decimal_formatz$TestReaders.test_euro_decimal_format¯  sJ   € ä—‘˜~°Ñ8À#ÐPQÔRˆÜâFÚ@ÚCðò
 Nô
ˆô 	×Ñ˜f hÕ/r#   )YÚ__name__Ú
__module__Ú__qualname__r%   rS   Úparametrizerj   rx   Úfixturer‚   r–   r£   r®   rµ   rº   r¼   rÂ   rÇ   rÉ   rË   rÏ   rØ   rÞ   rë   rî   rñ   rù   rý   r  r&  r8  rN  rü   rn   r7   r   rQ  rk  ro  rv  r  rƒ  r   r†  r’  r•  r˜  r›  rŸ  r¥  Úfilterwarningsrª  r®  r±  r´  r·  r¾  rÅ  ÚnetworkÚ
single_cpurÎ  ÚtdÚskip_if_not_us_localerÙ  rÞ  Úslowrè  rì  rî  r  r#  r*  r3  rf  rj  rr  ru  rz  r}  r  r‚  r„  r‹  r�  r’  r–  rž  r¡  r²  r0   r#   r!   rW   rW   �   s$  „ Ø‡[�[×Ñ˜UÒ%8¸4¸&À4ÈÀ-Ð$PÓQñ'ó Rð'ò0ð( €V‡^�^˜DÔ!ñ4ó "ð4ò"ò0ò4ò$-ò*1-ðf ‡[�[×ÑØ’Išyª)²YÂ	Ê9ÐUóñ0óð0ð ‡[�[×Ñ˜Y¨#¨s¨°c¸3°ZÐ(@ÓAñ0ó Bð0ò0ò	0òSò	ò0ò	0ð ‡[�[×Ñ˜[¨4°¨)Ó4ñ0ó 5ð0ò=òAò0ò
0ò2ò&/0òd0ò4Eð: ‡[�[×ÑØð â%Ú-Ú%Ø˜s B§F¡F¨CÐ0ñ	ðð   i°cÀÑDá¢°IÔ>ÙÒ 4¸IÔFÙÒ <ÀEÔJÙ  c¨2¯6©6°3Ð 7¸uÔEñ	ðð	
óñ.0ó/ð.0ò10òf*òIð8 ‡[�[×ÑÐ0°B¸°7¸eÀWÐ=MÈqÐ<QÐ2RÓSñ0ó Tð0ò 0ð& ‡[�[×ÑØà™ H¨z¨lÐ#;Ó<Ð=Ø™¨L¨>Ô:Ð;ð	
óñ0óð0ò1ò5ò:ò3ò0ò
Xð ‡[�[×ÑÐ OÓPñ0ó Qð0ò6-ò"4ò1ð
 ‡[�[×ÑØØ	
ˆQ�ˆF�Q˜�F˜H x°Ð&:¸XÀxÐ<PÐQóñEó	ðEò$ò/ð4 ‡[�[×ÑØ‡[�[×Ññ6ó ó ð6ð ×ÑØ‡[�[×Ññ6ó ó ð6ð ‡[�[×Ññ6ó ð6ð ‡[�[×Ññ6ó ð6ò0òò"0òHR0ðh ‡[�[×ÑØà,¨r¯v©v°s¸CÀÐ.EÐFØ(¨2¯6©6¨(°Q©,Ð7ð	
óñ0óð0ò@	0òG0òR>ò40òl0ò,0ò0ò9ð ‡[�[×ÑØ7à˜{¨Q°¨F°A°tÐ<Ø˜z¨4°!°Q°¸Ð>Ø˜v¨¨1 v°°1¨v°tÐ<ØÐ/°!°Q°¸¸DÐAØ˜_¨d°D¸1¸a¸&ÐAØ˜_¨d°DÑ:OÐPð	
ó
ñ0ó
ð0ò2;ò0ò0ò	0ò&òHòAó0r#   rW   c            
      óˆ  — e Zd Zd„ Z ej
                  d¬«      d„ «       Zd„ Zd„ Zej                  j                  dg d¢«      d	„ «       Zd
„ Zd„ Zej                  j                  ddddgddgdddgddgg«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                  j                  dddg«      d„ «       Zd„ Zd„ Zd„ Zd„ Zy )!ÚTestExcelFileReadc                óú   — d}t        j                  t        |¬«      5  t        d|z   d«      5 }t	        j
                  |j                  «       |¬«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nz+Expected file path name or file-like objectr›   r�   r�   r|   )r%   r    r¡   r’   rc   rd   rÉ  )rg   r   r    r¢   r”   s        r!   Útest_raises_bytes_inputz)TestExcelFileRead.test_raises_bytes_input¾  si   € à;ˆÜ�]‰]œ9¨CÔ0ñ 	7Ü�g Ñ(¨$Ó/ð 7°1Ü—‘˜aŸf™f›h¨vÕ6÷7÷	7ð 	7÷7ð 7ú÷	7ð 	7ús"   žA1®&A%ÁA1Á%A.	Á*A1Á1A:Try   c                óš   — t        t        j                  |¬«      }|j                   |ddd«      «       |j	                  t        d|«       y)zH
        Change directory and set engine for ExcelFile objects.
        r|   r<   r=   rl   ru   N)r   rc   ru   r}   r~   r   s        r!   r‚   z#TestExcelFileRead.cd_and_set_engineÅ  s=   € ô
 ”r—|‘|¨FÔ3ˆØ×Ñ™( 4¨°Ó9Ô:Ø×ÑœB ¨TÕ2r#   c                ó®   — ddddddœ}t        j                  d|z   «      5 }|j                  }d d d «       |�|}n||dd     }|k(  sJ ‚y # 1 sw Y   ŒxY w)Nr   r   r   r   r‰   r�   r‘   )rc   ru   r   )rg   r    r   r“   rl   r•   rL   s          r!   r–   z"TestExcelFileRead.test_engine_usedÎ  sw   € àØØØØñ
Ðô �\‰\˜' HÑ,Ó-ð 	"°Ø—\‘\ˆF÷	"ð ÐØ‰Hà(¨°!°"¨Ñ6ˆHØ˜Ò!Ð!Ñ!÷	"ð 	"ús   ¡AÁAc                ó�  — t        j                  d|z   «      5 }t        j                  |dddg¬«      }d d d «       t        dgdgdgt        j
                  gdggd	g¬
«      }t        j                  |«       t        j                  d|z   «      5 }t        j                  |dddg¬«      }d d d «       t        t        j
                  gdgt        j
                  gt        j
                  gdggd	g¬
«      }t        j                  ||«       t        j                  d|z   «      5 }t        j                  |dddg¬«      }d d d «       t        dgdgdgt        j
                  gdggd	g¬
«      }t        j                  ||«       t        j                  d|z   «      5 }t        j                  |dddg¬«      }d d d «       t        t        j
                  gdgt        j
                  gt        j
                  gdggd	g¬
«      }t        j                  ||«       y # 1 sw Y   �ŒäxY w# 1 sw Y   �ŒzxY w# 1 sw Y   ŒóxY w# 1 sw Y   ŒˆxY w)NÚtest4rm   FÚapple©rq   rr   rs   rb  r‘   Úrabbitrt   ré   TÚtest5ú1.#QNANrn   )rc   ru   rd   r   rü   rn   re   rf   )rg   r    rl   rw   rL   s        r!   Útest_excel_passes_naz&TestExcelFileRead.test_excel_passes_naà  s  € Ü�\‰\˜' HÑ,Ó-ð 	°Ü—]‘]Ø (¸EÈgÈYôˆF÷	ô ØˆV�a�S˜4˜&¤2§6¡6 (¨X¨JÐ7À&Àô
ˆô 	×Ñ˜f hÔ/ä�\‰\˜' HÑ,Ó-ð 	°Ü—]‘]Ø (¸DÈWÈIôˆF÷	ô Ü�f‰fˆX˜�sœRŸV™V˜H¤r§v¡v h°°
Ð;ÀfÀXô
ˆô 	×Ñ˜f hÔ/ô �\‰\˜' HÑ,Ó-ð 	°Ü—]‘]Ø (¸EÈgÈYôˆF÷	ô Øˆ[˜1˜# ˜w¬¯©¨°8°*Ð=ÈÀxô
ˆô 	×Ñ˜f hÔ/ä�\‰\˜' HÑ,Ó-ð 	°Ü—]‘]Ø (¸DÈWÈIôˆF÷	ô Ü�f‰fˆX˜�sœRŸV™V˜H¤r§v¡v h°°
Ð;ÀfÀXô
ˆô 	×Ñ˜f hÕ/÷G	ñ 	ú÷	ñ 	ú÷	ð 	ú÷	ð 	ús/   ™HÂH#Ä#H0ÆH<ÈH È#H-È0H9È<IÚ	na_filter)NTFc                ó|  — i }|�||d<   t        j                  d|z   «      5 }t        j                  |fdddgdœ|¤Ž}d d d «       |du rdgd	gd
gdgdgg}n6t        j                  gd	gt        j                  gt        j                  gdgg}t        |dg¬«      }t        j                  |«       y # 1 sw Y   ŒuxY w)NrÌ  rÉ  rm   TrÆ  rÇ  FrÊ  r‘   rn   rÈ  rt   ré   )rc   ru   rd   rü   rn   r   re   rf   )rg   r    rÌ  r†   rl   rw   rL   s          r!   Útest_excel_passes_na_filterz-TestExcelFileRead.test_excel_passes_na_filter  sÔ   € ð ˆàÐ Ø"+ˆF�;Ñä�\‰\˜' HÑ,Ó-ð 	°Ü—]‘]Øðà#Ø $Ø"˜)ñ	ð
 ñˆF÷	ð ˜ÑØ"˜ a S¨5¨'°G°9¸x¸jÐI‰HäŸ™˜ 1 #¬¯© x´"·&±&°¸H¸:ÐFˆHä˜X°¨xÔ8ˆÜ
×Ñ˜f hÕ/÷	ð 	ús   ¢B2Â2B;c                óî  — t        ||«       |}t        |||«       t        j                  d|z   «      5 }t        j                  |dd¬«      }t        j                  |ddgd¬«      }d d d «       t        j                  |«       t        j                  |«       t        j                  d|z   «      5 }|j                  dd¬«      }|j                  ddgd¬«      }d d d «       t        j                  ||«       t        j                  ||«       t        j                  d|z   «      5 }t        j                  |ddd¬«      }	d d d «       t        j                  	|j                  d d	 «       t        j                  d|z   «      5 }|j                  ddd¬
«      }	d d d «       t        j                  |	|j                  d d	 «       y # 1 sw Y   �ŒaxY w# 1 sw Y   ŒøxY w# 1 sw Y   ŒžxY w# 1 sw Y   ŒRxY w)Nr�   r   rÅ   r‘   rÿ   )r@   )rª   r@   r   r  )r@   r  )	rU   rN   rc   ru   rd   re   rf   rˆ   r  )
rg   r,   r   r    rD   rL   rl   r´   ri   r¹   s
             r!   Útest_excel_table_sheet_by_indexz1TestExcelFileRead.test_excel_table_sheet_by_index  s·  € Ü# F¨GÔ4àˆÜ˜ (¨FÔ3ä�\‰\˜' HÑ,Ó-ð 	P°Ü—-‘- °!¸qÔAˆCÜ—-‘- °!¸q¸cÈQÔOˆC÷	Pô 	×Ñ˜c 8Ô,Ü
×Ñ˜c 8Ô,ä�\‰\˜' HÑ,Ó-ð 	<°Ø—+‘+˜a¨1�+Ó-ˆCØ—+‘+˜a¨1¨#¸�+Ó;ˆC÷	<ô 	×Ñ˜c 8Ô,Ü
×Ñ˜c 8Ô,ä�\‰\˜' HÑ,Ó-ð 	P°Ü—-‘- °!¸qÈQÔOˆC÷	Pä
×Ñ˜c 3§8¡8¨C¨R =Ô1ä�\‰\˜' HÑ,Ó-ð 	<°Ø—+‘+˜a¨1¸�+Ó;ˆC÷	<ô 	×Ñ˜c 3§8¡8¨C¨R =Õ1÷'	Pñ 	Pú÷	<ð 	<ú÷	Pð 	Pú÷	<ð 	<ús/   ´3GÂ3)GÄ(GÆG+ÇGÇGÇG(Ç+G4c                óš  — t        ||«       |}t        |||«       d}d}t        j                  ||z   «      5 }|j	                  |d¬«      }	d d d «       t        j                  ||z   «      5 }|j	                  d|¬«      }
d d d «       t        j                  	|«       t        j                  
|«       y # 1 sw Y   ŒjxY w# 1 sw Y   ŒBxY wr¬  )rU   rN   rc   ru   rˆ   re   rf   )rg   r,   r   r    rD   rL   r­  rq   rl   Ú	df1_parseÚ	df2_parses              r!   r®  z!TestExcelFileRead.test_sheet_name:  sÇ   € Ü# F¨GÔ4àˆÜ˜ (¨FÔ3àˆØˆ
ä�\‰\˜( XÑ-Ó.ð 	H°%ØŸ™¨zÀQ˜ÓGˆI÷	Hô �\‰\˜( XÑ-Ó.ð 	H°%ØŸ™¨a¸J˜ÓGˆI÷	Hô 	×Ñ˜i¨Ô2Ü
×Ñ˜i¨Õ2÷	Hð 	Hú÷	Hð 	Hús   ¸B5Á,CÂ5B>ÃC
rq   r¥   r   rà   rm   c                óæ   — d}t        j                  t        |¬«      5  t        j                  d|z   «      5 }|j                  |¬«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY wr¶  )r%   r    r¬   rc   ru   rˆ   )rg   r    rq   r¢   rl   s        r!   r·  z+TestExcelFileRead.test_bad_sheetname_raisesL  sh   € ð PˆÜ�]‰]œ:¨SÔ1ñ 	3Ü—‘˜g¨Ñ0Ó1ð 3°UØ—‘ z�Ô2÷3÷	3ð 	3÷3ð 3ú÷	3ð 	3ús"   žA'·AÁ
A'ÁA$	Á A'Á'A0c                ó2  — d|z   }t        j                  |dd|¬«      }t        |d«      5 }t        j                  |«      5 }t        j                  |dd¬«      }d d d «       d d d «       t	        j
                  |«       y # 1 sw Y   Œ(xY w# 1 sw Y   Œ,xY w)Nr�   rm   r   ©rq   r@   r   r�   rÅ   )rc   rd   r’   ru   re   rf   )rg   r   r    r°  rL   r”   r�   r"  s           r!   r±  z(TestExcelFileRead.test_excel_read_bufferW  sŽ   € Ø˜Ñ ˆÜ—=‘= °ÀQÈvÔVˆä�#�t‹_ð 	N Ü—‘˜a“ð N CÜŸ™ s°xÈ1ÔM�÷N÷	Nô 	×Ñ˜h¨Õ/÷Nð Nú÷	Nð 	Nús#   «BÁBÁBÂB
	ÂBÂBc                óî   — t        d|z   d«      5 }t        j                  |«      5 }t        j                  |dd|¬«       d d d «       d d d «       j                  sJ ‚y # 1 sw Y   Œ xY w# 1 sw Y   Œ$xY w)Nr�   r�   rm   r   rÖ  )r’   rc   ru   rd   Úclosed)rg   r   r    r”   rŠ   s        r!   Útest_reader_closes_filez)TestExcelFileRead.test_reader_closes_filea  sq   € Ü�'˜HÑ$ dÓ+ð 	U¨qÜ—‘˜a“ð U Dä—‘˜d¨xÀ1ÈVÕT÷U÷	Uð
 �xŠxˆ‰x÷	Uð Uú÷	Uð 	Uús"   �A+¦AÁ A+ÁA(	Á$A+Á+A4c                óð   — d}t        j                  d|z   «      5 }t        j                  t        |¬«      5  t        j
                  |d¬«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nz8Engine should not be specified when passing an ExcelFiler�   r›   r˜   r|   )rc   ru   r%   r    r¬   rd   )rg   r    r¢   Úxls       r!   Útest_conflicting_excel_enginesz0TestExcelFileRead.test_conflicting_excel_enginesi  se   € àHˆä�\‰\˜' HÑ,Ó-ð 	0°Ü—‘œz°Ô5ñ 0Ü—‘˜b¨Õ/÷0÷	0ð 	0÷0ð 0ú÷	0ð 	0ús"   ›A,·A ÁA,Á A)	Á%A,Á,A5c                ó  — t        j                  d|z   |¬«      }t        d|z   d«      5 }|j                  «       }d d d «       t        j                  t	        «      |¬«      }t        j                  ||«       y # 1 sw Y   Œ@xY w)Nr�   r|   r�   )rc   rd   r’   rÉ  r   re   rf   )rg   r   r    rL   r”   r=   r"  s          r!   Útest_excel_read_binaryz(TestExcelFileRead.test_excel_read_binaryq  sn   € ä—=‘= ¨8Ñ!3¸FÔCˆä�'˜HÑ$ dÓ+ð 	¨qØ—6‘6“8ˆD÷	ô —‘œw t›}°VÔ<ˆÜ
×Ñ˜h¨Õ/÷		ð 	ús   ªA:Á:Bc                óÚ   — t        d|z   d«      5 }t        j                  ||¬«      }d d d «       t        j                  d|z   |¬«      }t        j                  |«       y # 1 sw Y   Œ:xY w)Nr�   r�   r|   )r’   rc   rd   re   rf   )rg   r    r   r”   r•   rL   s         r!   Ú%test_excel_read_binary_via_read_excelz7TestExcelFileRead.test_excel_read_binary_via_read_excel{  s]   € ä�'˜HÑ$ dÓ+ð 	5¨qÜ—]‘] 1¨VÔ4ˆF÷	5ä—=‘= ¨8Ñ!3¸FÔCˆÜ
×Ñ˜f hÕ/÷	5ð 	5ús   �A!Á!A*c                óØ   — t        dd«      5 }t        j                  t        d¬«      5  t	        j
                  |ddg¬«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nzdf_header_oob.xlsxr�   zexceeds maximumr›   r   r‘   rh  )r’   r%   r    r¬   rc   rd   )rg   r   r”   s      r!   Ú)test_read_excel_header_index_out_of_rangez;TestExcelFileRead.test_read_excel_header_index_out_of_range‚  s_   € äÐ&¨Ó-ð 	0°Ü—‘œzÐ1BÔCñ 0Ü—‘˜a¨¨A¨Õ/÷0÷	0ð 	0÷0ð 0ú÷	0ð 	0ús"   �A ©AÁA ÁA	ÁA Á A)r­  zdf_empty.xlsxzdf_equals.xlsxc                óÜ   — t        dgd¬«      }t        j                  ddgddg¬«      }t        d	d
gg||d¬«      }t	        j
                  |dddd	g¬«      }t        j                  ||«       y )NÚZÚI2rÔ   r.  )r¸   zB.1ÚI11ÚI12r'  r‘   r¥   rL  )rI   rÖ   r`   rm   r   r  )r   r   rˆ  r   rc   rd   re   rf   )rg   r­  rŠ  ÚcolsrL   r•   s         r!   Útest_header_with_index_colz,TestExcelFileRead.test_header_with_index_colˆ  sq   € ô �S�E Ô%ˆÜ×%Ñ% z°<Ð&@ÈÐPUÈÔWˆÜ˜q !˜f˜X¨S¸$ÀgÔNˆÜ—‘Ø °QÀÀ1¸vô
ˆô 	×Ñ˜h¨Õ/r#   c                óÐ  — t        ||«       d|z   }t        j                  |«      5 }t        j                  |ddgd|¬«      }d d d «       t	        ||«      }t        j
                  ddgd|› d�¬	«      }t        j                  |d d |dd  g|d   j                  «       |d   j                  «       g¬
«      }	t        g g |	¬«      }
t        j                  |
«       y # 1 sw Y   ŒšxY w)NÚtest_datetime_mir   r‘   )r¡  r@   r   z
2020-02-29z
2020-03-01r  r  r_   r'  r`  )rU   rc   ru   rd   rG   ÚDatetimeIndexr   r(  Úto_pydatetimer   re   rf   )rg   r,   r   r    r”   rl   r"  rM   ÚdtiÚexpected_column_indexrL   s              r!   Útest_read_datetime_multiindexz/TestExcelFileRead.test_read_datetime_multiindex“  sì   € ä# F¨GÔ4à Ñ)ˆÜ�\‰\˜!‹_ð 	U Ü—]‘] 5°!°Q°À1ÈVÔTˆF÷	Uô ˜H fÓ-ˆä×Ñ ¨lÐ;ÀSÈÈÈaÀ=ÔQˆÜ *× 6Ñ 6Ø��!ˆW�c˜!˜"�gÐà�A‘×$Ñ$Ó&Ø�A‘×$Ñ$Ó&ðô!
Ðô ˜R rÐ3HÔIˆä
×Ñ˜h¨Õ/÷	Uð 	Uús   §CÃC%c                óÄ   — t        j                  t        d¬«      5  t        j                  d|› d�d«      5  	 d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)NzValue must be one of *r›   zio.excelz.readerÚabc)r%   r    r¬   rc   rs  r¤  s     r!   Útest_engine_invalid_optionz,TestExcelFileRead.test_engine_invalid_option©  s\   € ä�]‰]œ:Ð-EÔFñ 	Ü×"Ñ" X¨h¨Z°wÐ#?ÀÓGñ Ø÷÷	ð 	÷ð ú÷	ð 	ús!   œA·A
¹AÁ
A	ÁAÁAc                ó   — |dk(  rt        j                  d«       |dk(  r/|j                  t         j                  j	                  d¬«      «       t        j                  d|z   «      5 }|j                  dgk(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nr   r˜  r   r™  rP   rš  rm   )r%   ra   rR   rS   rT   rc   ru   Úsheet_names)rg   r,   r   r    rl   s        r!   Útest_ignore_chartsheetsz)TestExcelFileRead.test_ignore_chartsheets¯  s‡   € à�vÒÜ�K‰KÐDÔEØ�XÒØ×ÑÜ—‘×!Ñ!ØQð "ó ôô
 �\‰\˜,¨Ñ1Ó2ð 	3°eØ×$Ñ$¨¨
Ò2Ð2Ñ2÷	3÷ 	3ñ 	3ús   Á'BÂBc                ó‚  — t         f}|€t        j                  d|› �«       n4|dk(  r!dd l}t         |j                  j
                  f}n|dk(  r	ddlm} |f}t        |«      j                  dd¬«       t        j                  d	«      5  	 t        j                  ||¬
«       d d d «       y # |$ r Y Œw xY w# 1 sw Y   y xY w)NzInvalid test for engine=r   r   r   rÁ  Úcorruptzutf-8)ÚencodingFr|   )r
   r%   ra   r   ÚbiffhrÀ  r   rÂ  r   Ú
write_textre   Úassert_produces_warningrc   ru   )rg   r   r:   Úerrorsr   rÂ  s         r!   Útest_corrupt_files_closedz+TestExcelFileRead.test_corrupt_files_closed¼  sº   € ä�ˆØˆ>Ü�K‰KÐ2°6°(Ð;Õ<Ø�vÒÛä  $§*¡*×"6Ñ"6Ð7‰FØ�zÒ!Ý5à#Ð%ˆFäˆY‹×"Ñ" 9°wÐ"Ô?Ü×'Ñ'¨Ó.ñ 	ðÜ—‘˜Y¨vÕ6÷	ð 	øð ò Ùðú÷	ð 	ús*   ÂB5Â
B*Â*B2Â/B5Â1B2Â2B5Â5B>N)r³  r´  rµ  rÁ  r%   r·  r‚   r–   rË  rS   r¶  rÎ  rÐ  r®  r·  r±  rÙ  rÜ  rÞ  rà  râ  ré  rð  ró  rö  rþ  r0   r#   r!   r¿  r¿  ½  s  „ ò7ð €V‡^�^˜DÔ!ñ3ó "ð3ò"ò$$0ðL ‡[�[×Ñ˜[Ò*=Ó>ñ0ó ?ð0ò02ò63ð$ ‡[�[×ÑØØ	
ˆQ�ˆF�Q˜�F˜H x°Ð&:¸XÀxÐ<PÐQóñ3ó	ð3ò0òò0ò0ò0ò0ð ‡[�[×Ñ˜Z¨/Ð;KÐ)LÓMñ0ó Nð0ò0ò,ò3ór#   r¿  )r    r7   ÚreturnÚbool)r    r7   r   ú
str | Nonerÿ  r7   )rL   r   r    r7   r   r  rÿ  ro   )5Ú
__future__r   r   r   Ú	functoolsr   r<   r   rá  Úpathlibr   rã  rž   Úurllib.errorr	   r4   Úzipfiler
   Únumpyrü   r%   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsr»  Úpandasrc   r   r   r   r   r   Úpandas._testingÚ_testingre   Úread_ext_paramsr&   Ú
skip_if_noÚengine_paramsr"   r(   r·  r7   r-   r   r    r:   rD   rG   rN   rU   rW   r¿  )ÚengÚexts   00r!   ú<module>r     s  ðÝ "÷õ Ý Û 	Ý Û Û 	Ý !Û Ý ã Û ç )Ð )ã ÷õ õ â=€ð
 €F‡L�LØàˆB�M‰M˜&Ó!ð
ôð €F‡L�LØàˆB�M‰M˜*Ó%ð
ôð €F‡L�LØàˆB�M‰M˜&Ó!ð
ôð €F‡L�L�  §¡¨xÓ!8Ô9Ø€F‡L�L�˜m˜bŸm™m¨EÓ2Ô3Ø€F‡L�L� = 2§=¡=Ð1BÓ#CÔDð1€ó8ò*ð €‡�ð !÷àØ"òð Ù$ S¨#Ô.ñ 	˜˜SÕ!ðØ!óð 	ôñóðð ‡�ñó ðð
 ‡�ñó ðð
 ‡�ñó ðð ‡�ñó ðóó2ò
÷]0ñ ]0÷@)Rò RùóA+s   Å G1
