Ë
    ômxi:õ  ã                  ó  — 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#  e«       rejH                  jJ                  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)Úis_platform_windows)Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚread_csv)ú.xlsú.xlsxú.xlsmú.xlsbú.odsÚxlrd©ÚmarksÚopenpyxlÚpyxlsbÚodfÚcalamineÚpython_calaminec                ó¢   — | j                   d   } | dk(  r|dk(  ry| dk(  r|dk7  ry|dk(  r| dvry| dk(  r|d	k7  ry|d	k(  r| d
vry| dk(  r|dk7  ryy)zm
    Filter out invalid (engine, ext) pairs instead of skipping, as that
    produces 500+ pytest.skips.
    r   r   r   Fr   r   >   r   r   r   r   >   r   r   r   T)Úvalues)ÚengineÚread_exts     úY/home/htdocs/ttos/venv/lib/python3.12/site-packages/pandas/tests/io/excel/test_readers.pyÚ_is_valid_engine_ext_pairr#   @   s‚   € ð
 �]‰]˜1Ñ€FØ�Ò ¨FÒ 2ØØ�‚˜8 vÒ-ØØ�6Ò˜fÐ,?Ñ?ØØ�Ò˜h¨'Ò1ØØ�7Ò˜vÐ-CÑCØØ�Ò˜H¨Ò.ØØó    c                ó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)   U   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_extr.   _   s   € ð �=‰=Ðr$   c                ó   — | \  }}|S ©N© ©r.   r    r!   s      r"   r    r    o   s   € à*Ñ€FˆHØ€Mr$   c                ó   — | \  }}|S r0   r1   r2   s      r"   r!   r!   u   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Únsr1   )r!   r    s     r"   Úget_exp_unitr@   …   s   € Ør$   c                ó~   — d | j                   _        t        ||«      }| j                   j                  |«      | _         y r0   )ÚindexÚnamer@   Úas_unit)Úexpectedr!   r    Úunits       r"   Úadjust_expectedrG   ‰   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_pyxlsbrN   �   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¢d1¬/«       e"d2d3ej@                  d4gd1¬/«      d,œ«      fg«      d5„ «       Z#d6„ Z$d7„ Z%d8„ Z&ej                  j                  d9i d:fd;d<id:fg«      d=„ «       Z'd>„ Z(ej                  j                  d?d@ edAdBgi«      fdC edDg¬E«      fg«      dF„ «       Z)dG„ Z*dH„ Z+dI„ Z,dJ„ Z-dK„ Z.dL„ Z/ej                  ja                  dM«      dN„ «       Z1dO„ Z2dP„ Z3dQ„ Z4ej                  j                  dRdSdTdSgdSdTgdUdVdUgdUdVgg«      dW„ «       Z5dX„ Z6dY„ Z7ej                  jp                  ej                  jr                  dZ„ «       «       Z:e;jx                  ej                  jr                  d[„ «       «       Z=ej                  jr                  d\„ «       Z>ej                  j~                  d]„ «       Z@d^„ ZA e;j„                  d_«      d`„ «       ZCda„ ZDdb„ ZEdc„ ZFej                  j                  dddeej@                  dfdgdfgfdhej@                  gdiz  fg«      dj„ «       ZGdk„ ZHdl„ ZIdm„ ZJdn„ ZKdo„ ZLdp„ ZMdq„ ZNdr„ ZOej                  j                  dsdtdudTd:gdTdfdtdvddTd:gdfdtdwdTd:gdTd:gdfdtdxdTd:gdTdfdydzdddTdgfdydzddd{„ fg«      d|„ «       ZPd}„ ZQd~„ ZRd„ ZSd€„ ZTd�„ ZUd‚„ ZVdƒ„ ZWd„„ ZXy)…ÚTestReadersT©Úautousec                óš   — t        t        j                  |¬«      }|j                   |ddd«      «       |j	                  t        d|«       y)zG
        Change directory and set engine for read_excel calls.
        ©r    r5   r6   ÚexcelÚ
read_excelN)r   ÚpdrV   Ú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 r0   rT   )r[   ÚargsÚkwargss      r"   Úparserz,TestReaders.test_engine_used.<locals>.parser¥   s   € Ø—;‘;Ðr$   Úparser   r   r   r   ©ÚxlsxÚxlsmÚxlsbÚxlsÚodsÚtest1Úrbé   )rY   rW   Ú	ExcelFileÚopenrV   )	r[   r!   r    r\   rc   Úexpected_defaultsÚfÚresultrE   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é{   ÚTrueTre   >   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'©Úmatchrk   ÚSheet1r   rm   )Ú
sheet_namer9   Úengine_kwargs)ÚreÚescaper&   ÚraisesÚ	TypeErrorrW   rV   )r[   r!   r    rp   Ú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`ry   rk   r{   r   é   ©r|   r9   ÚusecolsÚSheet2rm   ©r|   Úskiprowsr9   r‡   ©r&   r€   Ú
ValueErrorrW   rV   ©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ÚCrk   r{   r   )r   é   r…   r†   rˆ   rm   r‰   ©rN   rG   rW   rV   ÚtmÚassert_frame_equal)r[   r-   r    r!   r=   rE   Ú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‘   rk   r{   r   zA:Dr†   rˆ   rm   r‰   r�   r‘   zA,C,DzA,C:Dr“   )r[   r-   r    r!   r=   rE   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   rm   r…   )r   r…   rm   )rm   r   r…   )rm   r…   r   )r…   r   rm   )r…   rm   r   c                ó¨   — t        ||«       |ddg   }t        |||«       t        j                  d|z   dd|¬«      }t	        j
                  ||«       y )Nr›   r‘   rk   r{   r   r†   r“   )r[   r-   r    r!   r‡   r=   rE   rr   s           r"   Ú.test_usecols_diff_positional_int_columns_orderz:TestReaders.test_usecols_diff_positional_int_columns_order/  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    rk   r{   ©r|   r‡   )ÚrangeÚlenrB   rW   rV   r”   r•   )r[   r!   r‡   r=   rE   rr   s         r"   Ú.test_usecols_diff_positional_str_columns_orderz:TestReaders.test_usecols_diff_positional_str_columns_order?  sH   € à˜3 ˜*Ñ%ˆÜœs 8›}Ó-ˆŒä—‘˜w¨Ñ1¸hÐPWÔXˆÜ
