Ë
    ¤ehÞö  ã                  ó$  — 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mZ d dlZd dlZd d	lmZ d d
lm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% d dl&m'Z'm(Z(  e«       rejR                  jT                  Z+g d¢Z, ejZ                  d ej\                  d«      g¬«       ejZ                  d ej\                  d«      g¬«       ejZ                  d ej\                  d«      g¬«       ejZ                  d ej\                  d«      ¬«       ejZ                  d ej\                  d«      ¬«       ejZ                  d ej\                  d«      ¬«      gZ/d#d„Z0d„ Z1 ejd                  e/D � �cg c]  } e,D ]  } e0| |«      r	 e1| |«      ‘Œ Œ c}} e3¬«      d„ «       Z4ejd                  d„ «       Z5ejd                  d„ «       Z6ejd                  d„ «       Z7d$d„Z8d%d„Z9d„ Z: G d„ d «      Z; G d!„ d"«      Z<yc c}} w )&é    )Úannotations)ÚdatetimeÚtime)Úpartial)ÚBytesION)ÚPath)ÚURLError)Ú
BadZipFile)Úusing_pyarrow_string_dtype)Úis_platform_windows)Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚread_csv)ÚArrowStringArrayÚStringArray)ú.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     ú`/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/tests/io/excel/test_readers.pyÚ_is_valid_engine_ext_pairr&   F   s‚   € ð
 �]‰]˜1Ñ€FØ�Ò ¨FÒ 2ØØ�‚˜8 vÒ-ØØ�6Ò˜fÐ,?Ñ?ØØ�Ò˜h¨'Ò1ØØ�7Ò˜vÐ-CÑCØØ�Ò˜H¨Ò.ØØó    c                óh   — | j                   |fz   }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,   [   s.   € ð
 �]‰]˜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_extr1   e   s   € ð �=‰=Ðr'   c                ó   — | \  }}|S ©N© ©r1   r#   r$   s      r%   r#   r#   u   s   € à*Ñ€FˆHØ€Mr'   c                ó   — | \  }}|S r3   r4   r5   s      r%   r$   r$   {   s   € à*Ñ€FˆHØ€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%   r@   r@   �   s)   € ñ
 ˜˜f e¨[Ó9€HÜ�h¨!¸ÀhÔO€FØ€Mr'   c                 ó   — y)NÚnsr4   )r$   r#   s     r%   Úget_exp_unitrC   ‹   s   € Ør'   c                ó~   — d | j                   _        t        ||«      }| j                   j                  |«      | _         y r3   )ÚindexÚnamerC   Úas_unit)Úexpectedr$   r#   Úunits       r%   Úadjust_expectedrJ   �   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#   r0   s     r%   Úxfail_datetimes_with_pyxlsbrQ   –   s7   € Ø�ÒØ×ÑÜ�K‰K×ÑØLð ó õ	
ð r'   c                  óØ  — e 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 eg d'¢g d(¢g d'¢d)d*ej@                  d+gd,œ«      fd-d.e!e!d,œ e e"g d'¢d-¬/«       e"g d(¢d.¬/«       e"g d0¢e#¬/«       e"d1d2ej@                  d3ge#¬/«      d,œ«      fg«      d4„ «       Z$d5„ Z%d6„ Z&ej                  jO                   e(«       d7¬8«      d9„ «       Z)ej                  j                  d:i d;fd<d=id;fg«      d>„ «       Z*d?„ Z+ej                  j                  d@dA edBdCgi«      fdD edEg¬F«      fg«      dG„ «       Z,dH„ Z-dI„ Z.dJ„ Z/dK„ Z0dL„ Z1dM„ Z2ej                  jg                  dN«      dO„ «       Z4dP„ Z5dQ„ Z6dR„ Z7ej                  j                  dSdTdUdTgdTdUgdVdWdVgdVdWgg«      dX„ «       Z8dY„ Z9dZ„ Z:ej                  jv                  ej                  jx                  d[„ «       «       Z=e>j~                  ej                  jx                  d\„ «       «       Z@ej                  jx                  d]„ «       ZAej                  j„                  d^„ «       ZCd_„ ZD e>jŠ                  d`«      da„ «       ZFdb„ ZGdc„ ZHdd„ ZIej                  j                  dedfej@                  dgdhdggfdiej@                  gdjz  fg«      dk„ «       ZJdl„ ZKdm„ ZLdn„ ZMdo„ ZNdp„ ZOdq„ ZPdr„ ZQds„ ZRej                  j                  dtdudvdUd;gdUdfdudwddUd;gdfdudxdUd;gdUd;gdfdudydUd;gdUdfdzd{dddUdgfdzd{ddd|„ fg«      d}„ «       ZSd~„ ZTd„ ZUd€„ ZVd�„ ZWd‚„ ZXdƒ„ ZYd„„ ZZd…„ Z[y)†ÚTestReadersT©Úautousec                óš   — t        t        j                  |¬«      }|j                   |ddd«      «       |j	                  t        d|«       y)zG
        Change directory and set engine for read_excel calls.
        ©r#   r8   r9   ÚexcelÚ
