Ë
    @Øïimö  ã                  óÞ  — 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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& g d¢Z' ejP                  d ejR                  d«      g¬«       ejP                  d ejR                  d«      g¬«       ejP                  d ejR                  d«      g¬«       ejP                  d ejR                  d«      ¬«       ejP                  d ejR                  d«      ¬«       ejP                  d ejR                  d«      ¬«      gZ*d"d„Z+d„ Z, ejZ                  e*D � �cg c]  } e'D ]  } e+| |«      r	 e,| |«      ‘Œ Œ c}} e.¬«      d„ «       Z/ejZ                  d„ «       Z0ejZ                  d„ «       Z1ejZ                  d„ «       Z2d#d„Z3d$d„Z4d„ Z5 G d„ d«      Z6 G d „ d!«      Z7yc c}} w )%é    )Úannotations)ÚdatetimeÚtime)Úpartial)ÚBytesION)ÚPath)ÚURLError)Ú
BadZipFile)Úusing_pyarrow_string_dtype)Ú	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/html/aiagents/fe/lib/python3.12/site-packages/pandas/tests/io/excel/test_readers.pyÚ_is_valid_engine_ext_pairr%   B   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+   W   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_extr0   a   s   € ð �=‰=Ðr&   c                ó   — | \  }}|S ©N© ©r0   r"   r#   s      r$   r"   r"   q   s   € à*Ñ€FˆHØ€Mr&   c                ó   — | \  }}|S r2   r3   r4   s      r$   r#   r#   w   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Únsr3   )r#   r"   s     r$   Úget_exp_unitrB   ‡   s   € Ør&   c                ó~   — d | j                   _        t        ||«      }| j                   j                  |«      | _         y r2   )ÚindexÚnamerB   Úas_unit)Úexpectedr#   r"   Úunits       r$   Úadjust_expectedrI   ‹   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_pyxlsbrP   ’   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"   r7   r8   ÚexcelÚ
read_excelN)r   ÚpdrX   Ú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 r2   rV   )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[   rY   Ú	ExcelFileÚopenrX   )	r]   r#   r"   r^   re   Úexpected_defaultsÚfÚresultrG   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é{   ÚTrueTrg   >   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'©Úmatchrm   ÚSheet1r   ro   )Ú
sheet_namer;   Úengine_kwargs)ÚreÚescaper(   ÚraisesÚ	TypeErrorrY   rX   )r]   r#   r"   rr   Ú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{   rm   r}   r   é   ©r~   r;   ÚusecolsÚSheet2ro   ©r~   Úskiprowsr;   r‰   ©r(   r‚   Ú
ValueErrorrY   rX   ©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ÚCrm   r}   r   )r   é   r‡   rˆ   rŠ   ro   r‹   ©rP   rI   rY   rX   ÚtmÚassert_frame_equal)r]   r/   r"   r#   r?   rG   Ú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“   rm   r}   r   zA:Drˆ   rŠ   ro   r‹   r’   r“   zA,C,DzA,C:Dr•   )r]   r/   r"   r#   r?   rG   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   ro   r‡   )r   r‡   ro   )ro   r   r‡   )ro   r‡   r   )r‡   r   ro   )r‡   ro   r   c                ó¨   — t        ||«       |ddg   }t        |||«       t        j                  d|z   dd|¬«      }t	        j
                  ||«       y )Nr�   r“   rm   r}   r   rˆ   r•   )r]   r/   r"   r#   r‰   r?   rG   rt   s           r$   Ú.test_usecols_diff_positional_int_columns_orderz:TestReaders.test_usecols_diff_positional_int_columns_order1  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¢   rm   r}   ©r~   r‰   )ÚrangeÚlenrD   rY   rX   r–   r—   )r]   r#   r‰   r?   rG   rt   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 ©Nrm   r}   r   ©r~   r;   r•   ©r]   r/   r"   r#   r?   rG   rt   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¢   rm   r}   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{   rm   r}   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{   rm   r}   r�   r“   rˆ   ©r(   r‚   rƒ   rY   rX   r�   s      r$   Útest_index_col_label_errorz&TestReaders.test_index_col_label_errorc  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 )Nrm   ÚSheet3r�   rª   )r’   r“   r¢   ÚEÚF©rE   ©ÚcolumnsrD   )rY   rX   r   r   r–   r—   ©r]   r#   rt   rG   s       r$   Útest_index_col_strzTestReaders.test_index_col_strn  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 )	Nrm   r¶   rœ   rª   )r¢   r·   r¸   r‡   ©ÚlevelsÚcodesÚnamesrº   )rY   rX   r   r   r–   r—   r¼   s       r$   Útest_index_col_emptyz TestReaders.test_index_col_emptyv  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 )Nrm   ÚSheet4rª   )Úi1ÚaÚx)Úi2ÚbÚy)z