×Ñ˜f hÕ/r$   c                óœ   — t        ||«       |}t        |||«       t        j                  d|z   dd¬«      }t	        j
                  ||«       y ©Nrk   r{   r   ©r|   r9   r“   ©r[   r-   r    r!   r=   rE   rr   s          r"   Útest_read_excel_without_slicingz+TestReaders.test_read_excel_without_slicingG  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    rk   r{   r   zA,D:Er†   r“   r©   s          r"   Útest_usecols_excel_range_strz(TestReaders.test_usecols_excel_range_strP  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: E1ry   rk   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 strry   rk   r{   r›   r‘   r†   ©r&   r€   r�   rW   rV   r�   s      r"   Útest_index_col_label_errorz&TestReaders.test_index_col_label_errora  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 )Nrk   ÚSheet3r›   r¨   )r�   r‘   r    ÚEÚF©rC   ©ÚcolumnsrB   )rW   rV   r   r   r”   r•   ©r[   r!   rr   rE   s       r"   Útest_index_col_strzTestReaders.test_index_col_strl  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 )	Nrk   r´   rš   r¨   )r    rµ   r¶   r…   ©ÚlevelsÚcodesÚnamesr¸   )rW   rV   r   r   r”   r•   rº   s       r"   Útest_index_col_emptyz TestReaders.test_index_col_emptyt  sU   € ä—‘Ø�hÑ¨8ºô
ˆô Ú#Ü R D¨1¡H°R°D¸1±HÂOÔTô
ˆô 	×Ñ˜f hÕ/r$   r9   Nr’   c                óÐ   — t        j                  d|z   d|¬«      }t        g d¢g d¢gg d¢¬«      }|r|j                  |j                  |   «      }t        j                  ||«       y )Nrk   ÚSheet4r¨   )Úi1ÚaÚx)Úi2ÚbÚy)z
Unnamed: 0Úcol1Úcol2©r¹   )rW   rV   r   Ú	set_indexr¹   r”   r•   )r[   r!   r9   rr   rE   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'\]ry   rk   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.ry   rk   Ú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Ì   ©rW   rV   r   r”   r•   )r[   r!   ÚparsedrE   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 filesrI   Útest3r{   r×   rÚ   rÌ   )rN   rK   r&   rL   rM   rW   rV   r   ÚnpÚnanr”   r•   )r[   r-   r    r!   rÝ   rE   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 )
Nrk   r{   r   r¨   rˆ   rm   ©r|   rŠ   r9   ©r|   r9   Ú
skipfooteréÿÿÿÿ)rN   rG   rW   rV   r”   r•   Úiloc)	r[   r-   r    r!   r=   rE   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)rm   r’   éýÿÿÿé   r   )g      ô?g      @gHáz®Gý?g¸…ëQ¸þ?g•Ö&è.>)TFTTF)rm   r’   r…   rí   é   )rÅ   r…   ÚcÚdÚeiÝ  é
   é   é   iq  rm   é   é   iß  r…   úM8[ú]©Údtype)ÚIntColÚFloatColÚBoolColÚStrColÚStr2ColÚDateColÚ