read_excelN)r   ÚpdrY   ÚchdirÚsetattr©Úselfr#   r>   Ú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 r3   rW   )r^   ÚargsÚkwargss      r%   Úparserz,TestReaders.test_engine_used.<locals>.parser«   s   € Ø—;‘;Ðr'   Úparser   r   r   r   ©ÚxlsxÚxlsmÚxlsbÚxlsÚodsÚtest1Úrbé   )r\   rZ   Ú	ExcelFileÚopenrY   )	r^   r$   r#   r_   rf   Úexpected_defaultsÚfÚresultrH   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ÚfooÚabcdé{   ÚTrueTrh   >   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'©Úmatchrn   ÚSheet1r   rp   )Ú
sheet_namer<   Úengine_kwargs)ÚreÚescaper)   ÚraisesÚ	TypeErrorrZ   rY   )r^   r$   r#   rs   Ú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|   rn   r~   r   é   ©r   r<   ÚusecolsÚSheet2rp   ©r   Úskiprowsr<   rŠ   ©r)   rƒ   Ú
ValueErrorrZ   rY   ©r^   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ÚCrn   r~   r   )r   é   rˆ   r‰   r‹   rp   rŒ   ©rQ   rJ   rZ   rY   ÚtmÚassert_frame_equal)r^   r0   r#   r$   r@   rH   Údf1Údf2s           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”   rn   r~   r   zA:Dr‰   r‹   rp   rŒ   r“   r”   zA,C,DzA,C:Dr–   )r^   r0   r#   r$   r@   rH   rš   Ú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   rp   rˆ   )r   rˆ   rp   )rp   r   rˆ   )rp   rˆ   r   )rˆ   r   rp   )rˆ   rp   r   c                ó¨   — t        ||«       |ddg   }t        |||«       t        j                  d|z   dd|¬«      }t	        j
                  ||«       y )Nrž   r”   rn   r~   r   r‰   r–   )r^   r0   r#   r$   rŠ   r@   rH   ru   s           r%   Ú.test_usecols_diff_positional_int_columns_orderz:TestReaders.test_usecols_diff_positional_int_columns_order5  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£   rn   r~   ©r   rŠ   )ÚrangeÚlenrE   rZ   rY   r—   r˜   )r^   r$   rŠ   r@   rH   ru   s         r%   Ú.test_usecols_diff_positional_str_columns_orderz:TestReaders.test_usecols_diff_positional_str_columns_orderE  sH   € à˜3 ˜*Ñ%ˆÜœs 8›}Ó-ˆŒä—‘˜w¨Ñ1¸hÐPWÔXˆÜ
×Ñ˜f hÕ/r'   c                óœ   — t        ||«       |}t        |||«       t        j                  d|z   dd¬«      }t	        j
                  ||«       y ©Nrn   r~   r   ©r   r<   r–   ©r^   r0   r#   r$   r@   rH   ru   s          r%   Útest_read_excel_without_slicingz+TestReaders.test_read_excel_without_slicingM  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£   rn   r~   r   zA,D:Er‰   r–   r¬   s          r%   Útest_usecols_excel_range_strz(TestReaders.test_usecols_excel_range_strV  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|   rn   r~   zD:E1r¥   rŽ   r�   s      r%   Ú$test_usecols_excel_range_str_invalidz0TestReaders.test_usecols_excel_range_str_invalida  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|   rn   r~   rž   r”   r‰   ©r)   rƒ   r„   rZ   rY   r�   s      r%   Útest_index_col_label_errorz&TestReaders.test_index_col_label_errorg  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 )Nrn   ÚSheet3rž   r«   )r“   r”   r£   ÚEÚF©rF   ©ÚcolumnsrE   )rZ   rY   r   r   r—   r˜   ©r^   r$   ru   rH   s       r%   Útest_index_col_strzTestReaders.test_index_col_strr  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 )	Nrn   r·   r�   r«   )r£   r¸   r¹   rˆ   ©ÚlevelsÚcodesÚnamesr»   )rZ   rY   r   r   r—   r˜   r½   s       r%   Útest_index_col_emptyz TestReaders.test_index_col_emptyz  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 )Nrn   ÚSheet4r«   )Úi1ÚaÚx)Úi2ÚbÚy)z