Unnamed: 0Úcol1Úcol2©r»   )rY   rX   r   Ú	set_indexr»   r–   r—   )r]   r#   r;   rt   rG   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{   rm   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{   rm   Ú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Î   ©rY   rX   r   r–   r—   )r]   r#   ÚparsedrG   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 filesrK   Útest3r}   rÙ   rÜ   rÎ   )rP   rM   r(   rN   rO   rY   rX   r   ÚnpÚnanr–   r—   )r]   r/   r"   r#   rß   rG   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 )
Nrm   r}   r   rª   rŠ   ro   ©r~   rŒ   r;   ©r~   r;   Ú
skipfooteréÿÿÿÿ)rP   rI   rY   rX   r–   r—   Úiloc)	r]   r/   r"   r#   r?   rG   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)ro   r”   éýÿÿÿé   r   )g      ô?g      @gHáz®Gý?g¸…ëQ¸þ?g•Ö&è.>)TFTTF)ro   r”   r‡   rï   é   )rÇ   r‡   ÚcÚdÚeiÝ  é
   é   é   iq  ro   é   é   iß  r‡   úM8[ú]©Údtype)ÚIntColÚFloatColÚBoolColÚStrColÚStr2ColÚDateColÚ
test_typesr}   rÙ   g      @r  rª   r   ©r~   Ú
converters)rP   rB   r   Ú	from_dictr   r   rY   rX   r–   r—   ÚcopyÚlocrD   Ú	enumerater»   rÏ   ÚapplyÚstr)r]   r/   r"   r#   rH   rG   ÚbasenameÚactualÚfloat_expectedÚicolrE   Ú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)ro   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  r3   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ä   rY   rX   r–   r—   )r]   r#   r  rG   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©ro   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)rY   rX   r   rã   rä   r–   r—   r  Úastyper   Úobjectr(   r‚   rŽ   )r]   r#   r  r  rG   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.  r/  r0  r1  rû   r2  r  Ú2r  c                óh   — d}t        j                  ||z   |¬«      }t        j                  ||«       y )Nr%  rû   ©rY   rX   r–   r—   )r]   r#   rü   rG   r  r  s         r$   Útest_reader_dtype_strz!TestReaders.test_reader_dtype_str0  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: 'ú'ro   r‡   ÚInt64rû   r(  r*  ÚFloat64TFÚbooleanrÇ   rÊ   Ústringé   g      @z
2019-12-31r”   )
rÇ   rÊ   rñ   rò   ró   rs   ÚgÚhÚiÚjÚtest©r~   rD   ©r~   Údtype_backendÚpyarrowr   )ÚArrowExtensionArray)Úfrom_pandasrJ  Úus)rH   rK  rù   rú   )r(   Úskipr   r   rY   ÚNAÚ	Timestampr–   Úensure_cleanÚto_excelrX   rP  Úpandas.arraysrQ  r»   ÚarrayÚ	_pa_arrayÚcastÚ	timestamprB   r8  r—   )r]   r#   rO  r"   ÚdfÚ	file_pathrt   ÚparQ  ÚcolrG   rH   s               r$   Útest_dtype_backendzTestReaders.test_dtype_backendR  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)Nr@  rA  rB  r,  r(  ©rÇ   rÊ   rL  FrM  Únumpy_nullabler0  )r~   rO  rü   )r(   rT  r   rã   rä   r–   rW  rX  rY   rX   r—   )r]   r#   r^  r_  rt   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 precedencerK   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)Nr@  rA  rB  rP  zmode.string_storagerÇ   rÊ   rû   rÈ   rd  rL  FrM  re  rN  r:   )r(   rT  ÚimportorskiprY   Úoption_contextr   rã   rZ  Úobject_rU  r–   rW  rX  rX   r   r   r—   )r]   r#   Ústring_storager`  r^  r_  rt   rG   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_valuero   úa.1r7  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û   ro   )rÇ   rm  zdtype dict changed)r9  r  rY   rX   r   r   r–   r—   )	r]   r#   ÚdtypesÚ	exp_valuer  Ú
dtype_dictÚdtype_dict_copyrt   rG   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  rG   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(   rT  rY   rX   r–   r—   )r]   r"   r#   r  rG   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)rY   rX   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Ù   )rY   rX   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¶   )rY   rX   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Ù   )rY   rX   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   rY   rX   r–   r—   )r]   r#   rG   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Œ  ro   )Úheaderr~   rm   c                ó   — ddz  S )Nro   r   r3   r  s    r$   r  zHTestReaders.test_exception_message_includes_sheet_name.<locals>.<lambda>  s
   € ÀÀAÁ€ r&   )r‰   r~   )r(   r‚   rŽ   rY   rX   Ú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 openpyxlrK   )r   r   z)Defaults to openpyxl, maybe not supportedÚtestdateoverflow)rP   r   rY   rV  rM   r(   rN   rO   rX   r–   r—   )r]   r/   r"   r#   rG   rt   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 ©Nrm   r}   r   rª   )r;   r~   r•   )
