Ë
    u™ãjU ã                  óP  — d dl mZ d dlmZmZ d dlmZ d dlmZ d dlZd dl	m
Z
 d dlZd dlZd dlmZ d dlZd dlmZ d dlZd dlZd d	lmZ d dlmc mZ d dlZd dlmZ d dl mc m!c m"Z# g d
¢Z$ ejJ                  d ejL                  d«      ejN                  jQ                  d«      g¬«       ejJ                  d ejL                  d«      g¬«       ejJ                  d ejL                  d«      ejN                  jQ                  d«      ejN                  jQ                  d«      g¬«       ejJ                  d ejL                  d«      ejN                  jQ                  d«      g¬«       ejJ                  d ejL                  d«      ¬«       ejJ                  d ejL                  d«      ¬«      gZ)d6d„Z*d„ Z+ ejX                  e)D � �cg c]  } e$D ]  } e*| |«      r	 e+| |«      ‘Œ Œ c}} e-¬«      d„ «       Z.ejX                  d„ «       Z/ejX                  d„ «       Z0ejX                  d„ «       Z1ejX                  d„ «       Z2d7d„Z3d8d„Z4d„ Z5 ejL                  d«       ejL                  d«      ejN                  jm                  d d!d"g«      d#„ «       «       «       Z7 G d$„ d%«      Z8 G d&„ d'«      Z9 ejL                  d«      d(„ «       Z:ejN                  jQ                  d)«      ejN                  jm                  d*ddd+d,„ fddd-d.„ fdd/d0d1„ fddd2d3„ fddd-d4„ fg«      d5„ «       «       Z;yc c}} w )9é    )Úannotations)ÚdatetimeÚtime)Úpartial)ÚBytesION)ÚPath)ÚURLError)Ú
BadZipFile)ÚPandas4Warning)ú.xlsú.xlsxú.xlsmú.xlsbú.odsÚxlrdzAignore:The xlrd engine is deprecated:pandas.errors.Pandas4Warning©ÚmarksÚopenpyxlúBignore:The default engine for reading:pandas.errors.Pandas4WarningÚpyxlsbzCignore:The pyxlsb engine is deprecated:pandas.errors.Pandas4WarningÚ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     úm/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/io/excel/test_readers.pyÚ_is_valid_engine_ext_pairr   J   s‚   € ð
 �]‰]˜1Ñ€FØ�Ò ¨FÒ 2ØØ�‚˜8 vÒ-ØØ�6Ò˜fÐ,?Ñ?ØØ�Ò˜h¨'Ò1ØØ�7Ò˜vÐ-CÑCØØ�Ò˜H¨Ò.ØØó    c                ój   — g | j                   ¢|‘­}t        j                  || j                  ¬«      }|S )z�
    engine gives us a pytest.param object with some marks, read_ext is just
    a string.  We need to generate a new pytest.param inheriting the marks.
    r   )r   ÚpytestÚparamr   )r   r   r   Ú	new_params       r   Ú_transfer_marksr%   _   s1   € ð
 (ˆv�}‰}Ð'˜hÑ'€FÜ—‘˜V¨6¯<©<Ô8€IØÐr    )ÚparamsÚidsc                ó   — | j                   S )zS
    Fixture for Excel reader engine and read_ext, only including valid pairs.
    )r#   )Úrequests    r   Úengine_and_read_extr*   i   s   € ð �=‰=Ðr    c                ó   — | \  }}|S ©N© ©r*   r   r   s      r   r   r   y   s   € à*Ñ€FˆHØ€Mr    c                ó   — | \  }}|S r,   r-   r.   s      r   r   r      s   € à*Ñ€FˆHØ€Or    c                ón   — |t        j                  «       › | › �z  }|j                  «        t        |«      S r,   )ÚuuidÚuuid4ÚtouchÚstr)r   Útmp_pathÚtmps      r   Ú	tmp_excelr7   …   s-   € à
œŸ
™
›�~ h ZÐ0Ñ
0€CØ‡I�I„KÜˆs‹8€Or    c                óN   —  | dddd«      }t        j                  |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   )ÚpdÚread_csv)ÚdatapathÚfilepathÚdf_refs      r   rC   rC   Œ   s-   € ñ
 ˜˜f e¨[Ó9€HÜ�[‰[˜¨Q¸DÈÔR€FØ€Mr    c                 ó   — y)NÚusr-   )r   r   s     r   Úget_exp_unitrF   –   s   € Ør    c                ó~   — d | j                   _        t        ||«      }| j                   j                  |«      | _         y r,   )ÚindexÚnamerF   Úas_unit)Úexpectedr   r   Úunits       r   Úadjust_expectedrM   š   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_pyxlsbrT   ¡   s7   € Ø�ÒØ×ÑÜ�K‰K×ÑØLð ó õ	
ð r    ÚextÚxlsxÚxlsmc                ó  —  | dddd|› �«      }d}t        j                  t        |¬«      5  t        j                  |«       d d d «       dD ]7  }t        j                  d «      5  t        j                  ||¬«       d d d «       Œ9 t        j
                  d	d
«      5  t        j                  d «      5  t        j                  |«       d d d «       d d d «       y # 1 sw Y   Œ˜xY w# 1 sw Y   Œ¢xY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)Nr9   r:   Úexcelztest1.z7The default engine for reading 'xlsx' files will change©Úmatch)r   r   ©r   zio.excel.xlsx.readerr   )ÚtmÚassert_produces_warningr   r?   Ú
read_excelÚoption_context)rA   rU   ÚpathÚmsgr   s        r   Ú)test_read_excel_default_engine_deprecatedrc   ª   só   € ñ �D˜& '¨V°C°5¨>Ó:€Dà
C€CÜ	×	#Ñ	#¤N¸#Ô	>ñ Ü
�‰�dÔ÷ð +ò /ˆÜ×'Ñ'¨Ó-ñ 	/Ü�M‰M˜$ vÕ.÷	/ð 	/ð/ô
 
×	Ñ	Ð1°:Ó	>ñ  Ü×'Ñ'¨Ó-ñ 	 Ü�M‰M˜$Ô÷	 ÷ ð  ÷ð ú÷
	/ð 	/ú÷
	 ð 	 ú÷ ð  ús;   ¬CÁ$C%ÂC=Â2C1ÃC=ÃC"Ã%C.	Ã1C:	Ã6C=Ã=Dc                  óÖ  — e Zd Zej                  j                  dg d¢dgddgg«      d„ «       Zd„ Zd„ Z ej                  d¬«      d	„ «       Z
d
„ Zd„ Zd„ Zd„ Zd„ Zej                  j                  dg d¢g d¢g d¢g d¢g d¢g d¢g«      d„ «       Zej                  j                  dddgddgg«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                  j                  d d!d"g«      d#„ «       Zd$„ Zd%„ Zd&„ Zd'„ Zd(„ Zd)„ Zd*„ Zd+„ Z ej                  j                  d,d!g d-¢g d.¢g d-¢d/d0e!jD                  d1gd2œfd3d4e#e#d2œ e$jJ                  g d-¢d3¬5«       e$jJ                  g d.¢d4¬5«       e$jJ                  g d6¢d7¬5«       e$jJ                  d8d9e!jD                  d:gd7¬5«      d2œfg«      d;„ «       Z&d<„ Z'd=„ Z(d>„ Z)d?„ Z*d@„ Z+ej                  j                  dAi dBfdCdDidBfg«      dE„ «       Z,dF„ Z-ej                  j                  dGdH e$j\                  dIdJgi«      fdK e$j\                  dLg¬M«      fg«      dN„ «       Z/dO„ Z0dP„ Z1dQ„ Z2dR„ Z3dS„ Z4dT„ Z5dU„ Z6dV„ Z7dW„ Z8dX„ Z9ej                  j                  dYdZd[dZgdZd[gd\d]d\gd\d]gg«      d^„ «       Z:d_„ Z;d`„ Z<ej                  jz                  ej                  j|                  da„ «       «       Z?ej                  j|                  db„ «       Z@ej                  j|                  dc„ «       ZAej                  j„                  dd„ «       ZCde„ ZDdf„ ZEdg„ ZFdh„ ZGej                  j                  didje!jD                  dkdldkgfdme!jD                  gdnz  fg«      do„ «       ZHdp„ ZIdq„ ZJdr„ ZKds„ ZLdt„ ZMdu„ ZNdv„ ZOdw„ ZPdx„ ZQej                  j                  dydzd{d[dBgd[d!fdzd|d!d[dBgd!fdzd}d[dBgd[dBgd!fdzd~d[dBgd[d!fdd€d!d!d[d"gfdd€d!d!d�„ fg«      d‚„ «       ZRdƒ„ ZSd„„ ZTd…„ ZUd†„ ZVd‡„ ZWdˆ„ ZXd‰„ ZYdŠ„ ZZy!)‹ÚTestReadersÚcol)TNFTFc                óô   — |dv rt        j                  d|› d�«       t        j                  d|id¬«      }|j	                  |d¬«       t        j
                  |ddi¬«      }t        j                  ||«       y )	N©r   r   úNo engine for filetype: 'ú'Úbool_columnÚboolean©ÚdtypeF©rH   )r"   Úskipr?   Ú	DataFrameÚto_excelr_   r]   Úassert_frame_equal)Úselfrf   r7   r   ÚdfÚdf2s         r   Útest_read_excel_type_checkz&TestReaders.test_read_excel_type_checkÂ   sm   € ð Ð(Ñ(Ü�K‰KÐ3°H°:¸QÐ?Ô@Ü�\‰\˜=¨#Ð.°iÔ@ˆØ
�‰�I UˆÔ+Ü�m‰m˜I¨m¸YÐ-GÔHˆÜ
×Ñ˜b #Õ&r    c                óJ  — |dv rt        j                  d|› d�«       t        j                  ddgddgddgddgddgddgdœt        ¬	«      }|j                  |d¬
«       t        j                  |t        ¬	«      }t        j                  ||«       |j                  «       D ]�  \  }}|j                  D ]m  }||   }|j                  |   |   }	||	k(  sJ d|› d|› d|› d|	› �«       ‚t        |«      t        |	«      k(  rŒJJ d|› d|› dt        |«      › dt        |	«      › �«       ‚ Œƒ y )Nrh   ri   rj   Té   Fr   )ÚaÚbÚcÚdÚeÚfrm   ro   zMismatch at Row z Column z: z != zType mismatch at Row )r"   rp   r?   rq   Úobjectrr   r_   r]   rs   ÚiterrowsÚcolumnsÚilocÚtype)
rt   r7   r   Údf1rv   ÚidxÚrowrf   ÚvalÚexp_vals
             r   Ú'test_read_excel_int_bool_mix_type_checkz3TestReaders.test_read_excel_int_bool_mix_type_checkÌ   sQ  € àÐ(Ñ(Ü�K‰KÐ3°H°:¸QÐ?Ô@ä�l‰là˜D�\Ø˜�YØ˜A�YØ˜Q�ZØ˜�ZØ˜U�^ñô ô