Unnamed: 0Úcol1Úcol2©r¼   )rZ   rY   r   Ú	set_indexr¼   r—   r˜   )r^   r$   r<   ru   rH   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|   rn   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|   rn   Ú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Útest2r~   ©r   ÚaaaaÚbbbbbÚTestÚTest1rÏ   ©rZ   rY   r   r—   r˜   )r^   r$   ÚparsedrH   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 filesrL   Útest3r~   rÚ   rÝ   rÏ   )rQ   rN   r)   rO   rP   rZ   rY   r   ÚnpÚnanr—   r˜   )r^   r0   r#   r$   rà   rH   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 )
Nrn   r~   r   r«   r‹   rp   ©r   r�   r<   ©r   r<   Ú
skipfooteréÿÿÿÿ)rQ   rJ   rZ   rY   r—   r˜   Úiloc)	r^   r0   r#   r$   r@   rH   r™   rš   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)rp   r•   éýÿÿÿé   r   )g      ô?g      @gHáz®Gý?g¸…ëQ¸þ?g•Ö&è.>)TFTTF)rp   r•   rˆ   rð   é   )rÈ   rˆ   ÚcÚdÚeiÝ  é
   é   é   iq  rp   é   é   iß  rˆ   úM8[ú]©Údtype)ÚIntColÚFloatColÚBoolColÚStrColÚStr2ColÚDateColÚ
test_typesr~   rÚ   g      @r  r«   r  ©r   Ú
converters)rQ   rC   r   Ú	from_dictr   r   rZ   rY   r—   r˜   ÚcopyÚlocrE   Ú	enumerater¼   rÐ   ÚapplyÚstr)r^   r0   r#   r$   rI   rH   ÚbasenameÚactualÚfloat_expectedÚicolrF   Ú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)rp   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ä   rå   r  s    r%   r   z4TestReaders.test_reader_converters.<locals>.<lambda>  s   € ©A " q¡&€ ´2·6±6€ r'   c                ó   — | dk7  rdS dS )Nr  r  r  r4   r  s    r%   r   z4TestReaders.test_reader_converters.<locals>.<lambda>  s   €  A¨¢G˜€ °€ r'   c                ó    — | rt        | «      S dS )Nr  )r  r  s    r%   r   z4TestReaders.test_reader_converters.<locals>.<lambda>  s   € ¡1œ˜Q›€ ¨"€ r'   )rþ   rÿ   r•   rˆ   r~   r  )r   r  rä   rå   rZ   rY   r—   r˜   )r^   r$   r  rH   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           	     óH  — 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¢t        ¬«      |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©rp   r•   rˆ   rð   ©ç      @ç      @ç      @ç      @ç      ð?ç       @ç      @©rÈ   rË   rò   ró   Úfloat64Úfloat32)rÈ   rË   rò   rü   rÈ   rË   ©Ú001Ú002Ú003Ú004rò   z(Unable to convert column d to type int64r|   ró   Úint64)rZ   rY   r   rä   rå   r—   r˜   r  Úastyper   Úobjectr)   rƒ   r�   )r^   r$   r  r  rH   r…   s         r%   Útest_reader_dtypezTestReaders.test_reader_dtype  s	  € àˆÜ—‘˜x¨(Ñ2Ó3ˆäâ!Ú)Ú!Ø˜3¤§¡¨Ð,ñ	ó
ˆô 	×Ñ˜f hÔ/ä—‘Ø�xÑ¨Y¸YÌSÑ'Qô
ˆð ! ™×,Ñ,¨YÓ7ˆ�‰Ø  ™×,Ñ,¨YÓ7ˆ�‰ÜÒ;Ä6ÔJˆ�‰Ü
×Ñ˜f hÔ/à8ˆÜ�]‰]œ:¨SÔ1ñ 	EÜ�M‰M˜( XÑ-°c¸7°^ÕD÷	E÷ 	Eñ 	Eús   Ã2DÄD!zdtype,expectedr'  r(  r-  r.  r/  r0  r1  r2  rü   r3  r  Ú2r  c                óh   — d}t        j                  ||z   |¬«      }t        j                  ||«       y )Nr&  rü   ©rZ   rY   r—   r˜   )r^   r$   rý   rH   r  r  s         r%   Útest_reader_dtype_strz!TestReaders.test_reader_dtype_str4  s.   € ð: ˆä—‘˜x¨(Ñ2¸%Ô@ˆÜ
×Ñ˜f hÕ/r'   c                óÆ  — |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œ
«      }t        j                  |«      5 }|j                  |dd¬«       t	        j                  |d|¬«      }d d d «       |dk(  r¦dd l}ddlm} t        |j                  D �	ci c]  }	|	 ||j                  ||	   d¬«      «      “Œ! c}	«      }
 ||