test_typesr{   r×   g      @rÿ   r¨   rþ   ©r|   Ú
converters)rN   r@   r   Ú	from_dictr   r   rW   rV   r”   r•   ÚcopyÚlocrB   Ú	enumerater¹   rÍ   ÚapplyÚstr)r[   r-   r    r!   rF   rE   ÚbasenameÚactualÚfloat_expectedÚicolrC   Ú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)rm   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  r1   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â   rW   rV   r”   r•   )r[   r!   r
  rE   r  r  s         r"   Útest_reader_convertersz"TestReaders.test_reader_converters÷  s‰   € Ø$ˆä×&Ñ&â.Ø!¤2§6¡6¨4°°{ÐCÚLØ¤§¡¨¨S°#Ð6ñ	ó
ˆñ =Ù9Ù<Ù,ñ	
ˆ
ô —‘Ø�xÑ¨HÀô
ˆô 	×Ñ˜f hÕ/r$   c           	     ó@  — d}t        j                  ||z   «      }t        g d¢g d¢g d¢ddt        j                  dgdœ«      }t        j                  ||«       t        j                  ||z   dd	t        d
œ¬«      }|d   j                  d«      |d<   |d   j                  d	«      |d<   t        g d¢d¬«      |d<   t        j                  ||«       d}t        j                  t        |¬«      5  t        j                  ||z   ddi¬«       d d d «       y # 1 sw Y   y xY w)NÚ	testdtype©rm   r’   r…   rí   ©ç      @ç      @ç      @ç      @ç      ð?ç       @ç      @©rÅ   rÈ   rï   rð   Úfloat64Úfloat32)rÅ   rÈ   rï   rù   rÅ   rÈ   ©Ú001Ú002Ú003Ú004r	  rï   z(Unable to convert column d to type int64ry   rð   Úint64)rW   rV   r   rá   râ   r”   r•   r	  Úastyper   r&   r€   rŒ   )r[   r!   r
  r  rE   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ˆ�‰ÜÒ;À5ÔIˆ�‰Ü
×Ñ˜f hÔ/à8ˆÜ�]‰]œ:¨SÔ1ñ 	EÜ�M‰M˜( XÑ-°c¸7°^ÕD÷	E÷ 	Eñ 	Eús   Ã.DÄDzdtype,expectedr$  r%  r*  r+  r,  r-  r.  r/  rù   r0  r	  r  Ú2r  c                óh   — d}t        j                  ||z   |¬«      }t        j                  ||«       y )Nr#  rù   ©rW   rV   r”   r•   )r[   r!   rú   rE   r
  r  s         r"   Útest_reader_dtype_strz!TestReaders.test_reader_dtype_str.  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: 'ú'rm   r…   ÚInt64rù   r&  r(  ÚFloat64TFÚbooleanrÅ   rÈ   Ústringé   g      @z