ˆð 	�‰�Y eˆÔ,ä�m‰m˜I¬VÔ4ˆä
×Ñ˜c 3Ô'àŸ™›ò 	‰HˆC�Ø—{‘{ò �Ø˜#‘h�ØŸ(™( 3™-¨Ñ,�à˜g’~ð Ø& s e¨8°C°5¸¸3¸%¸tÀGÀ9ÐMó�~ô ˜C“y¤D¨£MÓ1ð Ø+¨C¨5°¸¸¸RÜ˜C“y�k ¤d¨7£m _ð6óÐ1ññ	r    c           	     ó  —  |dddd«      }t        j                  |d¬«      5 }t        j                  |ddg d	¢d
d¬«      }d d d «       t        j                  dg d¢id
¬«      }t	        j
                  |«       y # 1 sw Y   Œ;xY w)Nr9   r:   rY   ztest_none_type.xlsxr   r\   ÚSheet1T)ÚnanÚNoneÚabcdrl   )Ú
sheet_nameÚkeep_default_naÚ	na_valuesrn   r   ÚTest)TNFNFNTrm   )r?   Ú	ExcelFiler_   rq   r]   rs   )rt   rA   Úf_pathrY   ÚparsedrK   s         r   Útest_pass_none_typezTestReaders.test_pass_none_typeð   s†   € á˜$ ¨Ð1FÓGˆä�\‰\˜&¨Ô4ð 	¸Ü—]‘]ØØ#Ø $Ú1ØØ!ôˆF÷	ô —<‘<ØÒAÐBØô
ˆô
 	×Ñ˜f hÕ/÷	ð 	ús   £A;Á;B©Úautousec                óš   — t        t        j                  |¬«      }|j                   |ddd«      «       |j	                  t        d|«       y)zG
        Change directory and set engine for read_excel calls.
        r\   r9   r:   rY   r_   N)r   r?   r_   ÚchdirÚsetattr©rt   r   rA   ÚmonkeypatchÚfuncs        r   Úcd_and_set_enginezTestReaders.cd_and_set_engine  s=   € ô
 ”r—}‘}¨VÔ4ˆØ×Ñ™( 4¨°Ó9Ô:Ø×ÑœB ¨dÕ3r    c                óô   — ddddddœ}t        d|z   d«      5 }t        j                  ||¬«      5 }|j                  }d d d «       d d d «       |�|}n||d	d     }|k(  sJ ‚y # 1 sw Y   Œ&xY w# 1 sw Y   Œ*xY w)
Nr   r   r   r   ©rV   rW   ÚxlsbÚxlsÚodsÚtest1Úrbr\   ry   )Úopenr?   r”   r   )rt   r   r   Úexpected_defaultsr   Ú
excel_fileÚresultrK   s           r   Útest_engine_usedzTestReaders.test_engine_used  sž   € ð ØØØØñ
Ðô �'˜HÑ$ dÓ+ð 	+¨qÜ—‘˜a¨Ô/ð +°:Ø#×*Ñ*�÷+÷	+ð ÐØ‰Hà(¨°!°"¨Ñ6ˆHØ˜Ò!Ð!Ñ!÷+ð +ú÷	+ð 	+ús!   ˜A.°A"½A.Á"A+	Á'A.Á.A7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Úfoor�   é{   ÚTrueTr¢   >   r   r   z8open_workbook() got an unexpected keyword argument 'foo'r   z/load() got an unexpected keyword argument 'foo'z8load_workbook() got an unexpected keyword argument 'foo'rZ   r¦   rŒ   r   ry   )r�   r=   Úengine_kwargs)ÚreÚescaper"   ÚraisesÚ	TypeErrorr?   r_   )rt   r   r   r©   rb   s        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`rZ   r¦   rŒ   r   é   ©r�   r=   ÚusecolsÚSheet2ry   ©r�   Úskiprowsr=   rº   ©r"   r´   Ú
ValueErrorr?   r_   ©rt   r   rb   s      r   Útest_usecols_intzTestReaders.test_usecols_int;  s�   € à0ˆÜ�]‰]œ:¨SÔ1ñ 	Ü�M‰MØ˜(Ñ"¨xÀ1Èaõ÷	ô �]‰]œ:¨SÔ1ñ 	Ü�M‰MØ˜(Ñ"Ø#Ø˜ØØõ÷	ð 	÷	ð 	ú÷	ð 	ús   žBÁBÂBÂBc                ó  — t        ||«       |ddg   }t        |||«       t        j                  d|z   ddg d¢¬«      }t        j                  d|z   dd	gdg d¢¬
«      }t	        j
                  ||«       t	        j
                  ||«       y )NÚBÚCr¦   rŒ   r   )r   é   r¸   r¹   r»   ry   r¼   ©rT   rM   r?   r_   r]   rs   )rt   r)   r   r   rC   rK   r…   rv   s           r   Útest_usecols_listzTestReaders.test_usecols_listM  sŠ   € Ü# F¨GÔ4à˜3 ˜*Ñ%ˆÜ˜ (¨FÔ3ä�m‰mØ�hÑ¨8¸qÊ)ô
ˆô �m‰mØ�hÑØØ�SØÚô
ˆô 	×Ñ˜c 8Ô,Ü
×Ñ˜c 8Õ,r    c                óÐ  — t        ||«       |g d¢   }t        |||«       t        j                  d|z   ddd¬«      }t        j                  d|z   ddgdd¬	«      }t	        j
                  ||«       t	        j
                  ||«       |d
dg   }t        |||«       t        j                  d|z   ddd¬«      }t        j                  d|z   ddgdd¬	«      }t	        j
                  ||«       t	        j
                  ||«       t        j                  d|z   ddd¬«      }t        j                  d|z   ddgdd¬	«      }t	        j
                  ||«       t	        j
                  ||«       y )N©ÚArÃ   rÄ   r¦   rŒ   r   zA:Dr¹   r»   ry   r¼   rÃ   rÄ   zA,C,DzA,C:DrÆ   )rt   r)   r   r   rC   rK   rv   Údf3s           r   Útest_usecols_strzTestReaders.test_usecols_strb  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   ry   r¸   )r   r¸   ry   )ry   r   r¸   )ry   r¸   r   )r¸   r   ry   )r¸   ry   r   c                ó¨   — t        ||«       |ddg   }t        |||«       t        j                  d|z   dd|¬«      }t	        j
                  ||«       y )NrÊ   rÄ   r¦   rŒ   r   r¹   rÆ   )rt   r)   r   r   rº   rC   rK   r«   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Ï   r¦   rŒ   ©r�   rº   )ÚrangeÚlenrH   r?   r_   r]   rs   )rt   r   rº   rC   rK   r«   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 ©Nr¦   rŒ   r   ©r�   r=   rÆ   ©rt   r)   r   r   rC   rK   r«   s          r   Útest_read_excel_without_slicingz+TestReaders.test_read_excel_without_slicing­  sE   € Ü# F¨GÔ4àˆÜ˜ (¨FÔ3ä—‘˜w¨Ñ1¸hÐRSÔTˆÜ
×Ñ˜f hÕ/r    c                ó¨   — t        ||«       |ddg   }t        |||«       t        j                  d|z   ddd¬«      }t	        j
                  ||«       y )NrÄ   rÏ   r¦   rŒ   r   zA,D:Er¹   rÆ   rØ   s          r   Útest_usecols_excel_range_strz(TestReaders.test_usecols_excel_range_str¶  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: E1rZ   r¦   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 strrZ   r¦   rŒ   rÊ   rÄ   r¹   ©r"   r´   rµ   r?   r_   rÀ   s      r   Útest_index_col_label_errorz&TestReaders.test_index_col_label_errorÇ  sM   € Ø8ˆä�]‰]œ9¨CÔ0ñ 	Ü�M‰MØ˜(Ñ"Ø#Ø˜%Ø˜c˜
õ	÷	÷ 	ñ 	ús   ž AÁAc                óÂ   — t        j                  d|z   dd¬«      }t        j                  g d¢t        j                  g d¬«      ¬«      }t	        j
                  ||«       y )Nr¦   ÚSheet3rÊ   r×   )rÃ   rÄ   rÏ   ÚEÚF©rI   ©r‚   rH   )r?   r_   rq   ÚIndexr]   rs   ©rt   r   r«   rK   s       r   Útest_index_col_strzTestReaders.test_index_col_strÒ  sJ   € ä—‘˜w¨Ñ1¸hÐRUÔVˆÜ—<‘<Ú-´R·X±X¸bÀsÔ5Kô
ˆô 	×Ñ˜f hÕ/r    c           	     óÜ   — t        j                  d|z   dg d¢¬«      }t        j                  g d¢t        j                  g gdz  g gdz  g d¢¬«      ¬«      }t	        j
                  ||«       y )	Nr¦   rã   rÉ   r×   )rÏ   rä   rå   r¸   ©ÚlevelsÚcodesÚnamesrç   )r?   r_   rq   Ú
MultiIndexr]   rs   ré   s       r   Útest_index_col_emptyz TestReaders.test_index_col_emptyÚ  s]   € ä—‘Ø�hÑ¨8ºô
ˆô —<‘<Ú#Ü—-‘-¨ t¨a¡x¸°t¸a±xÂÔWô
ˆô 	×Ñ˜f hÕ/r    r=   NrÅ   c                óä   — t        j                  d|z   d|¬«      }t        j                  g d¢g d¢gg d¢¬«      }|r|j                  |j                  |   «      }t        j                  ||«       y )Nr¦   ÚSheet4r×   )Úi1rz   Úx)Úi2r{   Úy)z
Unnamed: 0Úcol1Úcol2©r‚   )r?   r_   rq   Ú	set_indexr‚   r]   rs   )rt   r   r=   r«   rK   s        r   Útest_index_col_with_unnamedz'TestReaders.test_index_col_with_unnamedå  sj   € ô —‘Ø�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'\]rZ   r¦   rä   ©rº   r¾   rÀ   s      r   Ú%test_usecols_pass_non_existent_columnz1TestReaders.test_usecols_pass_non_existent_columnó  sF   € ðð 	ô �]‰]œ:¨SÔ1ñ 	=Ü�M‰M˜' HÑ,°s°eÕ<÷	=÷ 	=ñ 	=úrÞ   c                ó    — d}t        j                  t        |¬«      5  t        j                  d|z   ddg¬«       d d d «       y # 1 sw Y   y xY w)Nz['usecols' must either be list-like of all strings, all unicode, all integers or a callable.rZ   r¦   ÚE1r   rþ   r¾   rÀ   s      r   Útest_usecols_wrong_typez#TestReaders.test_usecols_wrong_typeý  sM   € ðDð 	ô
 �]‰]œ:¨SÔ1ñ 	AÜ�M‰M˜' HÑ,°t¸Q°iÕ@÷	A÷ 	Añ 	Aús   žAÁAc                óœ   — t        j                  d|z   d¬«      }t        j                  ddggddg¬«      }t        j                  ||«       y )	NÚtest2rŒ   ©r�   ÚaaaaÚbbbbbr“   ÚTest1rú   ©r?   r_   rq   r]   rs   )rt   r   r–   rK   s       r   Útest_excel_stop_iteratorz$TestReaders.test_excel_stop_iterator  sD   € Ü—‘˜w¨Ñ1¸hÔGˆÜ—<‘< &¨'Ð!2Ð 3¸fÀgÐ=NÔOˆÜ