r]   r/   r#   r"   r?   Úfilenamer~   rG   r˜   r™   s
             r$   Útest_sheet_namezTestReaders.test_sheet_name=  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)Nrm   r}   r   rª   rn   )rY   rX   rq   r–   r—   )r]   r#   ÚpthrG   rs   r  s         r$   Útest_excel_read_bufferz"TestReaders.test_excel_read_bufferN  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)Nrw   zUnknown engine: foor{   r  rV   r�   )r]   Ú
bad_engines     r$   Útest_bad_engine_raisesz"TestReaders.test_bad_engine_raisesU  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_raisesZ  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)Nrw   ú|)z(No such file or directoryu   æ²¡æœ‰é‚£ä¸ªæ–‡ä»¶æˆ–ç›®å½•zFile o directory non esistente)r{   )Újoinr(   r‚   ÚFileNotFoundErrorrY   rX   )r]   r#   Úbad_filer|   s       r$   Útest_missing_file_raisesz$TestReaders.test_missing_file_raisesd  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‚   rY   rX   r   )r]   r"   Ú
bad_streamÚerrorr„   rµ  r·  s          r$   Útest_corrupt_bytes_raisesz%TestReaders.test_corrupt_bytes_raisesq  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)Nrm   rn   )Úcontent)rq   Úserve_contentÚreadrY   rX   Úurlr–   r—   )r]   Ú
httpserverr#   rs   Ú	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)Nrm   rn   ©ÚKeyÚBodyús3://ú/test1)Ústorage_options)rq   Ú
put_objectrE   rY   rX   r–   r—   )r]   r#   Ús3_public_bucketÚs3sors   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)Nrm   rn   rÅ  r   rÈ  rÉ  r3   )	rq   rË  Ús3fsÚS3FileSystemrE   rY   rX   r–   r—   )	r]   r#   rÌ  rÍ  rs   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)Nr7   r8   rW   rm   zfile://localhost/ú zfailing on )ÚosÚpathr°  rY   rX   r	   ÚplatformÚunameÚstripr(   rT  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©   )rY   rX   r   r–   r—   )r]   r#   Ústr_pathrG   Ú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   )Úlocalrm   r}   rª   )	Úpy.pathrã  rÖ  r×  r°  rY   rX   r–   r—   )r]   r#   Ú	LocalPathrß  rG   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)Nrm   rn   r}   r   rª   )rÖ  r×  r°  rq   rY   rX   r¾  )r]   r#   rß  rs   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)rK   ÚTimero   r”   r‡   é-   é8   i † rï   é   é1   i@ rG  é   é*   ià“ é   é9   é#   i€ é	   é)   é   i ¡ é   é   é   iÀ'	 rø   i`®
 é5   i 5 é   é%   r   i » é   é   é6   Ú