d   j                  j                   j#                  |j%                  d¬«      «      «      |
d<    ||j                  d d g«      «      |
d <   n)|}
t'        ||«      }|
d   j)                  d!|› d"�«      |
d<   t        j*                  |
«       y # 1 sw Y   ŒôxY wc c}	w )#N©r   r   úNo engine for filetype: 'ú'rp   rˆ   ÚInt64rü   r)  r+  ÚFloat64TFÚbooleanrÈ   rË   Ústringé   g      @z
2019-12-31r•   )
rÈ   rË   rò   ró   rô   rt   ÚgÚhÚiÚjÚtest©r   rE   ©r   Údtype_backendÚpyarrowr   )ÚArrowExtensionArray)Úfrom_pandasrK  Úus)rI   rL  rú   rû   )r)   Úskipr   r   rZ   ÚNAÚ	Timestampr—   Úensure_cleanÚto_excelrY   rQ  Úpandas.arraysrR  r¼   ÚarrayÚ	_pa_arrayÚcastÚ	timestamprC   r9  r˜   )r^   r$   rP  r#   ÚdfÚ	file_pathru   ÚparR  ÚcolrH   rI   s               r%   Útest_dtype_backendzTestReaders.test_dtype_backendV  s  € àÐ(Ñ(Ü�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°'Ô:ñó
ˆô �_‰_˜XÓ&ð 	¨)Ø�K‰K˜	¨f¸EˆKÔBÜ—]‘]Ø f¸MôˆF÷	ð
 ˜IÒ%Û å9ä ð  "Ÿz™zöàð Ñ,¨R¯X©X°b¸±gÈ4¨XÓ-PÓQÑQòóˆHñ 0Ø˜‘×#Ñ#×-Ñ-×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Õ/÷7	ð 	üòs   Ä2-IÆ	$IÉIc                ót  — |dv rt        j                  d|› d�«       t        t        j                  dgdt        j                  gdœ«      }t        j                  |«      5 }|j                  |dd¬	«       t        j                  |dd
d¬«      }d d d «       t        j                  |«       y # 1 sw Y   Œ xY w)NrA  rB  rC  r-  r)  ©rÈ   rË   rM  FrN  Únumpy_nullabler1  )r   rP  rý   )r)   rU  r   rä   rå   r—   rX  rY  rZ   rY   r˜   )r^   r$   r_  r`  ru   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°Ñ?Ó@ˆÜ�_‰_˜XÓ&ð 	¨)Ø�K‰K˜	¨f¸EˆKÔBÜ—]‘]ØØ!Ø.Øô	ˆF÷	ô 	×Ñ˜f bÕ)÷	ð 	ús   Á!.B.Â.B7zinfer_string takes precedencerL   c           
     óâ  — |dv rt        j                  d|› d�«       t        j                  d«      }t        j                  d|«      5  t        t        j                  ddgt        j                  ¬«      t        j                  d	t        j                  gt        j                  ¬«      d
œ«      }t        j                  |«      5 }|j                  |dd¬«       t        j                  |dd¬«      }d d d «       |dk(  ryt        t        t        j                  ddgt        j                  ¬«      «      t        t        j                  d	t        j                  gt        j                  ¬«      «      d
œ«      }nBt        t        |j                  ddg«      «      t        |j                  d	d g«      «      d
œ«      }t        j                   |«       d d d «       y # 1 sw Y   ŒèxY w# 1 sw Y   y xY w)NrA  rB  rC  rQ  zmode.string_storagerÈ   rË   rü   rÉ   re  rM  FrN  rf  rO  r;   )r)   rU  ÚimportorskiprZ   Úoption_contextr   rä   r[  Úobject_rV  r—   rX  rY  rY   r   r   r˜   )r^   r$   Ústring_storagera  r_  r`  ru   rH   s           r%   Útest_dtype_backend_stringz%TestReaders.test_dtype_backend_string–  sŠ  € ð
 Ð(Ñ(Ü�K‰KÐ3°H°:¸QÐ?Ô@ä× Ñ  Ó+ˆä×ÑÐ4°nÓEñ 	4ÜäŸ™ 3¨ *´B·J±JÔ?ÜŸ™ 3¬¯© ,´b·j±jÔAñóˆBô —‘ Ó*ð ¨iØ—‘˜I°&À�ÔFÜŸ™Ø¨&Ð@Pô�÷ð  Ò)Ü$ä(¬¯©°3¸°*ÄBÇJÁJÔ)OÓPÜ(¬¯©°3¼¿¹°,ÄbÇjÁjÔ)QÓRñó‘ô %ä-¨b¯h©h¸¸S°zÓ.BÓCÜ-¨b¯h©h¸¸T°{Ó.CÓDñó�ô ×!Ñ! &¨(Ô3÷7	4ð 	4÷ð ú÷	4ð 	4ús&   Á	A<G%Ã-GÃ2CG%ÇG"	ÇG%Ç%G.zdtypes, exp_valuerp   úa.1r8  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ü   rp   )rÈ   rn  zdtype dict changed)r:  r  rZ   rY   r   r   r—   r˜   )	r^   r$   ÚdtypesÚ	exp_valuer  Ú
dtype_dictÚdtype_dict_copyru   rH   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ß   )r^   r$   r  r  rH   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)   rU  rZ   rY   r—   r˜   )r^   r#   r$   r  rH   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)rZ   rY   r—   Úassert_contains_allÚkeysÚlist©r^   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Ú   )rZ   rY   r„  Úsetr—   r‚  rƒ  r§   )r^   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Ú   )r~   r‹   r·   )rZ   rY   r—   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Úblankr~   rÚ   )rZ   rY   r—   r˜   r   )r^   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�  r~   rÚ   )r   rZ   rY   r—   r˜   )r^   r$   rH   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�  rp   )Úheaderr   rn   c                ó   — ddz  S )Nrp   r   r4   r  s    r%   r   zHTestReaders.test_exception_message_includes_sheet_name.<locals>.<lambda>#  s
   € ÀÀAÁ€ r'   )rŠ   r   )r)   rƒ   r�   rZ   rY   ÚZeroDivisionError©r^   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 openpyxlrL   )r   r   z)Defaults to openpyxl, maybe not supportedÚtestdateoverflow)rQ   r   rZ   rW  rN   r)   rO   rP   rY   r—   r˜   )r^   r0   r#   r$   rH   ru   s         r%   Útest_date_conversion_overflowz)TestReaders.test_date_conversion_overflow%  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 ©Nrn   r~   r   r«   )r<   r   r–   )