×Ñ˜f hÕ/r    c                ó>  — t        ||«       |dk(  r4|dk(  r/|j                  t        j                  j	                  d¬«      «       t        j                  d|z   d¬«      }t        j                  t        j                  ggdg¬	«      }t        j                  ||«       y )
Nr   r   z+Calamine can't extract error from ods filesrO   Útest3rŒ   r  r“   rú   )rT   rQ   r"   rR   rS   r?   r_   rq   Únpr�   r]   rs   )rt   r)   r   r   r–   rK   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ˆÜ—<‘<¤"§&¡&  
°V°HÔ=ˆÜ
×Ñ˜f hÕ/r    c                ó€  — t        ||«       |}t        |||«       t        j                  d|z   dd¬«      }t        j                  d|z   ddgd¬«      }t	        j
                  ||«       t	        j
                  ||«       t        j                  d|z   ddd¬«      }t	        j
                  ||j                  d d	 «       y )
Nr¦   rŒ   r   r×   r»   ry   ©r�   r½   r=   ©r�   r=   Ú
skipfooteréÿÿÿÿ)rT   rM   r?   r_   r]   rs   rƒ   )	rt   r)   r   r   rC   rK   r…   rv   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                  j	                  g d¢g d¢g d¢g d¢g d¢t        j
                  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)ry   rÅ   éýÿÿÿé   r   )g      ô?g      @gHáz®Gý?g¸…ëQ¸þ?g•Ö&è.>)TFTTF)ry   rÅ   r¸   r  é   )rz   r¸   r|   r}   r~   iÝ  é
   é   é   iq  ry   é   é   iß  r¸   úM8[ú]rm   )ÚIntColÚFloatColÚBoolColÚStrColÚStr2ColÚDateColÚ
test_typesrŒ   r  g      @r$  r×   r#  ©r�   Ú
converters)rT   rF   r?   rq   Ú	from_dictrè   r   r_   r]   rs   ÚcopyÚlocrH   Ú	enumerater‚   rû   Úapplyr4   )rt   r)   r   r   rL   rK   ÚbasenameÚactualÚfloat_expectedÚicolrI   Úexps               r   Útest_reader_special_dtypesz&TestReaders.test_reader_special_dtypes+  sÂ  € Ü# F¨GÔ4ä˜H fÓ-ˆÜ—<‘<×)Ñ)â*ÚBÚ;Ú)Ú2ÜŸ8™8ä   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                  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)ry   rÅ   r  éüÿÿr   g      )@gÍÌÌÌÌL2@g3333333@g:Œ0âŽy5>)ÚFoundr7  r7  ú	Not foundr7  Ú1Ú3Ú4Ú5)r   r!  r"  r#  c                ó&   — | dk7  rt        | «      S dS )NÚ r6  )Úint©rõ   s    r   ú<lambda>z4TestReaders.test_reader_converters.<locals>.<lambda>j  s   € ¨!¨rª'¤ A£€ °u€ r    c                ó0   — | rd| z  S t         j                  S )Nr  )r  r�   r@  s    r   rA  z4TestReaders.test_reader_converters.<locals>.<lambda>k  s   € ©A " q¡&€ ´2·6±6€ r    c                ó   — | dk7  rdS dS )Nr>  r7  r8  r-   r@  s    r   rA  z4TestReaders.test_reader_converters.<locals>.<lambda>l  s   €  A¨¢G˜€ °€ r    c                ó    — | rt        | «      S dS )Nr>  )r4   r@  s    r   rA  z4TestReaders.test_reader_converters.<locals>.<lambda>m  s   € ¡1œ˜Q›€ ¨"€ r    )r   r!  rÅ   r¸   rŒ   r'  )r?   rq   r)  r  r�   r_   r]   rs   )rt   r   r.  rK   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        j                  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        j                  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©ry   rÅ   r¸   r  ©ç      @ç      @ç      @ç      @ç      ð?ç       @ç      @©rz   r{   r|   r}   Úfloat64Úfloat32©rz   r{   r|   rm   rz   r{   ©Ú001Ú002Ú003Ú004r4   r|   z(Unable to convert column d to type int64rZ   r}   Úint64)r?   r_   rq   r  r�   r]   rs   r4   ÚastypeÚSeriesr"   r´   r¿   )rt   r   r.  r/  rK   rb   s         r   Útest_reader_dtypezTestReaders.test_reader_dtypew  s  € àˆÜ—‘˜x¨(Ñ2Ó3ˆä—<‘<â!Ú)Ú!Ø˜3¤§¡¨Ð,ñ	ó
ˆô 	×Ñ˜f hÔ/ä—‘Ø�xÑ¨Y¸YÌSÑ'Qô
ˆð ! ™×,Ñ,¨YÓ7ˆ�‰Ø  ™×,Ñ,¨YÓ7ˆ�‰ÜŸ	™	Ò">ÀeÔLˆ�‰Ü
×Ñ˜f hÔ/à8ˆÜ�]‰]œ:¨SÔ1ñ 	EÜ�M‰M˜( XÑ-°c¸7°^ÕD÷	E÷ 	Eñ 	Eús   ÄD(Ä(D1zdtype,expectedrH  rI  rN  rO  rP  rQ  rR  rS  rm   rU  r4   r9  Ú2r;  c                ó’   — d}t        j                  ||z   |¬«      }t        j                  |«      }t        j                  ||«       y )NrG  rm   r	  )rt   r   rn   rK   r.  r/  s         r   Útest_reader_dtype_strz!TestReaders.test_reader_dtype_str”  s<   € ð2 ˆä—‘˜x¨(Ñ2¸%Ô@ˆÜ—<‘< Ó)ˆÜ
×Ñ˜f hÕ/r    c                óD  — |dv rt        j                  d|› d�«       t        j                  t        j                  ddgd¬«      t        j                  dd	gd
¬«      t        j                  ddgd¬«      t        j                  ddgd¬«      t        j                  t        j
                  dgd¬«      t        j                  t        j
                  dgd
¬«      t        j                  t        j
                  dgd¬«      t        j                  t        j
                  dgd¬«      t        j                  t        j                  d«      gdz  «      t        j                  t        j
                  t        j
                  gd¬«      dœ
«      }|j                  |dd¬«       t        j                  |d|¬«      }|dk(  �r dd l	}ddl
m} t        j                  |j                  D �	ci c]  }	|	 ||j                  ||	   d¬«      «      “Œ! c}	«      }
|
d   j                  t        j                  |j!                  «       «      «      |
d<   |
d   j                  t        j                  |j!                  «       «      «      |
d<    ||
d   j                  j"                  j%                  |j'                  d ¬!«      «      «      |
d<    ||j                  d d g«      «      |
d"<   n)|}
t)        ||«      }|
d   j                  d#|› d$�«      |
d<   t+        j,                  ||
«       y c c}	w )%Nrh   ri   rj   ry   r¸   ÚInt64rm   rJ  rL  ÚFloat64TFrl   rz   r{   Ústringé   g      @z
2019-12-31rÅ   )
rz   r{   r|   r}   r~   r   ÚgÚhÚiÚjÚtest©r�   rH   ©r�   Údtype_backendÚpyarrowr   )ÚArrowExtensionArray)Úfrom_pandasr}   rg  rh  rE   )rL   ri  r  r  )r"   rp   r?   rq   r\  ÚNAÚ	Timestamprr   r_   rn  Úpandas.arraysro  r‚   Úarrayr[  Ú
ArrowDtyperd  Ú	_pa_arrayÚcastÚ	timestamprF   r]   rs   )rt   r   rm  r   r7   ru   r«   Úparo  rf   rK   rL   s               r   Útest_dtype_backendzTestReaders.test_dtype_backend³  st  € àÐ(Ñ(Ü�K‰KÐ3°H°:¸QÐ?Ô@ä�\‰\ä—Y‘Y  1˜v¨WÔ5Ü—Y‘Y  S˜z°Ô;Ü—Y‘Y  e˜}°IÔ>Ü—Y‘Y  S˜z°Ô:Ü—Y‘Y¤§¡ q˜z°Ô9Ü—Y‘Y¤§¡ s˜|°9Ô=Ü—Y‘Y¤§¡ t˜}°IÔ>Ü—Y‘Y¤§¡ s˜|°8Ô<Ü—Y‘Y¤§¡¨\Ó :Ð;¸aÑ?Ó@Ü—Y‘Y¤§¡¤r§u¡u˜~°WÔ=ñó
ˆð 	�‰�I¨&¸ˆÔ>Ü—‘Ø &¸ô
ˆð ˜IÓ%Û å9ä—|‘|ð  "Ÿz™zöàð Ñ,¨R¯X©X°b¸±gÈ4¨XÓ-PÓQÑQòóˆHð % S™M×0Ñ0´·±¸r¿y¹y»{Ó1KÓLˆH�S‰MØ$ S™M×0Ñ0´·±¸r¿y¹y»{Ó1KÓLˆH�S‰Má/Ø˜‘×#Ñ#×-Ñ-×2Ñ2°2·<±<ÀT°<Ó3JÓKóˆH�S‰Mñ 0°·±¸$À¸Ó0FÓGˆH�SŠMàˆHÜ ¨&Ó1ˆDØ$ S™M×0Ñ0°3°t°f¸A°Ó?ˆH�S‰Mä
×Ñ˜f hÕ/ùò)s   Ç$$Lc                ó4  — |dv rt        j                  d|› d�«       t        j                  t        j
                  dgdt        j
                  gdœ«      }|j                  |dd¬	«       t        j                  |dd
d¬«      }t        j                  ||«       y )Nrh   ri   rj   rN  rJ  ©rz   r{   rj  Frk  Únumpy_nullablerR  )r�   rm  rn   )
r"   rp   r?   rq   r  r�   rr   r_   r]   rs   )rt   r   r7   ru   r«   s        r   Útest_dtype_backend_and_dtypez(TestReaders.test_dtype_backend_and_dtypeæ  s‚   € àÐ(Ñ(Ü�K‰KÐ3°H°:¸QÐ?Ô@ä�\‰\¤§¡¨ °S¼"¿&¹&°MÑBÓCˆØ
�‰�I¨&¸ˆÔ>Ü—‘ØØØ*Øô	
ˆô 	×Ñ˜f bÕ)r    c           	     óÔ  — |dv rt        j                  d|› d�«       t        j                  t	        j
                  ddgt        j                  ¬«      t	        j
                  dt        j                  gt        j                  ¬«      dœ«      }|j                  |d	d