times_1900r}   rÙ   Ú
times_1904)rP   rM   r(   rN   rO   r   r  r   rY   rX   r–   r—   )r]   r/   r"   r#   rG   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 )*Nrw   ÚbarrÇ   rÊ   Útestmultiindexro   r(  ú
2015-01-01Tr”   r)  ú
2015-01-02Fr‡   r*  ú
2015-01-03rï   r+  ú
2015-01-04rÎ   rù   rú   Ú	mi_columnr   )r~   r–  r;   r/  Ú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Œ   )rP   rB   r   Úfrom_productr   rY   rV  r8  rX   r–   r—   rD   r»   Ú	set_namesrƒ  r¥   Ú
set_levels)	r]   r/   r"   r#   rH   ÚmiÚmi_filerG   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  rw   r  rÇ   rÊ   r  r  ©rÂ   ro   r(  r  Tr”   r)  r  Fr‡   r*  r  rï   r+  r	  )rw   rw   r  r  r  r  rº   rù   rú   r   r  )rP   r   r  rB   r   rY   rV  Úfrom_arraysr8  rX   r–   r—   )r]   r/   r"   r#   r~   Úidx_lvl2r  r  rH   rG   rt   s              r$   Ú+test_read_excel_multiindex_blank_after_namez7TestReaders.test_read_excel_multiindex_blank_after_nameZ  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   ro   ©r~   r–  ©r�   r’   ©ÚkeyÚvalr&  r”   rÎ   )rY   rX   r   r  r   r–   r—   )r]   r#   r  rt   Úexp_columnsrG   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   ro   r”   r‡   rï   rð   r¿   r¹   ©rD   r»   Úsingle_namesr   rª   Úmulti_namesro   )rO  rP  rQ  rR  rS  )rU  rV  rW  rX  rY  )r   ro   r”   r‡   rï   Úsingle_no_namesÚmulti_no_names)rã   rZ  rä   r9  r   r   r   rY   rX   r–   r—   rD   )	r]   r#   r¢  r8   r»   r  ÚsirG   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{   rm   ©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Œ   ro   r(  r  Tr)  r  Fr‡   r*  r  rï   r+  r	  r/  rÎ   rñ   rù   rú   c                ó
   — | dv S ©N)r   r”   r3   r  s    r$   r  z6TestReaders.test_read_excel_skiprows.<locals>.<lambda>ý  s
   € ˜q F˜{€ r&   )r~   rŒ   rÂ   )rP   rB   rY   rX   r   rV  r8  r–   r—   rã   rZ  ©r]   r/   r"   r#   rH   r  rG   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 )Nrf  rg  c                ó
   — | dvS )N)ro   r‡   rð   r3   r  s    r$   r  zFTestReaders.test_read_excel_skiprows_callable_not_in.<locals>.<lambda>  s   € ˜q¨	Ð1€ r&   rh  ro   r(  r  Tr‡   r*  r  Fr/  rÎ   rñ   rù   rú   )	rP   rB   rY   rX   r   rV  r8  r–   r—   rk  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ð   rm   ©Únrowsr=  )r]   r#   Únum_rows_to_pullr  rG   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 )Nrm   rô   rq  )rY   rX   r¦   r–   r—   )r]   r#   rG   Únum_records_in_filers  r  s         r$   Ú0test_read_excel_nrows_greater_than_nrows_in_filez<TestReaders.test_read_excel_nrows_greater_than_nrows_in_file1  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{   rm   r  rq  r�   r�   s      r$   Ú+test_read_excel_nrows_non_integer_parameterz7TestReaders.test_read_excel_nrows_non_integer_parameter9  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  rf  rg  c                ó
   — | dv S rj  r3   r  s    r$   r  zTestReaders.<lambda>G  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Œ   rr  )rY   rX   rë   r–   r—   )	r]   r#   r¢  r~   r–  r;   rŒ   rG   r  s	            r$   Útest_read_excel_nrows_paramsz(TestReaders.test_read_excel_nrows_params?  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{   rm   r}   r   r³   r™  s     r$   Útest_deprecated_kwargsz"TestReaders.test_deprecated_kwargsc  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)  ©ro   r”   r�  )r   ro   r!  )r”   r‡   rZ  r&  r   ro   r  )r   Úfrom_tuplesr   rY   rX   r–   r—   )r]   r#   Ú	file_namer8   ÚidxrG   rt   s          r$   Ú"test_no_header_with_list_index_colz.TestReaders.test_no_header_with_list_index_colg  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      à?ro   r”   ÚnumbersrÎ   )rã   rä   r   rY   rX   r–   r—   )r]   r#   rƒ  r8   rG   rt   s         r$   Útest_one_col_noskip_blank_linez*TestReaders.test_one_col_noskip_blank_linet  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’   ro   r‡   r”   rï   rÎ   Úmi_column_empty_rowsr   r'  )	r   r‚  rã   rä   r   rY   rX   r–   r—   )r]   r#   rƒ  r»   r8   rG   rt   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)rY   rX   Úshape)r]   r#   rƒ  rt   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 worksheetsrK   z"Worksheet named 'Chart1' not foundr{   Ú