r^   r0   r$   r#   r@   Úfilenamer   rH   r™   rš   s
             r%   Útest_sheet_namezTestReaders.test_sheet_nameA  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)Nrn   r~   r   r«   ro   )rZ   rY   rr   r—   r˜   )r^   r$   ÚpthrH   rt   r  s         r%   Útest_excel_read_bufferz"TestReaders.test_excel_read_bufferR  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)Nrx   zUnknown engine: foor|   r  rW   rŽ   )r^   Ú
bad_engines     r%   Útest_bad_engine_raisesz"TestReaders.test_bad_engine_raisesY  s9   € Øˆ
Ü�]‰]œ:Ð-BÔCñ 	1Ü�M‰M˜" ZÕ0÷	1÷ 	1ñ 	1ús	   ž?¿Ar   rˆ   r   rÆ   r~   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Ž   )r^   r$   r   r…   s       r%   Útest_bad_sheetname_raisesz%TestReaders.test_bad_sheetname_raises^  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)Nrx   ú|)z(No such file or directoryu   æ²¡æœ‰é‚£ä¸ªæ–‡ä»¶æˆ–ç›®å½•zFile o directory non esistente)r|   )Újoinr)   rƒ   ÚFileNotFoundErrorrZ   rY   )r^   r$   Úbad_filer}   s       r%   Útest_missing_file_raisesz$TestReaders.test_missing_file_raisesh  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ƒ   rZ   rY   r   )r^   r#   Ú
bad_streamÚerrorr…   r¶  r¸  s          r%   Útest_corrupt_bytes_raisesz%TestReaders.test_corrupt_bytes_raisesu  sŒ   € Øˆ
Øˆ>ÜˆEð.ñ ð �vÒÝ&àˆEð'ñ ð �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)Nrn   ro   )Úcontent)rr   Úserve_contentÚreadrZ   rY   Úurlr—   r˜   )r^   Ú
httpserverr$   rt   Ú	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)Nrn   ro   ©ÚKeyÚBodyús3://ú/test1)Ústorage_options)rr   Ú
put_objectrF   rZ   rY   r—   r˜   )r^   r$   Ús3_public_bucketÚs3sort   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)Nrn   ro   rÆ  r   rÉ  rÊ  r4   )	rr   rÌ  Ús3fsÚS3FileSystemrF   rZ   rY   r—   r˜   )	r^   r$   rÍ  rÎ  rt   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)Nr8   r9   rX   rn   zfile://localhost/ú zfailing on )ÚosÚpathr±  rZ   rY   r	   ÚplatformÚunameÚstripr)   rU  r—   r˜   )r^   r$   r>   Ú
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ª   )rZ   rY   r   r—   r˜   )r^   r$   Ústr_pathrH   Úpath_objr  s         r%   Útest_read_from_pathlib_pathz'TestReaders.test_read_from_pathlib_pathÆ  sO   € à˜XÑ%ˆÜ—=‘= °hÈ!ÔLˆä˜ (Ñ*Ó+ˆÜ—‘˜x°HÈÔJˆä
×Ñ˜h¨Õ/r'   zpy.pathc                ó  — ddl m} t        j                  j	                  d|z   «      }t        j                  |dd¬«      } |«       j	                  d|z   «      }t        j                  |dd¬«      }t        j                  ||«       y )Nr   )Úlocalrn   r~   r«   )	Úpy.pathrä  r×  rØ  r±  rZ   rY   r—   r˜   )r^   r$   Ú	LocalPathrà  rH   rá  r  s          r%   Útest_read_from_py_localpathz'TestReaders.test_read_from_py_localpathÐ  si   € õ 	/ä—7‘7—<‘< ¨(Ñ 2Ó3ˆÜ—=‘= °hÈ!ÔLˆá“;×#Ñ# G¨hÑ$6Ó7ˆÜ—‘˜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)Nrn   ro   r~   r   r«   )r×  rØ  r±  rr   rZ   rY   r¿  )r^   r$   rà  rt   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)rL   ÚTimerp   r•   rˆ   é-   é8   i † rð   é   é1   i@ rH  é   é*   ià“ é   é9   é#   i€ é	   é)   é   i ¡ é   é   é   iÀ'	 rù   i`®
 é5   i 5 é   é%   r   i » é   é   é6   Ú
times_1900r~   rÚ   Ú
times_1904)rQ   rN   r)   rO   rP   r   r  r   rZ   rY   r—   r˜   )r^   r0   r#   r$   rH   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           
     ó2  — 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        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 )*Nrx   ÚbarrÈ   rË   Útestmultiindexrp   r)  ú