¬«       t        j                  d|«      5  t        j                  |d	d¬«      }d d d «       t        j                  t        j                  ddgt        j                  |«      ¬«      t        j                  dd gt        j                  |«      ¬«      dœ«      }t        j                  |d
¬«       y # 1 sw Y   ŒŽxY w)Nrh   ri   rj   rz   r{   rm   rõ   r|  rj  Frk  zmode.string_storager}  rl  )Úcheck_column_type)r"   rp   r?   rq   r  rt  Úobject_rq  rr   r`   r_   r\  ÚStringDtyper]   rs   )rt   r   Ústring_storager7   ru   r«   rK   s          r   Útest_dtype_backend_stringz%TestReaders.test_dtype_backend_stringõ  s  € àÐ(Ñ(Ü�K‰KÐ3°H°:¸QÐ?Ô@ä�\‰\ä—X‘X˜s C˜j´·
±
Ô;Ü—X‘X˜s¤B§E¡E˜l´"·*±*Ô=ñó
ˆð 	�‰�I¨&¸ˆÔ>ä×ÑÐ4°nÓEñ 	Ü—]‘]Ø fÐ<LôˆF÷	ô
 —<‘<ä—Y‘Y  S˜z´·±ÀÓ1OÔPÜ—Y‘Y  T˜{´"·.±.ÀÓ2PÔQñó
ˆô 	×Ñ˜f hÀ%ÖH÷	ð 	ús   Â8EÅE'c                ó~  — |dv rt        j                  d|› d�«       t        j                  g d¢g d¢dœ«      }|j	                  |dd¬	«       t        j
                  |dd
¬«      }t        j                  t        j                  g d¢«      t        j                  g d¢«      dœ«      }t        j                  ||«       y )Nrh   ri   rj   )r9  r^  r9  )r°   ÚFalser°   r|  rj  Frk  Úcategory©r�   rn   ©ry   rÅ   ry   ©TFT)	r"   rp   r?   rq   rr   r_   ÚCategoricalr]   rs   )rt   r   r7   ru   r«   rK   s         r   Ú+test_dtype_category_infers_numeric_and_boolz7TestReaders.test_dtype_category_infers_numeric_and_bool  s–   € ð Ð(Ñ(Ü�K‰KÐ3°H°:¸QÐ?Ô@ä�\‰\¢Ò6OÑPÓQˆØ
�‰�I¨&¸ˆÔ>ä—‘˜y°VÀ:ÔNˆä—<‘<Ü—.‘.¢Ó+´"·.±.ÒATÓ2UÑVó
ˆô 	×Ñ˜f hÕ/r    c           
     ó   — |dv rt        j                  d|› d�«       t        j                  g d¢g d¢g d¢dœ«      }|j	                  |dd	¬
«       t        j
                  |dd¬«      }t        j                  |j                  «       D ��ci c]  \  }}|t        j                  |«      “Œ c}}«      }t        j                  ||«       y c c}}w )Nrh   ri   rj   r‰  )rK  rL  rK  rŠ  rT  rj  Frk  r‡  rˆ  )
r"   rp   r?   rq   rr   r_   Úitemsr‹  r]   rs   )rt   r   r7   ru   r«   rf   ÚvalsrK   s           r   Ú test_dtype_category_native_cellsz,TestReaders.test_dtype_category_native_cells!  s©   € ð Ð(Ñ(Ü�K‰KÐ3°H°:¸QÐ?Ô@ä�\‰\Ú¢/Ò8KÑLó
ˆð 	�‰�I¨&¸ˆÔ>ä—‘˜y°VÀ:ÔNˆä—<‘<ÈBÏHÉHËJ× W¹y¸sÀD ¤b§n¡n°TÓ&:Ñ!:Ó WÓXˆÜ
×Ñ˜f hÕ/ùó !Xs   Â C

zdtypes, exp_valuery   úa.1rZ  c                óT  — d}dt         i|¥}|j                  «       }t        j                  ||z   |¬«      }t        j                  t        j
                  dgt         ¬«      t        j
                  |g|st         nd ¬«      dœ«      }||k(  sJ d«       ‚t        j                  ||«       y )NÚdf_mangle_dup_col_dtypesrz   rm   ry   )rz   r‘  zdtype dict changed)r€   r*  r?   r_   rq   r\  r]   rs   )	rt   r   ÚdtypesÚ	exp_valuer.  Ú
dtype_dictÚdtype_dict_copyr«   rK   s	            r   Útest_dtype_mangle_dup_colsz&TestReaders.test_dtype_mangle_dup_cols1  s–   € ð .ˆØœ6Ð, VÐ,ˆ
Ø$Ÿ/™/Ó+ˆä—‘˜x¨(Ñ2¸*ÔEˆÜ—<‘<ä—Y‘Y ˜s¬&Ô1Ü—y‘y ) Á&µFÈdÔSñó
ˆð ˜_Ò,ÐBÐ.BÓBÐ,Ü
×Ñ˜f hÕ/r    c                ó–   — d}t        j                  ||z   «      }t        j                  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	  )rt   r   r.  r/  rK   s        r   Útest_reader_spaceszTestReaders.test_reader_spacesB  sG   € à ˆä—‘˜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"   rp   r?   r_   r]   rs   )rt   r   r   r.  rK   r/  s         r   Útest_read_excel_ods_nested_xmlz*TestReaders.test_read_excel_ods_nested_xmlU  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)r?   r_   r]   Úassert_contains_allÚkeysÚlist©rt   r   r.  ÚdfsÚexpected_keyss        r   Útest_reading_all_sheetsz#TestReaders.test_reading_all_sheetsd  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  )r?   r_   r§  Úsetr]   r¥  r¦  rÓ   )rt   r   r.  rª  r©  s        r   Ú%test_reading_multiple_specific_sheetsz1TestReaders.test_reading_multiple_specific_sheetsq  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ã   )r?   r_   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        j                  d|z   d¬«      }t        j                  |t        j                  «       «       y )NÚblankrŒ   r  )r?   r_   r]   rs   rq   )rt   r   r/  s      r   Útest_read_excel_blankz!TestReaders.test_read_excel_blank‰  s-   € Ü—‘˜w¨Ñ1¸hÔGˆÜ
×Ñ˜f¤b§l¡l£nÕ5r    c                ó”   — t        j                  ddg¬«      }t        j                  d|z   d¬«      }t        j                  ||«       y )NÚcol_1Úcol_2rú   r°  rŒ   r  )r?   rq   r_   r]   rs   )rt   r   rK   r/  s       r   Ú!test_read_excel_blank_with_headerz-TestReaders.test_read_excel_blank_with_header�  s;   € Ü—<‘<¨°'Ð(:Ô;ˆÜ—‘Ð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\)$rZ   r°  ry   )Úheaderr�   r¦   c                ó   — ddz  S )Nry   r   r-   r@  s    r   rA  zHTestReaders.test_exception_message_includes_sheet_name.<locals>.<lambda>—  s
   € ÀÀAÁ€ r    )rº   r�   )r"   r´   r¿   r?   r_   ÚZeroDivisionError©rt   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c                óÚ  — t        ||«       t        j                  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 openpyxlrO   )r   r   z)Defaults to openpyxl, maybe not supportedÚtestdateoverflow)rT   r?   rq   rr  rQ   r"   rR   rS   r_   r]   rs   )rt   r)   r   r   rK   r«   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 )Nr¦   rŒ   r   r×   ©r=   r�   rÆ   )
rt   r)   r   r   rC   Úfilenamer�   rK   r…   rv   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)Nr¦   rŒ   r   r×   r§   )r?   r_   r¨   r]   rs   )rt   r   ÚpthrK   r   r/  s         r   Útest_excel_read_bufferz"TestReaders.test_excel_read_bufferÅ  s`   € Ø˜Ñ ˆÜ—=‘= °ÀQÔGˆÜ�#�t‹_ð 	4 Ü—]‘] 1°ÀQÔGˆFÜ×!Ñ! (¨FÔ3÷	4÷ 	4ñ 	4ús   ª/A"Á"A+c                ó–   — d}t        j                  t        d¬«      5  t        j                  d|¬«       d d d «       y # 1 sw Y   y xY w)Nr®   zUnknown engine: foorZ   r>  r\   r¾   )rt   Ú
bad_engines     r   Útest_bad_engine_raisesz"TestReaders.test_bad_engine_raisesÌ  s9   € Øˆ
Ü�]‰]œ:Ð-BÔCñ 	1Ü�M‰M˜" ZÕ0÷	1÷ 	1ñ 	1ús	   ž?¿Ar�   r¸   r   ró   rŒ   c                ó¾   — dj                  ddg«      }t        j                  t        |¬«      5  t	        j
                  d|z   |¬«       d d d «       y # 1 sw Y   y xY w)Nú|úWorksheet index 3 is invalidú"Worksheet named 'Sheet4' not foundrZ   r³  r  )Újoinr"   r´   r¿   r?   r_   )rt   r   r�   rb   s       r   Útest_bad_sheetname_raisesz%TestReaders.test_bad_sheetname_raisesÑ  sW   € ð �h‰hØ+Ð-QÐRó
ˆô �]‰]œ:¨SÔ1ñ 	EÜ�M‰M˜' HÑ,¸ÕD÷	E÷ 	Eñ 	Eús   ¯AÁAc                ó¾   — d|› �}dj                  g d¢«      }t        j                  t        |¬«      5  t	        j
                  |«       d d d «       y # 1 sw Y   y xY w)Nr®   rÏ  )z(No such file or directoryu   æ²¡æœ‰é‚£ä¸ªæ–‡ä»¶æˆ–ç›®å½•zFile o directory non esistente)rZ   )rÒ  r"   r´   ÚFileNotFoundErrorr?   r_   )rt   r   Úbad_filer[   s       r   Útest_missing_file_raisesz$TestReaders.test_missing_file_raisesÝ  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 filerZ   )r¿   r   rÙ  r   rÛ  r
   r"   r´   r?   r_   r   )rt   r   Ú
bad_streamÚerrorrb   rÙ  rÛ  s          r   Útest_corrupt_bytes_raisesz%TestReaders.test_corrupt_bytes_raisesê  sŠ   € Øˆ
Øˆ>ÜˆEð.ñ ð �vÒÝ&àˆEàXñ ð �zÒ!Ý5à!ˆEØ-‰CäˆEØ*ˆCÜ�]‰]˜5¨Ô,ñ 	/Ü�M‰Mœ' *Ó-Ô.÷	/÷ 	/ñ 	/ús   ÁA5Á5A>c                ó&  — t        d|z   d«      5 }|j                  |j                  «       ¬«       d d d «       t        j                  |j
                  «      }t        j                  d|z   «      }t        j                  ||«       y # 1 sw Y   ŒWxY w)Nr¦   r§   )Úcontent)r¨   Úserve_contentÚreadr?   r_   Úurlr]   rs   )rt   Ú