chartsheetÚChart1rÙ   ©	r(   rT  rM   rN   rO   r‚   rŽ   rY   rX   ©r]   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“  rK   z0Worksheet index 1 is invalid, 1 worksheets foundr{   r”  ro   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ú,ro   )ÚdecimalrŒ   )ro   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(   Úfixturer`   ru   r…   r�   rš   rŸ   rN   Úparametrizer¡   r§   r¬   r®   r°   r´   r½   rÃ   rÐ   rÓ   rÖ   rà   rå   rì   r  r#  r:  r   rã   rä   r  r   r9  r>  rb  rf  rO   r   rl  rt  rx  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-  r`  rd  rl  ro  rt  rw  ry  r|  r~  r…  r‰  rŒ  r�  r˜  r›  r¬  r3   r&   r$   rR   rR   ›   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&   rR   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_warningsrm   rn   rV   )r–   Úassert_produces_warningÚFutureWarningrq   rY   rX   r¾  )r]   r"   r#   r„   rs   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;TrS   c                óš   — t        t        j                  |¬«      }|j                   |ddd«      «       |j	                  t        d|«       y)zH
        Change directory and set engine for ExcelFile objects.
        rV   r7   r8   rW   rp   N)r   rY   rp   rZ   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   rg   rm   ro   )rY   rp   r"   )r]   r#   r"   rr   rW   rt   rG   s          r$   ru   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_valuesrU  ro   ÚrabbitrÜ   rÎ   TÚtest5ú1.#QNANrä   )rY   rp   rX   r   rã   rä   r–   r—   )r]   r#   rW   rß   rG   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Ê  ro   rä   rÈ  rÜ   rÎ   )rY   rp   rX   rã   rä   r   r–   r—   )r]   r#   rÌ  rd   rW   rß   rG   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)Nrm   r   rª   ro   rç   )r;   )rŒ   r;   rè   rê   )r;   ré   )	rP   rI   rY   rp   rX   r–   r—   rf   rë   )