2019-12-31r’   )
rÅ   rÈ   rï   rð   rñ   rq   ÚgÚhÚiÚjÚtest©r|   rB   ©r|   Údtype_backendÚpyarrowr   )ÚArrowExtensionArray)Úfrom_pandasrG  Úus)rF   rH  r÷   rø   )r&   Úskipr   r   rW   ÚNAÚ	Timestampr”   Úensure_cleanÚto_excelrV   rM  Úpandas.arraysrN  r¹   ÚarrayÚ	_pa_arrayÚcastÚ	timestampr@   r6  r•   )r[   r!   rL  r    ÚdfÚ	file_pathrr   ÚparN  ÚcolrE   rF   s               r"   Útest_dtype_backendzTestReaders.test_dtype_backendP  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=  r>  r?  r*  r&  ©rÅ   rÈ   rI  FrJ  Únumpy_nullabler.  )r|   rL  rú   )r&   rQ  r   rá   râ   r”   rT  rU  rW   rV   r•   )r[   r!   r[  r\  rr   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c           
     óØ  — |dv rt        j                  d|› 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 «       t	        t        ddgt        j                  |«      ¬«      t        dd gt        j                  |«      ¬«      d	œ«      }t        j                  |d¬«       d d d «       y # 1 sw Y   ŒxxY w# 1 sw Y   y xY w)Nr=  r>  r?  zmode.string_storagerÅ   rÈ   rù   rÆ   ra  rI  FrJ  rb  rK  )Úcheck_column_type)r&   rQ  rW   Úoption_contextr   rá   rW  Úobject_rR  r”   rT  rU  rV   r   ÚStringDtyper•   )r[   r!   Ústring_storager[  r\  rr   rE   s          r"   Útest_dtype_backend_stringz%TestReaders.test_dtype_backend_string�  s0  € àÐ(Ñ(Ü�K‰KÐ3°H°:¸QÐ?Ô@ä×ÑÐ4°nÓEñ 	MÜäŸ™ 3¨ *´B·J±JÔ?ÜŸ™ 3¬¯© ,´b·j±jÔAñóˆBô —‘ Ó*ð ¨iØ—‘˜I°&À�ÔFÜŸ™Ø¨&Ð@Pô�÷ô !ä  c 
´"·.±.ÀÓ2PÔQÜ  d ´2·>±>À.Ó3QÔRñóˆHô ×!Ñ! &¨(ÀeÕL÷-	Mð 	M÷ð ú÷	Mð 	Mús%   ´A<E Â0-EÃA.E ÅE	ÅE Å E)zdtypes, exp_valuerm   úa.1r5  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ù   rm   )rÅ   rk  zdtype dict changed)Úobjectr  rW   rV   r   r   r”   r•   )	r[   r!   ÚdtypesÚ	exp_valuer
  Ú
dtype_dictÚdtype_dict_copyrr   rE   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  rE   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&   rQ  rW   rV   r”   r•   )r[   r    r!   r
  rE   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)rW   rV   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×   )rW   rV   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´   )rW   rV   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×   )rW   rV   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   rW   rV   r”   r•   )r[   r!   rE   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\)$ry   r‹  rm   )Úheaderr|   rk   c                ó   — ddz  S )Nrm   r   r1   r  s    r"   r  zHTestReaders.test_exception_message_includes_sheet_name.<locals>.<lambda>  s
   € ÀÀAÁ€ r$   )r‡   r|   )r&   r€   rŒ   rW   rV   Ú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 openpyxlrI   )r   r   z)Defaults to openpyxl, maybe not supportedÚtestdateoverflow)rN   r   rW   rS  rK   r&   rL   rM   rV   r”   r•   )r[   r-   r    r!   rE   rr   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 ©Nrk   r{   r   r¨   )r9   r|   r“   )