httpserverr   r   Ú	url_tableÚlocal_tables         r   Útest_read_from_http_urlz#TestReaders.test_read_from_http_url  sv   € ô �'˜HÑ$ dÓ+ð 	7¨qØ×$Ñ$¨Q¯V©V«XÐ$Ô6÷	7ä—M‘M *§.¡.Ó1ˆ	Ü—m‘m G¨hÑ$6Ó7ˆÜ
×Ñ˜i¨Õ5÷		7ð 	7ús   �!BÂBc                ó(  — t        d|z   d«      5 }|j                  d|z   |¬«       d d d «       d|j                  › d�|z   }t        j                  ||¬«      }t        j                  d|z   «      }t        j                  ||«       y # 1 sw Y   ŒbxY w)Nr¦   r§   ©ÚKeyÚBodyús3://ú/test1)Ústorage_options)r¨   Ú
put_objectrI   r?   r_   r]   rs   )rt   r   Ús3_bucket_publicÚs3sor   rã  rå  ræ  s           r   Útest_read_from_s3_urlz!TestReaders.test_read_from_s3_url  s”   € ä�'˜HÑ$ dÓ+ð 	H¨qØ×'Ñ'¨G°hÑ,>ÀQÐ'ÔG÷	Hð Ð&×+Ñ+Ð,¨FÐ3°hÑ>ˆä—M‘M #°tÔ<ˆ	Ü—m‘m G¨hÑ$6Ó7ˆÜ
×Ñ˜i¨Õ5÷	Hð 	Hús   �BÂBc                ó˜  — t        d|z   d«      5 }|j                  d|z   |¬«       d d d «       dd l} |j                  di |¤Ž}|j                  d|j                  › d�|z   «      5 }t        j                  |«      }d d d «       t        j                  d|z   «      }t        j                  |«       y # 1 sw Y   ŒŽxY w# 1 sw Y   ŒDxY w)Nr¦   r§   ré  r   rì  rí  r-   )	r¨   rï  Ús3fsÚS3FileSystemrI   r?   r_   r]   rs   )	rt   r   rð  rñ  r   rô  Ús3rå  ræ  s	            r   Útest_read_from_s3_objectz$TestReaders.test_read_from_s3_object  sÌ   € ô �'˜HÑ$ dÓ+ð 	H¨qØ×'Ñ'¨G°hÑ,>ÀQÐ'ÔG÷	Hó 	àˆT×ÑÑ& Ñ&ˆà�W‰W�uÐ-×2Ñ2Ð3°6Ð:¸XÑEÓFð 	)È!ÜŸ™ aÓ(ˆI÷	)ô —m‘m G¨hÑ$6Ó7ˆÜ
×Ñ˜i¨Õ5÷	Hð 	Hú÷	)ð 	)ús   �B4Á'C Â4B=Ã C	c                ó’  — t         j                  j                   |ddd«      d|z   «      }t        j                  |«      }	 t        j                  d|z   «      }t        j                  |«       y # t
        $ rL dj                  t        j                  «       «      j                  «       }t        j                  d|› �«       Y Œkw xY w)Nr9   r:   rY   r¦   zfile://localhost/ú zfailing on )Úosra   rÒ  r?   r_   r	   ÚplatformÚunameÚstripr"   rp   r]   rs   )rt   r   rA   Ú
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Ö   )r?   r_   r   r]   rs   )rt   r   Ústr_pathrK   Úpath_objr/  s         r   Útest_read_from_pathlib_pathz'TestReaders.test_read_from_pathlib_path7  sO   € à˜XÑ%ˆÜ—=‘= °hÈ!ÔLˆä˜ (Ñ*Ó+ˆÜ—‘˜x°HÈÔJˆä
×Ñ˜h¨Õ/r    c                óÜ   — t         j                  j                  d|z   «      }t        |d«      5 }t	        j
                  |dd¬«      }~|j                  «        d d d «       y # 1 sw Y   y xY w)Nr¦   r§   rŒ   r   r×   )rú  ra   rÒ  r¨   r?   r_   râ  )rt   r   r  r   rõ   s        r   Útest_close_from_py_localpathz(TestReaders.test_close_from_py_localpathA  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                  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)rO   ÚTimery   rÅ   r¸   é-   é8   i † r  é   é1   i@ re  é   é*   ià“ é   é9   é#   i€ é	   é)   é   i ¡ é   é   é   iÀ'	 r  i`®
 é5   i 5 é   é%   r   i » é   é   é6   Ú
times_1900rŒ   r  Ú
times_1904)rT   rQ   r"   rR   rS   r?   rq   r)  r   r_   r]   rs   )rt   r)   r   r   rK   r/  s         r   Útest_reader_secondszTestReaders.test_reader_secondsJ  sI  € Ü# 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           
     óH  — t        ||«       t        ||«      }t        j                  j	                  ddgddgg«      }d|z   }t        j
                  ddt        j                  d«      d	gd
dt        j                  d«      dgddt        j                  d«      dgddt        j                  d«      d	gg|¬«      }||d
      j                  d|› d�«      ||d
   <   t        j                  |dddgd¬«      }t        j                  ||«       ||_        g d¢|_        t        j                  |dddg¬«      }t        j                  ||«       ||_        t        j                  |dddgddg¬«      }t        j                  ||«       g d¢|_        |j                  dd g«      |_        t        j                  |d!ddg¬«      }t        j                  ||«       t        d«      |_        |j                  d"d#g«      |_        t        j                  |d$ddgd¬«      }t        j                  ||«       |j                  dd
gd¬%«      j                  d"d#g«      |_        t        j                  |d&dddg¬«      }t        j                  ||«       |j                  d"d#g«      |_        |j                  dd g«      |_        t        j                  |d'ddgddg¬«      }t        j                  ||«       t        j                  |d(ddgddgd
¬)«      }t        j                  ||«       y )*Nr®   Úbarrz   r{   Útestmultiindexry   rJ  ú
2015-01-01TrÅ   rK  ú
2015-01-02Fr¸   rL  ú
2015-01-03r  rM  ú
2015-01-04rú   r  r  Ú	mi_columnr   )r�   rº  r=   rQ  Ú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½   )rT   rF   r?   rð   Úfrom_productrq   rr  r[  r_   r]   rs   rH   r‚   Ú	set_namesrÒ   Ú
set_levels)	rt   r)   r   r   rL   ÚmiÚmi_filerK   r/  s	            r   Útest_read_excel_multiindexz&TestReaders.test_read_excel_multiindexn  sý  € ä# F¨GÔ4ä˜H fÓ-ˆä�]‰]×'Ñ'¨%°¨¸#¸s¸Ð(DÓEˆØ" XÑ-ˆô —<‘<à�CœŸ™ lÓ3°TÐ:Ø�CœŸ™ lÓ3°UÐ;Ø�CœŸ™ lÓ3°UÐ;Ø�CœŸ™ lÓ3°TÐ:ð	ð ô
ˆð # 2 a¡5™/×0Ñ0°3°t°f¸A°Ó?ˆ��A‘‰ä—‘Ø °Q¸°FÀaô
ˆô 	×Ñ˜f hÔ/ð ˆŒÚ/ˆÔä—‘˜w°:È!ÈQÈÔPˆÜ
×Ñ˜f hÔ/ð ˆÔä—‘Ø °1°a°&À!ÀQÀô
ˆô 	×Ñ˜f hÔ/ò 0ˆÔØŸ™ w°Ð&8Ó9ˆŒä—‘˜w°?ÈqÐRSÈfÔUˆÜ
×Ñ˜f hÔ/ô ˜q›ˆŒØŸ<™<¨¨t¨Ó5ˆÔÜ—‘ØÐ 0¸!¸Q¸È1ô
ˆô 	×Ñ˜f hÔ/ð Ÿ=™=¨!¨Q¨°q˜=Ó9×CÑCÀTÈ4ÀLÓQˆÔä—‘Ø ¸1ÀaÈÀVô
ˆô 	×Ñ˜f hÔ/ð Ÿ<™<¨¨t¨Ó5ˆÔØŸ™ w°Ð&8Ó9ˆŒä—‘Ø ¸¸1°vÀqÈ!Àfô
ˆô 	×Ñ˜f hÔ/ô —‘ØØ+Ø˜!�fØ�q�6Øô
ˆô 	×Ñ˜f hÕ/r    zsheet_name,idx_lvl2Úboth_name_blank_after_mi_namer{   rz   Úboth_name_multiple_blanksr  c           
     ór  — t        ||«       d|z   }t        j                  j                  ddgddggddg¬«      }t	        ||«      }t        j
                  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                  j                  g d¢|fddg¬«      ¬«      }	|	|d      j                  d|› d�«      |	|d   <   t        j                  ||dd	gdd	g¬«      }
t        j                  |
|	«       y )Nr#  r®   r"  rz   r{   r/  r0  ©rï   ry   rJ  r$  TrÅ   rK  r%  Fr¸   rL  r&  r  rM  r'  )r®   r®   r"  r"  r,  r-  rç   r  r  r   r+  )rT   r?   rð   r6  rF   rq   rr  Úfrom_arraysr[  r_   r]   rs   )rt   r)   r   r   r�   Úidx_lvl2r:  r9  rL   rK   r«   s              r   Ú+test_read_excel_multiindex_blank_after_namez7TestReaders.test_read_excel_multiindex_blank_after_nameÂ  sF  € ô 	$ F¨GÔ4à" XÑ-ˆÜ�]‰]×'Ñ'Ø�Uˆ^˜c 3˜ZÐ(°°t°ð (ó 
ˆô ˜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                  j                  ddg«      }t        j                  g d¢gd	z  |¬
«      }t        j                  ||«       y )Nr#  Úindex_col_noner   ry   ©r�   rº  ©rÊ   rÃ   ©Úkeyrˆ   rH  rÅ   rú   )r?   r_   rð   r6  rq   r]   rs   )rt   r   r:  r«   Úexp_columnsrK   s         r   Ú&test_read_excel_multiindex_header_onlyz2TestReaders.test_read_excel_multiindex_header_onlyë  sf   € ð # XÑ-ˆÜ—‘˜wÐ3CÈQÐPQÈFÔSˆä—m‘m×0Ñ0°*¸nÐ1MÓNˆÜ—<‘<¢ °Ñ 2¸KÔHˆÜ
×Ñ˜f hÕ/r    c           	     óB  — 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	        j
                  g d	¢g d
¢gg d¢g d¢gd d g¬«      }t	        j                  g d	¢d ¬«      }t	        j                  |||¬«      }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	        j
                  g d¢g d¢gg d¢g d¢gd d g¬«      }t	        j                  g d¢d ¬«      }t	        j                  |||¬«      }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ÚR4C4rm   )Ú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   ry   rÅ   r¸   r  r  rì   ræ   ©rH   r‚   Úsingle_namesr   r×   Úmulti_namesry   )rl  rm  rn  ro  rp  )rr  rs  rt  ru  rv  )r   ry   rÅ   r¸   r  Úsingle_no_namesÚmulti_no_names)r  rt  r�   r€   r?   rð   rè   rq   r_   r]   rs   rH   )	rt   r   rÆ  r:   r‚   r9  ÚsirK   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Ð:Ø˜�,ô