r]   r/   r"   r#   r?   rG   rW   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¡  )rP   rI   rY   rp   rf   r–   r—   )r]   r/   r"   r#   r?   rG   r¢  r~   rW   Ú	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
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Ž   rY   rp   rf   )r]   r#   r~   r„   rW   s        r$   r¬  z+TestExcelFileRead.test_bad_sheetname_raisesP  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)Nrm   r}   r   ©r~   r;   r"   rn   rª   )rY   rX   rq   rp   r–   r—   )r]   r"   r#   r¥  rG   rs   rk   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)Nrm   rn   r}   r   rÖ  )rq   rY   rp   rX   Úclosed)r]   r"   r#   rs   rh   s        r$   Útest_reader_closes_filez)TestExcelFileRead.test_reader_closes_filee  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 ExcelFilerm   r{   rw   rV   )rY   rp   r(   r‚   rŽ   rX   )r]   r#   r„   Úxls       r$   Útest_conflicting_excel_enginesz0TestExcelFileRead.test_conflicting_excel_enginesm  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)Nrm   rV   rn   )rY   rX   rq   r¾  r   r–   r—   )r]   r"   r#   rG   rs   r8   r  s          r$   Útest_excel_read_binaryz(TestExcelFileRead.test_excel_read_binaryu  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)Nrm   rn   rV   )rq   rY   rX   r–   r—   )r]   r#   r"   rs   rt   rG   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.xlsxrn   zexceeds maximumr{   r   ro   rb  )rq   r(   r‚   rŽ   rY   rX   )r]   r"   rs   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!  ro   r‡   r7  )rD   r»   rü   r}   r   r  )r   r   r‚  r   rY   rX   r–   r—   )r]   r¢  r„  ÚcolsrG   rt   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   ro   )r–  r;   r"   z
2020-02-29z
2020-03-01rù   rú   rû   r!  rZ  )rP   rY   rp   rX   rB   ÚDatetimeIndexr   r"  Úto_pydatetimer   r–   r—   )r]   r/   r"   r#   rs   rW   r  rH   ÚdtiÚexpected_column_indexrG   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Ž   rY   ri  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“  rK   r”  r}   )r(   rT  rM   rN   rO   rY   rp   Úsheet_names)r]   r/   r"   r#   rW   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)ÚencodingFrV   )r
   r(   rT  r   Úbiffhrµ  r   r·  r–   rW  r   Ú
write_textr½  rY   rp   )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°  r`   ru   rË  rN   r±  rÎ  rÐ  r£  r¬  r¦  rÙ  rÜ  rÞ  rà  râ  ré  rð  ró  rö  rþ  r3   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  )rG   r   r#   r  r"   r  rÿ  ÚNone)8Ú
__future__r   r   r   Ú	functoolsr   r7   r   rÖ  Úpathlibr   rØ  r€   Úurllib.errorr	   Úzipfiler
   Únumpyrã   r(   Úpandas._configr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsrµ  ÚpandasrY   r   r   r   r   r   Úpandas._testingÚ_testingr–   Úpandas.core.arraysr   r   Úread_ext_paramsr)   r¸  Úengine_paramsr%   r+   r°  r  r0   r"   r#   r?   rB   rI   rP   rR   rº  )ÚengÚexts   00r$   ú<module>r     s  ðÝ "÷õ Ý Û 	Ý Û Û 	Ý !Ý ã Û å 5ç )Ð )ã ÷õ õ ÷ò
 >€ð
 €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   Å# G)