r[   r-   r!   r    r=   Úfilenamer|   rE   r–   r—   s
             r"   Útest_sheet_namezTestReaders.test_sheet_name1  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)Nrk   r{   r   r¨   rl   )rW   rV   ro   r”   r•   )r[   r!   ÚpthrE   rq   r  s         r"   Útest_excel_read_bufferz"TestReaders.test_excel_read_bufferB  s`   € Ø˜Ñ ˆÜ—=‘= °ÀQÔGˆÜ�#�t‹_ð 	4 Ü—]‘] 1°ÀQÔGˆFÜ×!Ñ! (¨FÔ3÷	4÷ 	4ñ 	4ús   ª/A"Á"A+c                ó–   — d}t        j                  t        d¬«      5  t        j                  d|¬«       d d d «       y # 1 sw Y   y xY w)Nru   zUnknown engine: foory   r  rT   r‹   )r[   Ú
bad_engines     r"   Útest_bad_engine_raisesz"TestReaders.test_bad_engine_raisesI  s9   € Øˆ
Ü�]‰]œ:Ð-BÔCñ 	1Ü�M‰M˜" ZÕ0÷	1÷ 	1ñ 	1ús	   ž?¿A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 foundry   rŽ  r×   r‹   )r[   r!   r|   r‚   s       r"   Útest_bad_sheetname_raisesz%TestReaders.test_bad_sheetname_raisesN  sD   € ð PˆÜ�]‰]œ:¨SÔ1ñ 	EÜ�M‰M˜' HÑ,¸ÕD÷	E÷ 	Eñ 	Eúó   žAÁAc                ó¾   — d|› �}dj                  g d¢«      }t        j                  t        |¬«      5  t	        j
                  |«       d d d «       y # 1 sw Y   y xY w)Nru   ú|)z(No such file or directoryu   æ²¡æœ‰é‚£ä¸ªæ–‡ä»¶æˆ–ç›®å½•zFile o directory non esistente)ry   )Újoinr&   r€   ÚFileNotFoundErrorrW   rV   )r[   r!   Úbad_filerz   s       r"   Útest_missing_file_raisesz$TestReaders.test_missing_file_raisesX  sS   € Ø˜˜
Ð#ˆà—‘òó
ˆô �]‰]Ô,°EÔ:ñ 	$Ü�M‰M˜(Ô#÷	$÷ 	$ñ 	$ús   ´AÁAc                ó  — d}|€	t         }d}n(|dk(  rddlm} |}d}n|dk(  rddlm} |}d	}nt
        }d
}t        j                  ||¬«      5  t        j                  t        |«      «       d d d «       y # 1 sw Y   y xY w)Ns   foozLExcel file format cannot be determined, you must specify an engine manually.r   r   )Ú	XLRDErrorzFUnsupported format, or corrupt file: Expected BOF record; found b'foo'r   ©ÚCalamineErrorzCannot detect file formatzFile is not a zip filery   )rŒ   r   r´  r   r¶  r
   r&   r€   rW   rV   r   )r[   r    Ú
bad_streamÚerrorr‚   r´  r¶  s          r"   Útest_corrupt_bytes_raisesz%TestReaders.test_corrupt_bytes_raisese  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)Nrk   rl   )Úcontent)ro   Úserve_contentÚreadrW   rV   Úurlr”   r•   )r[   Ú
httpserverr!   rq   Ú	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)Nrk   rl   ©ÚKeyÚBodyús3://ú/test1)Ústorage_options)ro   Ú
put_objectrC   rW   rV   r”   r•   )r[   r!   Ús3_public_bucketÚs3sorq   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)Nrk   rl   rÄ  r   rÇ  rÈ  r1   )	ro   rÊ  Ús3fsÚS3FileSystemrC   rW   rV   r”   r•   )	r[   r!   rË  rÌ  rq   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)Nr5   r6   rU   rk   zfile://localhost/ú zfailing on )ÚosÚpathr¯  rW   rV   r	   ÚplatformÚunameÚstripr&   rQ  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§   )rW   rV   r   r”   r•   )r[   r!   Ústr_pathrE   Ú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   )Úlocalrk   r{   r¨   )	Úpy.pathrâ  rÕ  rÖ  r¯  rW   rV   r”   r•   )r[   r!   Ú	LocalPathrÞ  rE   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)Nrk   rl   r{   r   r¨   )rÕ  rÖ  r¯  ro   rW   rV   r½  )r[   r!   rÞ  rq   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)rI   ÚTimerm   r’   r…   é-   é8   i † rí   é   é1   i@ rD  é   é*   ià“ é   é9   é#   i€ é	   é)   é   i ¡ é   é   é   iÀ'	 rö   i`®
 é5   i 5 é   é%   r   i » é   é   é6   Ú