ˆô �X‰XÚIÐPTô
ˆô —<‘< ¨B¸Ô@ˆä—‘˜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Ø˜�,ô
ˆô �X‰XÚCÈ$ô
ˆô —<‘< ¨B¸Ô@ˆä—‘˜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)TFrZ   r¦   ©rº  rà   )rt   r   rb   Úargs       r   Útest_read_excel_bool_header_argz+TestReaders.test_read_excel_bool_header_argA  sQ   € à3ˆØ ò 	>ˆCÜ—‘œy°Ô4ñ >Ü—‘˜g¨Ñ0¸Õ=÷>ð >ñ	>÷>ð >ús   £A	Á	A	c           
     ó  — t        ||«       t        ||«      }t        j                  d|z   dddg¬«      }t        j                  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        j                  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½   ry   rJ  r$  TrK  r%  Fr¸   rL  r&  r  rM  r'  rQ  rú   r|   r  r  c                ó
   — | dv S ©N)r   rÅ   r-   r@  s    r   rA  z6TestReaders.test_read_excel_skiprows.<locals>.<lambda>h  s
   € ˜q F˜{€ r    )r�   r½   rï   )rT   rF   r?   r_   rq   rr  r[  r]   rs   r  rt  ©rt   r)   r   r   rL   r/  rK   s          r   Útest_read_excel_skiprowsz$TestReaders.test_read_excel_skiprowsH  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                ó`  — t        ||«       t        ||«      }t        j                  d|z   dd„ ¬«      }t        j                  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 )Nrƒ  r„  c                ó
   — | dvS )N)ry   r¸   r  r-   r@  s    r   rA  zFTestReaders.test_read_excel_skiprows_callable_not_in.<locals>.<lambda>†  s   € ˜q¨	Ð1€ r    r…  ry   rJ  r$  Tr¸   rL  r&  FrQ  rú   r|   r  r  )	rT   rF   r?   r_   rq   rr  r[  r]   rs   rˆ  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                ó  — |j                  «       5 }|j                  t        dd«       t        j                  d|z   d„ d¬«      }d d d «       t        j
                  «       }t        j                  |«       y # 1 sw Y   Œ4xY w)NÚEXCEL_ROWS_MAXr  r¦   c                 ó   — y)NTr-   )Ú_s    r   rA  zCTestReaders.test_read_excel_skiprows_callable_all.<locals>.<lambda>˜  s   � r    ry   )r½   Únrows)Úcontextrœ   Ú_excel_baser?   r_   rq   r]   rs   )rt   r   rž   Úmr/  rK   s         r   Ú%test_read_excel_skiprows_callable_allz1TestReaders.test_read_excel_skiprows_callable_all”  so   € à× Ñ Ó"ð 	Y aØ�I‰I”kÐ#3°RÔ8Ü—]‘] 7¨XÑ#5ÁÐVWÔXˆF÷	Yô —<‘<“>ˆÜ
×Ñ˜f hÕ/÷		Yð 	Yús   ‘4A8Á8Bc                ó¢   — d}t        j                  d|z   |¬«      }t        j                  d|z   «      }|d | }t        j                  ||«       y )Nr  r¦   ©r‘  )r?   r_   r]   rs   )rt   r   Únum_rows_to_pullr/  rK   s        r   Útest_read_excel_nrowsz!TestReaders.test_read_excel_nrowsœ  sO   € àÐÜ—‘˜w¨Ñ1Ð9IÔJˆÜ—=‘= ¨8Ñ!3Ó4ˆØÐ-Ð-Ð.ˆÜ
×Ñ˜f hÕ/r    c                ó´   — t        j                  d|z   «      }t        |«      }|dz   }t        j                  d|z   |¬«      }t        j                  ||«       y )Nr¦   r  r—  )r?   r_   rÓ   r]   rs   )rt   r   rK   Únum_records_in_filer˜  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 >=0rZ   r¦   r<  r—  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ús   žAÁAz-filename,sheet_name,header,index_col,skiprowsr#  r(  r)  r*  r1  rƒ  r„  c                ó
   — | dv S r‡  r-   r@  s    r   rA  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º  r=   r½   Nr¸   )r�   rº  r=   r½   r‘  )r?   r_   rƒ   r]   rs   )	rt   r   rÆ  r�   rº  r=   r½   rK   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 argumentsrZ   r¦   rŒ   r   rà   r½  s     r   Útest_deprecated_kwargsz"TestReaders.test_deprecated_kwargsÖ  s;   € Ü�]‰]œ9Ð,HÔIñ 	;Ü�M‰M˜' HÑ,¨h¸Ô:÷	;÷ 	;ñ 	;ús   œA Á A	c                óî   — d|z   }g d¢}t         j                  j                  g d¢d¬«      }t        j                  ||d¬«      }t        j                  |dd	d
gd ¬«      }t        j                  ||«       y )Nr#  ))rÃ   rÃ   rG  ©r¸   r  r¥  ))rÊ   rÊ   rG  ©ry   rÅ   r¦  )r   ry   r?  )rÅ   r¸   rw  rD  r   ry   r+  )r?   rð   Úfrom_tuplesrq   r_   r]   rs   )rt   r   Ú	file_namer:   r†   rK   r«   s          r   Ú"test_no_header_with_list_index_colz.TestReaders.test_no_header_with_list_index_colÚ  sq   € à$ xÑ/ˆ	Ú;ˆÜ�m‰m×'Ñ'Ú8Àð (ó 
ˆô —<‘< ¨C¸Ô@ˆÜ—‘ØÐ"2¸qÀ!¸fÈTô
ˆô 	×Ñ˜h¨Õ/r    c                ó¼   — d|z   }dt         j                  ddg}t        j                  |dg¬«      }t        j                  |«      }t        j                  ||«       y )NÚone_col_blank_lineg      à?ry   rÅ   Únumbersrú   )r  r�   r?   rq   r_   r]   rs   )rt   r   r¨  r:   rK   r«   s         r   Útest_one_col_noskip_blank_linez*TestReaders.test_one_col_noskip_blank_lineç  sN   € à(¨8Ñ3ˆ	Ø”R—V‘V˜Q Ð"ˆÜ—<‘< ¨y¨kÔ:ˆÜ—‘˜yÓ)ˆÜ
×Ñ˜f hÕ/r    c                ój  — d|z   }t         j                  j                  ddg«      }t        j                  t        j                  gt        j                  t        j                  gddgddgg}t        j
                  ||¬«      }t        j                  |d	d
dg¬«      }t        j                  ||«       y )Nr#  )rz   rÊ   )r{   rÃ   ry   r¸   rÅ   r  rú   Úmi_column_empty_rowsr   rE  )	r?   rð   r§  r  r�   rq   r_   r]   rs   )rt   r   r¨  r‚   r:   rK   r«   s          r   Ú test_multiheader_two_blank_linesz,TestReaders.test_multiheader_two_blank_linesï  s‘   € à$ xÑ/ˆ	Ü—-‘-×+Ñ+¨Z¸Ð,DÓEˆÜ—‘œŸ™Ð ¤2§6¡6¬2¯6©6Ð"2°Q¸°F¸QÀ¸FÐCˆÜ—<‘< ¨gÔ6ˆÜ—‘ØÐ"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)r?   r_   Úshape)rt   r   r¨  r«   s       r   Útest_trailing_blanksz TestReaders.test_trailing_blanksú  s.   € ð
 &¨Ñ0ˆ	Ü—‘˜yÓ)ˆØ�|‰|˜vÒ%Ð%Ñ%r    c                ó4  — |dk(  rt        j                  d«       |dk(  r/|j                  t         j                  j	                  d¬«      «       t        j
                  t        d¬«      5  t        j                  d|z   d	¬
«       d d d «       y # 1 sw Y   y xY w)Nr   ú*chartsheets do not exist in the ODF formatr   ú4pyxlsb can't distinguish chartsheets from worksheetsrO   z"Worksheet named 'Chart1' not foundrZ   Ú
chartsheetÚChart1r  ©	r"   rp   rQ   rR   rS   r´   r¿   r?   r_   ©rt   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·  rO   z0Worksheet index 1 is invalid, 1 worksheets foundrZ   r¸  ry   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        j                  g d¢g d¢g d¢gg d¢¬	«      }t        j                  ||«       y )
NÚtest_decimalú,ry   )Údecimalr½   )ry   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  sN   € ä—‘˜~°Ñ8À#ÐPQÔRˆÜ—<‘<âFÚ@ÚCðò
 Nô
ˆô 	×Ñ˜f hÕ/r    )[Ú__name__Ú
__module__Ú__qualname__r"   rR   Úparametrizerw   rŠ   r—   Úfixturer    r¬   r¶   rÁ   rÇ   rÌ   rÎ   rÔ   rÙ   rÛ   rÝ   rá   rê   rñ   rü   rÿ   r  r
  r  r  r3  rE  r]  r  r�   r4   r?   r\  r`  rz  r~  r„  rŒ  r�  r˜  rœ  rq   rŸ  r«  r®  r±  r´  r¸  r¾  rÃ  rÇ  rÊ  rÍ  rÓ  r×  rÞ  ÚnetworkÚ