2015-01-01Tr•   r*  ú
2015-01-02Frˆ   r+  ú
2015-01-03rð   r,  ú
2015-01-04rÏ   rú   rû   Ú	mi_columnr   )r   r—  r<   r0  Úmi_indexr«   Úboth©r   r<   r—  Úilvl1Úilvl2Úmi_index_nameÚc1Úc2Úmi_column_name)ÚlevelÚname_with_intÚ	both_nameÚboth_name_skiprows)r   r<   r—  r�   )rQ   rC   r   Úfrom_productr   rZ   rW  r9  rY   r—   r˜   rE   r¼   Ú	set_namesr„  r¦   Ú
set_levels)	r^   r0   r#   r$   rI   ÚmiÚmi_filerH   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Ô/ô œe A›h›ˆŒØŸ<™<¨¨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  rx   r  rÈ   rË   r  r  ©rÃ   rp   r)  r  Tr•   r*  r  Frˆ   r+  r	  rð   r,  r
  )rx   rx   r  r  r  r  r»   rú   rû   r   r  )rQ   r   r  rC   r   rZ   rW  Úfrom_arraysr9  rY   r—   r˜   )r^   r0   r#   r$   r   Úidx_lvl2r  r  rI   rH   ru   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   rp   ©r   r—  ©rž   r“   ©ÚkeyÚvalr'  r•   rÏ   )rZ   rY   r   r  r   r—   r˜   )r^   r$   r  ru   Úexp_columnsrH   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   rp   r•   rˆ   rð   rñ   rÀ   rº   ©rE   r¼   Úsingle_namesr   r«   Úmulti_namesrp   )rP  rQ  rR  rS  rT  )rV  rW  rX  rY  rZ  )r   rp   r•   rˆ   rð   Úsingle_no_namesÚmulti_no_names)rä   r[  rå   r:  r   r   r   rZ   rY   r—   r˜   rE   )	r^   r$   r£  r9   r¼   r  ÚsirH   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|   rn   ©r—  r´   )r^   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•   ©r   r�   rp   r)  r  Tr*  r  Frˆ   r+  r	  rð   r,  r
  r0  rÏ   rò   rú   rû   c                ó
   — | dv S ©N)r   r•   r4   r  s    r%   r   z6TestReaders.test_read_excel_skiprows.<locals>.<lambda>  s
   € ˜q F˜{€ r'   )r   r�   rÃ   )rQ   rC   rZ   rY   r   rW  r9  r—   r˜   rä   r[  ©r^   r0   r#   r$   rI   r  rH   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 )Nrg  rh  c                ó
   — | dvS )N)rp   rˆ   rñ   r4   r  s    r%   r   zFTestReaders.test_read_excel_skiprows_callable_not_in.<locals>.<lambda>  s   € ˜q¨	Ð1€ r'   ri  rp   r)  r  Trˆ   r+  r	  Fr0  rÏ   rò   rú   rû   )	rQ   rC   rZ   rY   r   rW  r9  r—   r˜   rl  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ñ   rn   ©Únrowsr>  )r^   r$   Únum_rows_to_pullr  rH   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 )Nrn   rõ   rr  )rZ   rY   r§   r—   r˜   )r^   r$   rH   Únum_records_in_filert  r  s         r%   Ú0test_read_excel_nrows_greater_than_nrows_in_filez<TestReaders.test_read_excel_nrows_greater_than_nrows_in_file5  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|   rn   r  rr  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  rg  rh  c                ó
   — | dv S rk  r4   r  s    r%   r   zTestReaders.<lambda>K  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]).
        )r   r—  r<   r�   Nrˆ   )r   r—  r<   r�   rs  )rZ   rY   rì   r—   r˜   )	r^   r$   r£  r   r—  r<   r�   rH   r  s	            r%   Útest_read_excel_nrows_paramsz(TestReaders.test_read_excel_nrows_paramsC  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|   rn   r~   r   r´   rš  s     r%   Útest_deprecated_kwargsz"TestReaders.test_deprecated_kwargsg  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*  ©rp   r•   r‚  )r   rp   r"  )r•   rˆ   r[  r'  r   rp   r  )r   Úfrom_tuplesr   rZ   rY   r—   r˜   )r^   r$   Ú	file_namer9   ÚidxrH   ru   s          r%   Ú"test_no_header_with_list_index_colz.TestReaders.test_no_header_with_list_index_colk  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      à?rp   r•   ÚnumbersrÏ   )rä   rå   r   rZ   rY   r—   r˜   )r^   r$   r„  r9   rH   ru   s         r%   Útest_one_col_noskip_blank_linez*TestReaders.test_one_col_noskip_blank_linex  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“   rp   rˆ   r•   rð   rÏ   Úmi_column_empty_rowsr   r(  )	r   rƒ  rä   rå   r   rZ   rY   r—   r˜   )r^   r$   r„  r¼   r9   rH   ru   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)rZ   rY   Úshape)r^   r$   r„  ru   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 worksheetsrL   z"Worksheet named 'Chart1' not foundr|   Ú
chartsheetÚChart1rÚ   ©	r)   rU  rN   rO   rP   rƒ   r�   rZ   rY   ©r^   r0   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”  rL   z0Worksheet index 1 is invalid, 1 worksheets foundr|   r•  rp   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ú,rp   )Údecimalr�   )rp   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'   )\Ú__name__Ú
__module__Ú__qualname__r)   Úfixturera   rv   r†   r‘   r›   r    rO   Úparametrizer¢   r¨   r­   r¯   r±   rµ   r¾   rÄ   rÑ   rÔ   r×   rá   ræ   rí   r  r$  r;  r   rä   rå   r  r   r:  r?  rc  rg  rP   r   rm  ru  ry  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â  Ú
skip_if_norç  ré  r  r  r%  r.  ra  re  rm  rp  ru  rx  rz  r}  r  r†  rŠ  r�  r‘  r™  rœ  r­  r4   r'   r%   rS   rS   Ÿ   sF  „ Ø€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ð: ‡[�[×ÑØð Ùâ)Ú1Ú)Ø! 3¨¯©°Ð4ñ	óð
ð   i°cÀÑDÙá#¢L¸	ÔBÙ#Ò$8À	ÔJÙ#Ò$@ÈÔOÙ# S¨#¨r¯v©v°sÐ$;À6ÔJñ	óð
ð	
óñ60ó7ð60ò.0ò`*ð  ‡[�[×ÑÙ"Ó$Ð-Lð ó ñ"4óð"4ðH ‡[�[×ÑÐ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ò$ò/ð6 ‡[�[×ÑØ‡[�[×Ññ6ó ó ð6ð ×ÑØ‡[�[×Ññ	6ó ó ð	6ð ‡[�[×Ññ6ó ð6ð  ‡[�[×Ññ6ó ð6ò0ð €R‡]�]�9Óñ
0ó ð
0òò"0òHR0ðh ‡[�[×ÑØà,¨r¯v©v°s¸CÀÐ.EÐFØ(¨2¯6©6¨(°Q©,Ð7ð	
óñ0óð0òB	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'   rS   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        |d¬«      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�Passing bytes to 'read_excel' is deprecated and will be removed in a future version. To read from a byte string, wrap it in a `BytesIO` object.F)r}   Úraise_on_extra_warningsrn   ro   rW   )r—   Úassert_produces_warningÚFutureWarningrr   rZ   rY   r¿  )r^   r#   r$   r…   rt   s        r%   Útest_deprecate_bytes_inputz,TestExcelFileRead.test_deprecate_bytes_input¿  sy   € ð:ð 	ô ×'Ñ'Ü ¸eô
ñ 	7ô �g Ñ(¨$Ó/ð 7°1Ü—‘˜aŸf™f›h¨vÕ6÷7÷	7ð 	7÷7ð 7ú÷	7ð 	7ús"   ŸA2¯&A&ÁA2Á&A/	Á+A2Á2A;TrT   c                óš   — t        t        j                  |¬«      }|j                   |ddd«      «       |j	                  t        d|«       y)zH
        Change directory and set engine for ExcelFile objects.
        rW   r8   r9   rX   rq   N)r   rZ   rq   r[   r\   r]   s        r%   ra   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   rh   rn   rp   )rZ   rq   r#   )r^   r$   r#   rs   rX   ru   rH   s          r%   rv   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Útest4r~   FÚapple©r   Úkeep_default_naÚ	na_valuesrV  rp   ÚrabbitrÝ   rÏ   TÚtest5ú1.#QNANrå   )rZ   rq   rY   r   rä   rå   r—   r˜   )r^   r$   rX   rà   rH   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Ê  r~   TrÅ  rÆ  FrË  rp   rå   rÉ  rÝ   rÏ   )rZ   rq   rY   rä   rå   r   r—   r˜   )r^   r$   rÍ  re   rX   rà   rH   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)Nrn   r   r«   rp   rè   )r<   )r�   r<   ré   rë   )r<   rê   )	rQ   rJ   rZ   rq   rY   r—   r˜   rg   rì   )
r^   r0   r#   r$   r@   rH   rX   r™   rš   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¢  )rQ   rJ   rZ   rq   rg   r—   r˜   )r^   r0   r#   r$   r@   rH   r£  r   rX   Ú	df1_parseÚ	df2_parses              r%   r¤  z!TestExcelFileRead.test_sheet_nameB  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
r   rˆ   r   rÆ   r~   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�   rZ   rq   rg   )r^   r$   r   r…   rX   s        r%   r­  z+TestExcelFileRead.test_bad_sheetname_raisesT  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)Nrn   r~   r   ©r   r<   r#   ro   r«   )rZ   rY   rr   rq   r—   r˜   )r^   r#   r$   r¦  rH   rt   rl   r  s           r%   r§  z(TestExcelFileRead.test_excel_read_buffer_  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)Nrn   ro   r~   r   r×  )rr   rZ   rq   rY   Úclosed)r^   r#   r$   rt   ri   s        r%   Útest_reader_closes_filez)TestExcelFileRead.test_reader_closes_filei  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 ExcelFilern   r|   rx   rW   )rZ   rq   r)   rƒ   r�   rY   )r^   r$   r…   Úxls       r%   Útest_conflicting_excel_enginesz0TestExcelFileRead.test_conflicting_excel_enginesq  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)Nrn   rW   ro   )rZ   rY   rr   r¿  r   r—   r˜   )r^   r#   r$   rH   rt   r9   r  s          r%   Útest_excel_read_binaryz(TestExcelFileRead.test_excel_read_binaryy  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)Nrn   ro   rW   )rr   rZ   rY   r—   r˜   )r^   r$   r#   rt   ru   rH   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.xlsxro   zexceeds maximumr|   r   rp   rc  )rr   r)   rƒ   r�   rZ   rY   )r^   r#   rt   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"  rp   rˆ   r8  )rE   r¼   rý   r~   r   r  )r   r   rƒ  r   rZ   rY   r—   r˜   )r^   r£  r…  ÚcolsrH   ru   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   rp   )r—  r<   r#   z
2020-02-29z
2020-03-01rú   rû   rü   r"  r[  )rQ   rZ   rq   rY   rC   ÚDatetimeIndexr   r#  Úto_pydatetimer   r—   r˜   )r^   r0   r#   r$   rt   rX   r  rI   ÚdtiÚexpected_column_indexrH   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�   rZ   rj  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”  rL   r•  r~   )r)   rU  rN   rO   rP   rZ   rq   Úsheet_names)r^   r0   r#   r$   rX   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|› �«      5 }t        |«      j                  dd¬«       t        j                  d	«      5  	 t        j                  ||¬
«       d d d «       d d d «       y # |$ r Y Œw xY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)NzInvalid test for engine=r   r   r   r·  Úcorruptzutf-8)ÚencodingFrW   )r
   r)   rU  r   Úbiffhr¶  r    r¸  r—   rX  r   Ú
write_textr¾  rZ   rq   )r^   r#   r$   Úerrorsr   r¸  Úfiles          r%   Útest_corrupt_files_closedz+TestExcelFileRead.test_corrupt_files_closedÃ  sä   € ä�ˆØˆ>Ü�K‰KÐ2°6°(Ð;Õ<Ø�vÒÛä  $§*¡*×"6Ñ"6Ð7‰FØ�zÒ!Ý5à#Ð%ˆFä�_‰_˜w x jÐ1Ó2ð 	°dÜ�‹J×!Ñ! )°gÐ!Ô>Ü×+Ñ+¨EÓ2ñ ðÜ—L‘L ¨fÕ5÷÷	ð 	øð
 ò Ùðú÷ð ú÷	ð 	úsB   Á/2C"Â!CÂ#CÂ:C"ÃCÃCÃCÃCÃC	ÃC"Ã"C+N)r®  r¯  r°  rÀ  r)   r±  ra   rv   rÌ  rO   r²  rÏ  rÑ  r¤  r­  r§  rÚ  rÝ  rß  rá  rã  rê  rñ  rô  r÷  rÿ  r4   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$   r  ÚreturnÚbool)r$   r  r#   z
str | Noner   r  )rH   r   r$   r  r#   r  r   ÚNone)=Ú
__future__r   r   r   Ú	functoolsr   r8   r   r×  Úpathlibr   rÙ  r�   Úurllib.errorr	   Úzipfiler
   Únumpyrä   r)   Úpandas._configr   Úpandas.compatr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsr¶  ÚpandasrZ   r   r   r   r   r   Úpandas._testingÚ_testingr—   Úpandas.core.arraysr   r   rO   rµ  Ú
pytestmarkÚread_ext_paramsr*   r¹  Úengine_paramsr&   r,   r±  r  r1   r#   r$   r@   rC   rJ   rQ   rS   r»  )ÚengÚexts   00r%   ú<module>r     s  ðÝ "÷õ Ý Û 	Ý Û Û 	Ý !Ý ã Û å 5å -ß )Ð )ã ÷õ õ ÷ñ
 ÔØ—‘×'Ñ'€Jâ=€ð
 €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÷~(Yò Yùóq*s   Æ H