times_1900r{   r×   Ú
times_1904)rN   rK   r&   rL   rM   r   r  r   rW   rV   r”   r•   )r[   r-   r    r!   rE   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 )*Nru   ÚbarrÅ   rÈ   Útestmultiindexrm   r&  ú
2015-01-01Tr’   r'  ú
2015-01-02Fr…   r(  ú
2015-01-03rí   r)  ú
2015-01-04rÌ   r÷   rø   Ú	mi_columnr   )r|   r•  r9   r-  Úmi_indexr¨   Úboth©r|   r9   r•  Úilvl1Úilvl2Úmi_index_nameÚc1Úc2Úmi_column_name)ÚlevelÚname_with_intÚ	both_nameÚboth_name_skiprows)r|   r9   r•  rŠ   )rN   r@   r   Úfrom_productr   rW   rS  r6  rV   r”   r•   rB   r¹   Ú	set_namesr‚  r£   Ú
set_levels)	r[   r-   r    r!   rF   ÚmiÚmi_filerE   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  ru   r  rÅ   rÈ   r  r  ©rÀ   rm   r&  r  Tr’   r'  r  Fr…   r(  r  rí   r)  r  )ru   ru   r  r  r  r  r¸   r÷   rø   r   r  )rN   r   r  r@   r   rW   rS  Úfrom_arraysr6  rV   r”   r•   )r[   r-   r    r!   r|   Úidx_lvl2r  r  rF   rE   rr   s              r"   Ú+test_read_excel_multiindex_blank_after_namez7TestReaders.test_read_excel_multiindex_blank_after_nameN  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   rm   ©r|   r•  ©r›   r�   ©ÚkeyÚvalr$  r’   rÌ   )rW   rV   r   r  r   r”   r•   )r[   r!   r  rr   Úexp_columnsrE   s         r"   Ú&test_read_excel_multiindex_header_onlyz2TestReaders.test_read_excel_multiindex_header_onlyv  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   rm   r’   r…   rí   rî   r½   r·   ©rB   r¹   Úsingle_namesr   r¨   Úmulti_namesrm   )rN  rO  rP  rQ  rR  )rT  rU  rV  rW  rX  )r   rm   r’   r…   rí   Úsingle_no_namesÚmulti_no_names)rá   rW  râ   rn  r   r   r   rW   rV   r”   r•   rB   )	r[   r!   r¡  r6   r¹   r  ÚsirE   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)TFry   rk   ©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Š   rm   r&  r  Tr'  r  Fr…   r(  r  rí   r)  r  r-  rÌ   rï   r÷   rø   c                ó
   — | dv S ©N)r   r’   r1   r  s    r"   r  z6TestReaders.test_read_excel_skiprows.<locals>.<lambda>ñ  s
   € ˜q F˜{€ r$   )r|   rŠ   rÀ   )rN   r@   rW   rV   r   rS  r6  r”   r•   rá   rW  ©r[   r-   r    r!   rF   r  rE   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 )Nre  rf  c                ó
   — | dvS )N)rm   r…   rî   r1   r  s    r"   r  zFTestReaders.test_read_excel_skiprows_callable_not_in.<locals>.<lambda>  s   € ˜q¨	Ð1€ r$   rg  rm   r&  r  Tr…   r(  r  Fr-  rÌ   rï   r÷   rø   )	rN   r@   rW   rV   r   rS  r6  r”   r•   rj  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î   rk   ©Únrowsr:  )r[   r!   Únum_rows_to_pullr  rE   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 )Nrk   rò   rp  )rW   rV   r¤   r”   r•   )r[   r!   rE   Únum_records_in_filerr  r  s         r"   Ú0test_read_excel_nrows_greater_than_nrows_in_filez<TestReaders.test_read_excel_nrows_greater_than_nrows_in_file%  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 >=0ry   rk   r  rp  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  re  rf  c                ó
   — | dv S ri  r1   r  s    r"   r  zTestReaders.<lambda>;  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•  r9   rŠ   Nr…   )r|   r•  r9   rŠ   rq  )rW   rV   ré   r”   r•   )	r[   r!   r¡  r|   r•  r9   rŠ   rE   r  s	            r"   Útest_read_excel_nrows_paramsz(TestReaders.test_read_excel_nrows_params3  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 argumentsry   rk   r{   r   r±   r˜  s     r"   Útest_deprecated_kwargsz"TestReaders.test_deprecated_kwargsW  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(  ©rm   r’   r€  )r   rm   r   )r’   r…   rY  r%  r   rm   r  )r   Úfrom_tuplesr   rW   rV   r”   r•   )r[   r!   Ú	file_namer6   ÚidxrE   rr   s          r"   Ú"test_no_header_with_list_index_colz.TestReaders.test_no_header_with_list_index_col[  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      à?rm   r’   ÚnumbersrÌ   )rá   râ   r   rW   rV   r”   r•   )r[   r!   r‚  r6   rE   rr   s         r"   Útest_one_col_noskip_blank_linez*TestReaders.test_one_col_noskip_blank_lineh  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�   rm   r…   r’   rí   rÌ   Úmi_column_empty_rowsr   r&  )	r   r�  rá   râ   r   rW   rV   r”   r•   )r[   r!   r‚  r¹   r6   rE   rr   s          r"   Ú test_multiheader_two_blank_linesz,TestReaders.test_multiheader_two_blank_linesp  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)rW   rV   Úshape)r[   r!   r‚  rr   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 worksheetsrI   z"Worksheet named 'Chart1' not foundry   Ú
chartsheetÚChart1r×   ©	r&   rQ  rK   rL   rM   r€   rŒ   rW   rV   ©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’  rI   z0Worksheet index 1 is invalid, 1 worksheets foundry   r“  rm   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ú,rm   )ÚdecimalrŠ   )rm   gAñcÌ�Ä—@gÕ	h¢ïÖAÚABCÚpoig2Ø[j‡ô@)r’   gHáz®G^@g{®GáÍ@ÚDEFÚuytg¥Uq&Ø?)r…   g%�•Cq‹@gçû©ñÖ^ú@ÚGHIÚrezgÈ)¬ç³â@)ÚIdÚNumber1ÚNumber2ÚText1ÚText2ÚNumber3rÌ   rÜ   rº   s       r"   Útest_euro_decimal_formatz$TestReaders.test_euro_decimal_format   sJ   € ä—‘˜~°Ñ8À#ÐPQÔRˆÜâFÚ@ÚCðò
 Nô