single_cpurç  rò  r÷  Úslowr   r  r  r   r;  rB  rJ  r}  r�  r‰  rŒ  r•  r™  rœ  rž  r¡  r£  r©  r­  r°  r´  r¼  r¿  rÐ  r-   r    r   re   re   Á   s/  „ Ø‡[�[×Ñ˜UÒ%8¸4¸&À4ÈÀ-Ð$PÓQñ'ó Rð'ò"òH0ð( €V‡^�^˜DÔ!ñ4ó "ð4ò"ò(ò4ò$-ò*1-ðf ‡[�[×ÑØ’Išyª)²YÂ	Ê9ÐUóñ0óð0ð ‡[�[×Ñ˜Y¨#¨s¨°c¸3°ZÐ(@ÓAñ0ó Bð0ò0ò	0òSò	ò0ò	0ð ‡[�[×Ñ˜[¨4°¨)Ó4ñ0ó 5ð0ò=òAò0ò
0ò2ò&/0òd0ò4Eð: ‡[�[×ÑØð â%Ú-Ú%Ø˜s B§F¡F¨CÐ0ñ	ðð   i°cÀÑDà"˜Ÿ™¢<°yÔAØ"˜Ÿ™Ò#7¸yÔIØ"˜Ÿ™Ò#?ÀuÔMØ"˜Ÿ™ C¨¨b¯f©f°cÐ#:À%ÔHñ	ðð	
óñ.0ó/ð.0ò10òf*òIò80ò 0ð  ‡[�[×ÑÐ0°B¸°7¸eÀWÐ=MÈqÐ<QÐ2RÓSñ0ó Tð0ò 0ð& ‡[�[×ÑØà˜˜Ÿ™ x°*°Ð&>Ó?Ð@Ø˜˜Ÿ™¨|¨nÔ=Ð>ð	
óñ0óð0ò1ò5ò:ò6ò0ò
Xò0ò6-ò"4ò1ð
 ‡[�[×ÑØØ	
ˆQ�ˆF�Q˜�F˜H x°Ð&:¸XÀxÐ<PÐQóñEó	ðEò$ò/ð4 ‡[�[×ÑØ‡[�[×Ññ6ó ó ð6ð ‡[�[×Ññ6ó ð6ð ‡[�[×Ññ6ó ð6ð ‡[�[×Ññ6ó ð6ò0òò"0òHR0ðh ‡[�[×ÑØà,¨r¯v©v°s¸CÀÐ.EÐFØ(¨2¯6©6¨(°Q©,Ð7ð	
óñ 0óð 0òD	0òI0òV>ò40òl0ò,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    re   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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ej                  j+                  d«      d„ «       Zej                  j+                  d«      ej                  j                  dddg«      d„ «       «       Zd„ Zd„ Zd „ Zd!„ Zy")#ÚTestExcelFileReadc                óú   — d}t        j                  t        |¬«      5  t        d|z   d«      5 }t	        j
                  |j                  «       |¬«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nz+Expected file path name or file-like objectrZ   r¦   r§   r\   )r"   r´   rµ   r¨   r?   r_   râ  )rt   r   r   rb   r   s        r   Útest_raises_bytes_inputz)TestExcelFileRead.test_raises_bytes_input.  si   € à;ˆÜ�]‰]œ9¨CÔ0ñ 	7Ü�g Ñ(¨$Ó/ð 7°1Ü—‘˜aŸf™f›h¨vÕ6÷7÷	7ð 	7÷7ð 7ú÷	7ð 	7ús"   žA1®&A%ÁA1Á%A.	Á*A1Á1A:Tr˜   c                óš   — t        t        j                  |¬«      }|j                   |ddd«      «       |j	                  t        d|«       y)zH
        Change directory and set engine for ExcelFile objects.
        r\   r9   r:   rY   r”   N)r   r?   r”   r›   rœ   r�   s        r   r    z#TestExcelFileRead.cd_and_set_engine5  s=   € ô
 ”r—|‘|¨FÔ3ˆØ×Ñ™( 4¨°Ó9Ô:Ø×ÑœB ¨TÕ2r    c                ó®   — ddddddœ}t        j                  d|z   «      5 }|j                  }d d d «       |�|}n||dd     }|k(  sJ ‚y # 1 sw Y   ŒxY w)Nr   r   r   r   r¢   r¦   ry   )r?   r”   r   )rt   r   r   r©   rY   r«   rK   s          r   r¬   z"TestExcelFileRead.test_engine_used>  sw   € àØØØØñ
Ðô �\‰\˜' HÑ,Ó-ð 	"°Ø—\‘\ˆF÷	"ð ÐØ‰Hà(¨°!°"¨Ñ6ˆHØ˜Ò!Ð!Ñ!÷	"ð 	"ús   ¡AÁAc                óâ  — t        j                  d|z   «      5 }t        j                  |dddg¬«      }d d d «       t        j                  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        j                  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        j                  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        j                  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   �Œ˜xY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ“xY w)NÚtest4rŒ   FÚapple©r�   r‘   r’   rq  ry   Úrabbitr“   rú   TÚtest5ú1.#QNANr�   )r?   r”   r_   rq   r  r�   r]   rs   )rt   r   rY   r–   rK   s        r   Útest_excel_passes_naz&TestExcelFileRead.test_excel_passes_naP  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>ÂIÄ7IÆ8I%È>IÉIÉI"É%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        j
                  |dg¬«      }t        j                  |«       y # 1 sw Y   ŒxY w)Nrç  rä  rŒ   Trá  râ  Frå  ry   r�   rã  r“   rú   )r?   r”   r_   r  r�   rq   r]   rs   )rt   r   rç  ÚkwargsrY   r–   rK   s          r   Útest_excel_passes_na_filterz-TestExcelFileRead.test_excel_passes_na_filterv  sØ   € ð ˆàÐ Ø"+ˆF�;Ñä�\‰\˜' HÑ,Ó-ð 	°Ü—]‘]Øðà#Ø $Ø"˜)ñ	ð
 ñˆF÷	ð ˜ÑØ"˜ a S¨5¨'°G°9¸x¸jÐI‰HäŸ™˜ 1 #¬¯© x´"·&±&°¸H¸:ÐFˆHä—<‘< °6°(Ô;ˆÜ
×Ñ˜f hÕ/÷	ð 	ús   ¢B<Â<Cc                óò   — d}t        j                  d|z   «      5 }t        j                  t        |¬«      5  t        j
                  |dd¬«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nz+For argument "na_filter" expected type boolr¦   rZ   rŒ   r†  )r�   rç  ©r?   r”   r"   r´   r¿   r_   )rt   r   rb   rY   s       r   Útest_excel_bool_kwarg_not_boolz0TestExcelFileRead.test_excel_bool_kwarg_not_bool�  sp   € à;ˆÜ�\‰\˜' HÑ,Ó-ð 	M°Ü—‘œz°Ô5ñ MÜ—‘˜e°ÀGÕL÷M÷	Mð 	M÷Mð Mú÷	Mð 	Mús"   ›A-·A!ÁA-Á!A*	Á&A-Á-A6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                  |«       d}	t        j                  d|z   «      5 }t        j                  t        |	¬«      5  |j                  dd¬«      }|j                  ddgd¬	«      }d d 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 }t        j                  t        |	¬«      5  |j                  ddd¬«      }
d d d «       d d d «       t        j                  |
|j                  d d «       y # 1 sw Y   �Œ«xY w# 1 sw Y   �Œ%xY w# 1 sw Y   �Œ*xY w# 1 sw Y   ŒÐxY w# 1 sw Y   ŒhxY w# 1 sw Y   ŒlxY w)Nr¦   r   r×   ry   r  úExcelFile.parse is deprecatedrZ   ©r=   )r½   r=   r  r  )r=   r  )rT   rM   r?   r”   r_   r]   rs   r^   r   Úparserƒ   )rt   r)   r   r   rC   rK   rY   r…   rv   Údepr_msgrË   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Ô,à2ˆÜ�\‰\˜' HÑ,Ó-ð 	@°Ü×+Ñ+¬NÀ(ÔKñ @Ø—k‘k !¨q�kÓ1�Ø—k‘k !¨q¨c¸Q�kÓ?�÷@÷	@ô 	×Ñ˜c 8Ô,Ü
×Ñ˜c 8Ô,ä�\‰\˜' HÑ,Ó-ð 	P°Ü—-‘- °!¸qÈQÔOˆC÷	Pä
×Ñ˜c 3§8¡8¨C¨R =Ô1ä�\‰\˜' HÑ,Ó-ð 	@°Ü×+Ñ+¬NÀ(ÔKñ @Ø—k‘k !¨q¸Q�kÓ?�÷@÷	@ô 	×Ñ˜c 3§8¡8¨C¨R =Õ1÷-	Pñ 	Pú÷@ñ @ú÷	@ñ 	@ú÷	Pð 	Pú÷
@ð @ú÷	@ð 	@ús_   ´3HÂ5H*Ã)HÃ:H*ÅH7Æ+IÇIÇIÈHÈH'	È"H*È*H4È7I ÉI	ÉIÉIc                ó^  — t        ||«       |}t        |||«       d}d}d}t        j                  ||z   «      5 }	t	        j
                  t        |¬«      5  |	j                  |d¬«      }
d d d «       d d d «       t        j                  ||z   «      5 }	t	        j
                  t        |¬«      5  |	j                  d|¬«      }d d d «       d d d «       t	        j                  
|«       t	        j                  |«       y # 1 sw Y   Œ–xY w# 1 sw Y   ŒšxY w# 1 sw Y   ŒVxY w# 1 sw Y   ŒZxY w)Nr¦   rŒ   rï  rZ   r   r×   rÅ  )	rT   rM   r?   r”   r]   r^   r   rñ  rs   )rt   r)   r   r   rC   rK   rÆ  r�   rò  rY   Ú	df1_parseÚ	df2_parses               r   rÇ  z!TestExcelFileRead.test_sheet_name´  s  € Ü# F¨GÔ4àˆÜ˜ (¨FÔ3àˆØˆ
à2ˆÜ�\‰\˜( XÑ-Ó.ð 	L°%Ü×+Ñ+¬NÀ(ÔKñ LØ!ŸK™K°:È˜KÓK�	÷L÷	Lô �\‰\˜( XÑ-Ó.ð 	L°%Ü×+Ñ+¬NÀ(ÔKñ LØ!ŸK™K°!À
˜KÓK�	÷L÷	Lô 	×Ñ˜i¨Ô2Ü
×Ñ˜i¨Õ2÷Lð Lú÷	Lð 	Lú÷
Lð Lú÷	Lð 	LúsG   ºDÁC?Á*DÂD#Â.DÃD#Ã?D	ÄDÄDÄD 	ÄD#Ä#D,r�   r¸   r   ró   rŒ   c                ól  — dj                  ddg«      }d}t        j                  t        |¬«      5  t	        j
                  d|z   «      5 }t        j                  t        |¬«      5  |j                  |¬«       d d d «       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)NrÏ  rÐ  rÑ  rï  rZ   r³  r  )
rÒ  r"   r´   r¿   r?   r”   r]   r^   r   rñ  )rt   r   r�   rb   rò  rY   s         r   rÓ  z+TestExcelFileRead.test_bad_sheetname_raisesÉ  s¥   € ð �h‰hØ+Ð-QÐRó
ˆð 3ˆÜ�]‰]œ:¨SÔ1ñ 	7Ü—‘˜g¨Ñ0Ó1ð 7°UÜ×/Ñ/´ÀhÔOñ 7Ø—K‘K¨:�KÔ6÷7÷7÷	7ð 	7÷7ð 7ú÷7ð 7ú÷	7ð 	7ús;   ±B*Á
BÁ&BÁ9BÂB*ÂBÂBÂB'	Â#B*Â*B3c                ó2  — d|z   }t        j                  |dd|¬«      }t        |d«      5 }t        j                  |«      5 }t        j                  |dd¬«      }d d d «       d d d «       t	        j
                  |«       y # 1 sw Y   Œ(xY w# 1 sw Y   Œ,xY w)Nr¦   rŒ   r   ©r�   r=   r   r§   r×   )r?   r_   r¨   r”   r]   rs   )rt   r   r   rÉ  rK   r   r¤   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)Nr¦   r§   rŒ   r   rù  )r¨   r?   r”   r_   Úclosed)rt   r   r   r   rV   s        r   Útest_reader_closes_filez)TestExcelFileRead.test_reader_closes_fileâ  sq   € Ü�'˜HÑ$ dÓ+ð 	U¨qÜ—‘˜a“ð U Dä—‘˜d¨xÀ1ÈVÕT÷U÷	Uð
 �xŠxˆ‰x÷	Uð Uú÷	Uð 	Uús"   �A+¦AÁ A+ÁA(	Á$A+Á+A4c                óð   — d}t        j                  d|z   «      5 }t        j                  t        |¬«      5  t        j
                  |d¬«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nz8Engine should not be specified when passing an ExcelFiler¦   rZ   r®   r\   rì  )rt   r   rb   Úxls       r   Útest_conflicting_excel_enginesz0TestExcelFileRead.test_conflicting_excel_enginesê  se   € àHˆä�\‰\˜' HÑ,Ó-ð 	0°Ü—‘œz°Ô5ñ 0Ü—‘˜b¨Õ/÷0÷	0ð 	0÷0ð 0ú÷	0ð 	0ús"   ›A,·A ÁA,Á A)	Á%A,Á,A5c                ó  — t        j                  d|z   |¬«      }t        d|z   d«      5 }|j                  «       }d d d «       t        j                  t	        «      |¬«      }t        j                  ||«       y # 1 sw Y   Œ@xY w)Nr¦   r\   r§   )r?   r_   r¨   râ  r   r]   rs   )rt   r   r   rK   r   r:   r/  s          r   Útest_excel_read_binaryz(TestExcelFileRead.test_excel_read_binaryò  sn   € ä—=‘= ¨8Ñ!3¸FÔCˆä�'˜HÑ$ dÓ+ð 	¨qØ—6‘6“8ˆD÷	ô —‘œw t›}°VÔ<ˆÜ