ˆô 	×Ñ˜f hÕ/r$   )YÚ__name__Ú
__module__Ú__qualname__r&   Úfixturer^   rs   rƒ   rŽ   r˜   r�   rL   ÚparametrizerŸ   r¥   rª   r¬   r®   r²   r»   rÁ   rÎ   rÑ   rÔ   rÞ   rã   rê   r  r!  r7  r   rá   râ   r	  r   r;  r_  rc  rj  rs  rw  rz  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_  rc  rk  rn  rs  rv  rx  r{  r}  r„  rˆ  r‹  r�  r—  rš  r«  r1   r$   r"   rP   rP   ™   s  „ Ø€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Ù#Ò$@ÈÔNÙ# S¨#¨r¯v©v°sÐ$;À5ÔIñ	óð
ð	
óñ60ó7ð60ò.0ò`*ò Mð: ‡[�[×ÑÐ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$   rP   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)rz   Úraise_on_extra_warningsrk   rl   rT   )r”   Úassert_produces_warningÚFutureWarningro   rW   rV   r½  )r[   r    r!   r‚   rq   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;TrQ   c                óš   — t        t        j                  |¬«      }|j                   |ddd«      «       |j	                  t        d|«       y)zH
        Change directory and set engine for ExcelFile objects.
        rT   r5   r6   rU   rn   N)r   rW   rn   rX   rY   rZ   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   re   rk   rm   )rW   rn   r    )r[   r!   r    rp   rU   rr   rE   s          r"   rs   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_valuesrR  rm   ÚrabbitrÚ   rÌ   TÚtest5ú1.#QNANrâ   )rW   rn   rV   r   rá   râ   r”   r•   )r[   r!   rU   rÝ   rE   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É  rm   râ   rÇ  rÚ   rÌ   )rW   rn   rV   rá   râ   r   r”   r•   )r[   r!   rË  rb   rU   rÝ   rE   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)Nrk   r   r¨   rm   rå   )r9   )rŠ   r9   ræ   rè   )r9   rç   )	rN   rG   rW   rn   rV   r”   r•   rd   ré   )
r[   r-   r    r!   r=   rE   rU   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   )rN   rG   rW   rn   rd   r”   r•   )r[   r-   r    r!   r=   rE   r¡  r|   rU   Ú	df1_parseÚ	df2_parses              r"   r¢  z!TestExcelFileRead.test_sheet_name2  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Œ   rW   rn   rd   )r[   r!   r|   r‚   rU   s        r"   r«  z+TestExcelFileRead.test_bad_sheetname_raisesD  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)Nrk   r{   r   ©r|   r9   r    rl   r¨   )rW   rV   ro   rn   r”   r•   )r[   r    r!   r¤  rE   rq   ri   r  s           r"   r¥  z(TestExcelFileRead.test_excel_read_bufferO  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)Nrk   rl   r{   r   rÕ  )ro   rW   rn   rV   Úclosed)r[   r    r!   rq   rf   s        r"   Útest_reader_closes_filez)TestExcelFileRead.test_reader_closes_fileY  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 ExcelFilerk   ry   ru   rT   )rW   rn   r&   r€   rŒ   rV   )r[   r!   r‚   Úxls       r"   Útest_conflicting_excel_enginesz0TestExcelFileRead.test_conflicting_excel_enginesa  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)Nrk   rT   rl   )rW   rV   ro   r½  r   r”   r•   )r[   r    r!   rE   rq   r6   r  s          r"   Útest_excel_read_binaryz(TestExcelFileRead.test_excel_read_binaryi  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)Nrk   rl   rT   )ro   rW   rV   r”   r•   )r[   r!   r    rq   rr   rE   s         r"   Ú%test_excel_read_binary_via_read_excelz7TestExcelFileRead.test_excel_read_binary_via_read_excels  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.xlsxrl   zexceeds maximumry   r   rm   ra  )ro   r&   r€   rŒ   rW   rV   )r[   r    rq   s      r"   Ú)test_read_excel_header_index_out_of_rangez;TestExcelFileRead.test_read_excel_header_index_out_of_rangez  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   rm   r…   r5  )rB   r¹   rú   r{   r   r  )r   r   r�  r   rW   rV   r”   r•   )r[   r¡  rƒ  ÚcolsrE   rr   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   rm   )r•  r9   r    z
2020-02-29z
2020-03-01r÷   rø   rù   r   rY  )rN   rW   rn   rV   r@   ÚDatetimeIndexr   r!  Úto_pydatetimer   r”   r•   )r[   r-   r    r!   rq   rU   r  rF   ÚdtiÚexpected_column_indexrE   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 *ry   zio.excelz.readerÚabc)r&   r€   rŒ   rW   rf  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’  rI   r“  r{   )r&   rQ  rK   rL   rM   rW   rn   Úsheet_names)r[   r-   r    r!   rU   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)ÚencodingFrT   )r
   r&   rQ  r   Úbiffhr´  r   r¶  r”   rT  r   Ú
write_textr¼  rW   rn   )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^   rs   rÊ  rL   r°  rÍ  rÏ  r¢  r«  r¥  rØ  rÛ  rÝ  rß  rá  rè  rï  rò  rõ  rý  r1   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	  )rE   r   r!   r	  r    r	  rþ  ÚNone)8Ú
__future__r   r   r   Ú	functoolsr   r5   r   rÕ  Úpathlibr   r×  r~   Úurllib.errorr	   Úzipfiler
   Únumpyrá   r&   Úpandas.compatr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsr´  ÚpandasrW   r   r   r   r   r   Úpandas._testingÚ_testingr”   rL   r³  Ú
pytestmarkÚread_ext_paramsr'   r·  Úengine_paramsr#   r)   r¯  r	  r.   r    r!   r=   r@   rG   rN   rP   r¹  )ÚengÚexts   00r"   ú<module>r     s  ðÝ "÷õ Ý Û 	Ý Û Û 	Ý !Ý ã Û å -ß )Ð )ã ÷õ õ áÔØ—‘×'Ñ'€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ò
÷R0ñ R0÷j(Yò Yùó]*s   Å8 G>