×Ñ˜h¨Õ/÷		ð 	ús   ªA:Á:Bc                óÚ   — t        d|z   d«      5 }t        j                  ||¬«      }d d d «       t        j                  d|z   |¬«      }t        j                  |«       y # 1 sw Y   Œ:xY w)Nr¦   r§   r\   )r¨   r?   r_   r]   rs   )rt   r   r   r   r«   rK   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*r   c                óØ   — t        dd«      5 }t        j                  t        d¬«      5  t	        j
                  |ddg¬«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nzdf_header_oob.xlsxr§   zexceeds maximumrZ   r   ry   r  )r¨   r"   r´   r¿   r?   r_   )rt   r   r   s      r   Ú)test_read_excel_header_index_out_of_rangez;TestExcelFileRead.test_read_excel_header_index_out_of_range  sa   € ô
 Ð&¨Ó-ð 	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        j                  dgd¬«      }t         j                  j                  ddgddg¬«      }t        j                  d	d
gg||d¬«      }t        j
                  |dddd	g¬«      }t        j                  ||«       y )NÚZÚI2ræ   rF  )rÊ   zB.1ÚI11ÚI12r?  ry   r¸   rZ  )rH   r‚   rn   rŒ   r   r+  )r?   rè   rð   r§  rq   r_   r]   rs   )rt   rÆ  r†   ÚcolsrK   r«   s         r   Útest_header_with_index_colz,TestExcelFileRead.test_header_with_index_col  s†   € ô �h‰h˜�u 4Ô(ˆÜ�}‰}×(Ñ(Ø˜Ð&¨u°e¨nð )ó 
ˆô —<‘< ! Q  °¸TÈÔQˆÜ—‘Ø °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                  j                  |d d |dd  g|d   j                  «       |d   j                  «       g¬
«      }	t        j                  g g |	¬«      }
t        j                  |
«       y # 1 sw Y   Œ®xY w)NÚtest_datetime_mir   ry   )rº  r=   r   z
2020-02-29z
2020-03-01r  r  rm   r?  rw  )rT   r?   r”   r_   rF   ÚDatetimeIndexrð   r@  Úto_pydatetimerq   r]   rs   )rt   r)   r   r   r   rY   r/  rL   ÚdtiÚexpected_column_indexrK   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ˆÜ "§¡× 9Ñ 9Ø��!ˆW�c˜!˜"�gÐà�A‘×$Ñ$Ó&Ø�A‘×$Ñ$Ó&ðð !:ó !
Ðô —<‘< ¨"Ð6KÔLˆä
×Ñ˜h¨Õ/÷	Uð 	Uús   §C0Ã0C9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 *rZ   zio.excelz.readerÚabc)r"   r´   r¿   r?   r`   r½  s     r   Útest_engine_invalid_optionz,TestExcelFileRead.test_engine_invalid_option2  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·  rO   r¸  rŒ   )r"   rp   rQ   rR   rS   r?   r”   Úsheet_names)rt   r)   r   r   rY   s        r   Útest_ignore_chartsheetsz)TestExcelFileRead.test_ignore_chartsheets8  s‡   € à�vÒÜ�K‰KÐDÔEØ�XÒØ×ÑÜ—‘×!Ñ!ØQð "ó ôô
 �\‰\˜,¨Ñ1Ó2ð 	3°eØ×$Ñ$¨¨
Ò2Ð2Ñ2÷	3÷ 	3ñ 	3ús   Á'BÂBc                óª  — t         f}|€t        j                  d|› �«       n4|dk(  r!dd l}t         |j                  j
                  f}n|dk(  r	ddlm} |f}t        |«      j                  dd¬«       |d	v rt        nd
}d|› d�}t        j                  ||¬«      5  	 t        j                  ||¬«       d d d «       y # |$ r Y Œw xY w# 1 sw Y   y xY w)NzInvalid test for engine=r   r   r   rÚ  Úcorruptzutf-8)Úencoding>   r   r   FzThe z engine is deprecatedrZ   r\   )r
   r"   rp   r   ÚbiffhrÙ  r   rÛ  r   Ú
write_textr   r]   r^   r?   r”   )rt   r   r7   Úerrorsr   rÛ  Úexpected_warningrb   s           r   Útest_corrupt_files_closedz+TestExcelFileRead.test_corrupt_files_closedE  sÜ   € ä�ˆØˆ>Ü�K‰KÐ2°6°(Ð;Õ<Ø�vÒÛä  $§*¡*×"6Ñ"6Ð7‰FØ�zÒ!Ý5à#Ð%ˆFäˆY‹×"Ñ" 9°wÐ"Ô?Ø-3Ð7IÑ-I�>ÈuÐØ�V�HÐ1Ð2ˆÜ×'Ñ'Ð(8ÀÔDñ 	ðÜ—‘˜Y¨vÕ6÷	ð 	øð ò Ùðú÷	ð 	ús*   ÂC	ÂB>Â>CÃC	ÃCÃC	Ã	CN)rÑ  rÒ  rÓ  rÜ  r"   rÕ  r    r¬   ræ  rR   rÔ  rê  rí  ró  rÇ  rÓ  rÊ  rü  rÿ  r  r  Úfilterwarningsr  r  r  r  r  r!  r-   r    r   rÚ  rÚ  -  sJ  „ ò7ð €V‡^�^˜DÔ!ñ3ó "ð3ò"ò$$0ðL ‡[�[×Ñ˜[Ò*=Ó>ñ0ó ?ð0ò0Mò2ò<3ð* ‡[�[×ÑØØ	
ˆQ�ˆF�Q˜�F˜H x°Ð&:¸XÀxÐ<PÐQóñ	7ó	ð	7ò0òò0ò0ò0ð ‡[�[×ÑØLóñ0óð0ð ‡[�[×ÑØLóð ‡[�[×Ñ˜Z¨/Ð;KÐ)LÓMñ
0ó Nóð
0ò0ò,ò3ór    rÚ  c                ó¨   —  | dddd«      }t        j                  t        d¬«      5  t        j                  |d¬«       d d d «       y # 1 sw Y   y xY w)	Nr9   r:   rY   z
test1.xlsbzpyxlsb engine is deprecatedrZ   r   r\   )r]   r^   r   r?   r_   )rA   ra   s     r   Útest_pyxlsb_engine_deprecatedr$  ]  sM   € ñ �D˜& '¨<Ó8€DÜ	×	#Ñ	#ÜÐ;ô
ñ -ô 	�‰�d 8Õ,÷-÷ -ñ -ús   §AÁAzJignore:The (xlrd|pyxlsb) engine is deprecated:pandas.errors.Pandas4Warningz#engine, module_name, read_ext, loadr   c                ó$   — | j                  |«      S r,   ©Úopen_workbook©Úmodra   s     r   rA  rA  m  s   € °3×3DÑ3DÀTÓ3J€ r    r   c                ó$   — | j                  |«      S r,   )Úload_workbookr(  s     r   rA  rA  n  s   € ¸C×<MÑ<MÈdÓ<S€ r    zodf.opendocumentr   c                ó$   — | j                  |«      S r,   )Úloadr(  s     r   rA  rA  o  s   € ¸c¿h¹hÀt»n€ r    r   c                ó$   — | j                  |«      S r,   r&  r(  s     r   rA  rA  p  s   € ¸×8IÑ8IÈ$Ó8O€ r    c                ó8   — | j                   j                  |«      S r,   )ÚCalamineWorkbookÚ	from_pathr(  s     r   rA  rA  u  s   € ˜c×2Ñ2×<Ñ<¸TÓB€ r    c                óh  — t        j                  |«      } | dddd|› �«      }t        j                  ||d¬«      }t        j                   |||«      «      5 }|j
                  |k(  sJ ‚	 d d d «       t        j                   |||«      d¬«      }	t        j                  |	|«       y # 1 sw Y   Œ>xY w)Nr9   r:   rY   r¦   r   )r   r=   rð  )r"   Úimportorskipr?   r_   r”   r   r]   rs   )
rA   r   Úmodule_namer   r-  Úmodulera   rK   rþ  r«   s
             r   Ú test_read_workbook_infers_enginer6  g  s    € ô( × Ñ  Ó-€FÙ�D˜& '¨U°8°*Ð+=Ó>€DÜ�}‰}˜T¨&¸AÔ>€Hä	�‰‘d˜6 4Ó(Ó	)ð #¨RØ�y‰y˜FÒ"Ð"Ñ"÷#ä�]‰]™4 ¨Ó-¸Ô;€FÜ×Ñ˜& (Õ+÷#ð #ús   ÁB(Â(B1)r   r4   ÚreturnÚbool)r   r4   r   ú
str | Noner7  r4   )rK   zpd.DataFramer   r4   r   r9  r7  rŽ   )<Ú
__future__r   r   r   Ú	functoolsr   r9   r   rú  Úpathlibr   rû  r²   Úurllib.errorr	   r1   Úzipfiler
   Únumpyr  r"   Úpandas.errorsr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr?   Úpandas._testingÚ_testingr]   Úpandas.io.excel._baserY   Ú_baser“  Úread_ext_paramsr#   Ú
skip_if_norR   r"  Úengine_paramsr   r%   rÕ  r4   r*   r   r   r7   rC   rF   rM   rT   rÔ  rc   re   rÚ  r$  r6  )ÚengrU   s   00r   ú<module>rN     sr  ðÝ "÷õ Ý Û 	Ý Û Û 	Ý !Û Ý ã Û å (ß )Ð )ã Ý ç +Ó +â=€ð
 €F‡L�LØàˆB�M‰M˜&Ó!Ø�K‰K×&Ñ&ØSóð
ôð €F‡L�LØàˆB�M‰M˜*Ó%ð
ôð €F‡L�LØàˆB�M‰M˜&Ó!Ø�K‰K×&Ñ&ØSóð �K‰K×&Ñ&ØTóð
ôð €F‡L�LØàˆB�M‰M˜(Ó#Ø�K‰K×&Ñ&ØUóð
ôð €F‡L�L�˜m˜bŸm™m¨EÓ2Ô3Ø€F‡L�L� = 2§=¡=Ð1BÓ#CÔDðS*€óZò*ð €‡�ð !÷àØ"òð Ù$ S¨#Ô.ñ 	˜˜SÕ!ðØ!óð 	ôñóðð ‡�ñó ðð
 ‡�ñó ðð
 ‡�ñó ðð ‡�ñó ðóó2ò
ð €‡�ˆzÓØ€‡�Ð Ó!Ø‡�×Ñ˜ ¨Ð 0Ó1ñ ó 2ó "ó ð ÷(i0ñ i0÷X+mñ mð`	 €‡�ˆxÓñ-ó ð-ð ‡�×ÑØPóð ‡�×ÑØ)à	�˜Ñ!JÐKØ	�Z Ñ*SÐTØ	Ð" FÑ,LÐMØ	�8˜WÑ&OÐPàØØÙBð		
ðóñ	,óóñ$	,ùó_8s   Ç L"
