
    dT              
          d dl m Z mZ d dlmZ d dlZd dlmZ d dlZd dlm	Z	 d dl
mZ d dlZd dlZd dlmc mZ d dlZd dlmZmZmZmZ d dlmZ d dlmZmZ g d	Z ej         d
 ej!        d
          g           ej         d ej!        d          g           ej         d ej!        d
          g           ej         d ej!        d                     ej         d ej!        d                    gZ"de#de$fdZ%d Z& ej'        d e"D             e#          d             Z(ej'        d             Z)ej'        d             Z* G d d          Z+ G d d          Z,dS )    )datetimetime)partialN)Path)URLError)
BadZipFile)	DataFrameIndex
MultiIndexSeries)ArrowStringArrayStringArray).xls.xlsx.xlsm.xlsb.odsxlrdmarksopenpyxlpyxlsbodfread_extreturnc                     | j         d         } | dk    r|dk    rdS | dk    r|dk    rdS |dk    r| dk    rdS | dk    r|dk    rdS |dk    r| dk    rdS | d	k    r|dk    rdS d
S )zm
    Filter out invalid (engine, ext) pairs instead of skipping, as that
    produces 500+ pytest.skips.
    r   r   r   Fr   r   r   r   r   T)values)enginer   s     ^/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/io/excel/test_readers.py_is_valid_engine_ext_pairr    :   s    
 ]1FF 2 2u8v--u6foouh'11u7v11uH..u4    c                 R    | j         |fz   }t          j        || j                  }|S )z
    engine gives us a pytest.param object with some marks, read_ext is just
    a string.  We need to generate a new pytest.param inheriting the marks.
    r   )r   pytestparamr   )r   r   r   	new_params       r   _transfer_marksr&   O   s.    
 ]h[(FV6<888Ir!   c                 b    g | ],}t           D ]"}t          ||          t          ||          #-S  )read_ext_paramsr    r&   ).0engexts      r   
<listcomp>r-   Z   sY       "  $S#..	S!!   r!   )paramsidsc                     | j         S )zS
    Fixture for Excel reader engine and read_ext, only including valid pairs.
    )r$   )requests    r   engine_and_read_extr2   Y   s     =r!   c                     | \  }}|S Nr(   r2   r   r   s      r   r   r   i   s    *FHMr!   c                     | \  }}|S r4   r(   r5   s      r   r   r   o   s    *FHOr!   c                   z   e Zd Z ej        d          d             Zd Zd Zd Zd Z	ej
                            dg d	g d
g dg dg dg dg          d             Zej
                            dddgddgg          d             Zd Zd Zd Zd Zd Ze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
                            d$d eg d%g d&g d%d'd(ej        d)gd*          fd+d,eed* e e g d%d+-           e g d&d,-          g d.d/d0ej        d1gd*          fg          d2             Z!d3 Z"d4 Z# e$j%        d5          d6             Z&ej
                            d7i d/fd8d9id:fg          d;             Z'd< Z(ej
                            d=d> ed?d@gi          fdA edBgC          fg          dD             Z)dE Z*dF Z+dG Z,dH Z-dI Z.dJ Z/ej
        0                    dK          dL             Z1dM Z2dN Z3dO Z4ej
                            dPdQdRdQgdQdRgdSdTdSgdSdTgg          dU             Z5dV Z6dW Z7ej
        j8         e9j8        dXdY          dZ                         Z:e$j;        ej
        j<        d[                         Z=ej
        j<        d\             Z>ej
        j?        d]             Z@d^ ZA e$j%        d_          d`             ZBda ZCdb ZDdc ZEej
                            dddeej        dfdgdfgfdhej        gdiz  fg          dj             ZFdk ZGdl ZHdm ZIdn ZJdo ZKdp ZLdq ZMdr ZNej
                            dsdtdudRd:gdRdfdtdvddRd:gdfdtdwdRd:gdRd:gdfdtdxdRd:gdRdfdydzdddRdgfdydzddd{ fg          d|             ZOd} ZPd~ ZQd ZRd ZSd ZTd ZUd ZVd ZWdS )TestReadersTautousec                     t          t          j        |          }|                     |ddd                     |                    t          d|           dS )zG
        Change directory and set engine for read_excel calls.
        r   iodataexcel
read_excelN)r   pdr@   chdirsetattrselfr   datapathmonkeypatchfuncs        r   cd_and_set_enginezTestReaders.cd_and_set_enginev   sX    
 r}V444((499:::Bd33333r!   c                    d }|                     t          j        d|           dddddd}t          d|z   d	          5 }t          j        |          }d d d            n# 1 swxY w Y   ||}n||d
d                   }||k    sJ d S )Nc                     | j         S r4   r<   )rE   argskwargss      r   parserz,TestReaders.test_engine_used.<locals>.parser   s
    ;r!   parser   r   r   r   xlsxxlsmxlsbxlsodstest1rb   )rC   rA   	ExcelFileopenr@   )	rE   r   r   rG   rN   expected_defaultsfresultexpecteds	            r   test_engine_usedzTestReaders.test_engine_used   s    	 	 	 	BL'6::: 
 
 'H$d++ 	&q]1%%F	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& HH(!""6H!!!!!!s    A!!A%(A%c                 H   d}t          j        t          |          5  t          j        d|z   ddd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        d|z   dd	gdd
           d d d            d S # 1 swxY w Y   d S )Nz Passing an integer for `usecols`matchrV   Sheet1r      
sheet_name	index_colusecolsSheet2rX   rf   skiprowsrg   rh   r#   raises
ValueErrorrA   r@   rE   r   msgs      r   test_usecols_intzTestReaders.test_usecols_int   sB   0]:S111 	 	M("x1a   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]:S111 	 	M("#   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   AA
A
,BBBc                    |dk    r8|j                             t          j                            d                     |                    ddg          }t          j        d|z   dd	g d
          }t          j        d|z   ddgd	g d
          }t          j	        ||d           t          j	        ||d           d S )Nr   3Sheets containing datetimes not supported by pyxlsbreasonBCcolumnsrV   rc   r   )r      rd   re   ri   rX   rj   Fcheck_names
node
add_markerr#   markxfailreindexrA   r@   tmassert_frame_equal)rE   r1   r   df_refdf1df2s         r   test_usecols_listzTestReaders.test_usecols_list   s    wL##!!P "     c
33mh8q)))
 
 
 mhSII
 
 
 	c6u====
c6u======r!   c                 v   |dk    r8|j                             t          j                            d                     |                    g d          }t          j        d|z   ddd	
          }t          j        d|z   ddgdd	          }t          j	        ||d           t          j	        ||d           |                    ddg          }t          j        d|z   ddd
          }t          j        d|z   ddgdd          }t          j	        ||d           t          j	        ||d           |                    ddg          }t          j        d|z   ddd
          }t          j        d|z   ddgdd          }t          j	        ||d           t          j	        ||d           d S )Nr   rs   rt   Arv   rw   rx   rV   rc   r   zA:Dre   ri   rX   rj   Fr{   rv   rw   zA,C,DzA,C:Dr}   rE   r1   r   r   r   r   df3s          r   test_usecols_strzTestReaders.test_usecols_str   s   wL##!!P "     nn___n55mh8q%
 
 
 mhS
 
 
 	c3E::::
c3E::::nnc3Zn00mh8q'
 
 
 mhS
 
 
 	c3E::::
c3E::::nnc3Zn00mh8q'
 
 
 mhS
 
 
 	c3E::::
c3E::::::r!   rh   )r   rX   rd   )r   rd   rX   )rX   r   rd   )rX   rd   r   )rd   r   rX   )rd   rX   r   c                     |dk    r8|j                             t          j                            d                     |ddg         }t          j        d|z   dd|	          }t          j        ||d
           d S )Nr   rs   rt   r   rw   rV   rc   r   re   Fr{   	r~   r   r#   r   r   rA   r@   r   r   )rE   r1   r   rh   r   r^   r]   s          r   .test_usecols_diff_positional_int_columns_orderz:TestReaders.test_usecols_diff_positional_int_columns_order   s     wL##!!P "     3*%h8q'
 
 
 	fhEBBBBBBr!   rv   Dc                     |ddg         }t          t          |                    |_        t          j        d|z   d|          }t          j        ||d           d S )Nrv   r   rV   rc   rf   rh   Fr{   )rangelenindexrA   r@   r   r   )rE   r   rh   r   r^   r]   s         r   .test_usecols_diff_positional_str_columns_orderz:TestReaders.test_usecols_diff_positional_str_columns_order	  s_    3*%s8}}--w1hPWXXX
fhEBBBBBBr!   c                     |dk    r8|j                             t          j                            d                     |}t          j        d|z   dd          }t          j        ||d	           d S )
Nr   rs   rt   rV   rc   r   rf   rg   Fr{   r   rE   r1   r   r   r^   r]   s         r   test_read_excel_without_slicingz+TestReaders.test_read_excel_without_slicing  s    wL##!!P "     w1hRSTTT
fhEBBBBBBr!   c                     |dk    r8|j                             t          j                            d                     |ddg         }t          j        d|z   ddd	
          }t          j        ||d           d S )Nr   rs   rt   rw   r   rV   rc   r   zA,D:Ere   Fr{   r   r   s         r   test_usecols_excel_range_strz(TestReaders.test_usecols_excel_range_str  s    wL##!!P "     3*%h8q'
 
 
 	fhEBBBBBBr!   c                     d}t          j        t          |          5  t          j        d|z   dd           d d d            d S # 1 swxY w Y   d S )NzInvalid column name: E1ra   rV   rc   zD:E1r   rl   ro   s      r   $test_usecols_excel_range_str_invalidz0TestReaders.test_usecols_excel_range_str_invalid+  s    ']:S111 	S 	SM'H,6RRRR	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S   AA
A
c                     d}t          j        t          |          5  t          j        d|z   ddgddg           d d d            d S # 1 swxY w Y   d S )Nz(list indices must be integers.*, not strra   rV   rc   r   rw   re   r#   rm   	TypeErrorrA   r@   ro   s      r   test_index_col_label_errorz&TestReaders.test_index_col_label_error1  s    8]9C000 	 	M("#%c
	   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A

AAc           	          t          j        d|z   dg d          }t          g dt          g gdz  g gdz  g d                    }t	          j        ||           d S )	NrV   Sheet3r   r   )r   EFrd   levelscodesnamesry   r   )rA   r@   r	   r   r   r   rE   r   r]   r^   s       r   test_index_col_emptyz TestReaders.test_index_col_empty<  s    h8
 
 
 #OORD1HRD1HOOOTTT
 
 
 	fh/////r!   rg   Nrz   c                     t          j        d|z   d|          }t          g dg dgg d          }|r |                    |j        |                   }t          j        ||           d S )NrV   Sheet4r   )i1ax)i2by)z
Unnamed: 0col1col2rx   )rA   r@   r	   	set_indexry   r   r   )rE   r   rg   r]   r^   s        r   test_index_col_with_unnamedz'TestReaders.test_index_col_with_unnamedG  s     h8y
 
 
 ///0:X:X:X
 
 
  	G))(*:9*EFFH
fh/////r!   c                     d}t          j        t          |          5  t          j        d|z   dg           d d d            d S # 1 swxY w Y   d S )NzEUsecols do not match columns, columns expected but not found: \['E'\]ra   rV   r   rh   rl   ro   s      r   %test_usecols_pass_non_existent_columnz1TestReaders.test_usecols_pass_non_existent_columnU  s    < 	
 ]:S111 	= 	=M'H,se<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=r   c                     d}t          j        t          |          5  t          j        d|z   ddg           d d d            d S # 1 swxY w Y   d S )Nz['usecols' must either be list-like of all strings, all unicode, all integers or a callable.ra   rV   E1r   r   rl   ro   s      r   test_usecols_wrong_typez#TestReaders.test_usecols_wrong_type^  s    D 	
 ]:S111 	A 	AM'H,tQi@@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As   AAAc                     t          j        d|z   d          }t          ddggddg          }t          j        ||           d S )	Ntest2rc   rf   aaaabbbbbTestTest1rx   rA   r@   r	   r   r   )rE   r   parsedr^   s       r   test_excel_stop_iteratorz$TestReaders.test_excel_stop_iteratorg  sS    w1hGGGvw/067:KLLL
fh/////r!   c                    |dk    r8|j                             t          j                            d                     t          j        d|z   d          }t          t          j	        ggdg          }t          j        ||           d S )	Nr   rs   rt   test3rc   r   r   rx   )r~   r   r#   r   r   rA   r@   r	   npnanr   r   )rE   r1   r   r   r^   s        r   test_excel_cell_error_naz$TestReaders.test_excel_cell_error_nal  s    wL##!!P "     w1hGGGrvhZ&:::
fh/////r!   c                    |dk    r8|j                             t          j                            d                     t          j        d|z   dd          }t          j        d|z   dd	gd
          }t          j        ||d           t          j        ||d           t          j        d|z   ddd	          }t          j        ||j	        d d                    d S )Nr   rs   rt   rV   rc   r   r   ri   rX   rf   rk   rg   Fr{   rf   rg   
skipfooter)
r~   r   r#   r   r   rA   r@   r   r   ilocr   s          r   test_excel_tablezTestReaders.test_excel_tablex  s   wL##!!P "     mGh.8qQQQmh8qcQ
 
 
 	c6u====
c6u====mh8qQ
 
 
 	c38CRC=11111r!   c                    |dk    r8|j                             t          j                            d                     t          j        g dg dg dg dg dt          d	d
d          t          d	d
d          t          ddd          t          d	dd          t          ddd          gd          }d}t          j	        ||z   d          }t          j        ||           |                                }d|j        |j        d         df<   t          j	        ||z   d          }t          j        ||           t          |j                  D ]I\  }}t          j	        ||z   d|          }|                    |          }	t          j        ||	           J|d                             t&                    |d<   t          j	        ||z   ddt&          i          }t          j        ||           d S )Nr   rs   rt   )rX   rz      r   )g      ?g      @gHzG?gQ?g&.>)TFTTF)rX   rz   rd   r      )r   rd   cdei  
         iq  rX         i  rd   )IntColFloatColBoolColStrColStr2ColDateCol
test_typesrc   r   g      @r   r   r   rf   
converters)r~   r   r#   r   r   r	   	from_dictr   rA   r@   r   r   copylocr   	enumeratery   r   applystr)
rE   r1   r   r^   basenameactualfloat_expectedicolnameexps
             r   test_reader_special_dtypesz&TestReaders.test_reader_special_dtypes  s2   wL##!!P "     &***BBB;;;)//222T2r**T2r**T1a((T2r**T1b)) 
 
    x(2xHHH
fh/// "AD>/2I=>x(2xHHH
fn555 $H$455 	/ 	/JD$]8#D  F $$T**C!&#....%h/55c::xH(C
 
 
 	fh/////r!   c           
          d}t          j        g ddt          j        dddgg ddt          j        d	d
dgd          }d d d d d}t	          j        ||z   d|          }t          j        ||           d S )Ntest_converters)rX   rz   r   r   g      )@gL2@g3333333@g:0y5>)Foundr   r   	Not foundr   1345)r   r   r   r   c                 0    | dk    rt          |           ndS )N r   )intr   s    r   <lambda>z4TestReaders.test_reader_converters.<locals>.<lambda>  s    !r''Au r!   c                 (    | rd| z  nt           j        S )Nr   )r   r   r  s    r   r  z4TestReaders.test_reader_converters.<locals>.<lambda>  s    A"9"q&&26 r!   c                     | dk    rdndS )Nr  r   r   r(   r  s    r   r  z4TestReaders.test_reader_converters.<locals>.<lambda>  s    AGG r!   c                 (    | rt          |           ndS )Nr  )r   r  s    r   r  z4TestReaders.test_reader_converters.<locals>.<lambda>  s    1,Q" r!   )r   r   rz   rd   rc   r   )r	   r   r   r   rA   r@   r   r   )rE   r   r   r^   r   r   s         r   test_reader_convertersz"TestReaders.test_reader_converters  s    $&...!264{CLLLS#6	 
 
 =<99<<,,	
 

 xH
 
 
 	fh/////r!   c           	      t   d}t          j        ||z             }t          g dg dg dddt          j        dgd                              g d          }t          j        ||           t          j        ||z   d	d
t          d          }|d         	                    d	          |d<   |d         	                    d
          |d<   g d|d<   t          j        ||           d}t          j        t          |          5  t          j        ||z   ddi           d d d            d S # 1 swxY w Y   d S )N	testdtyperX   rz   rd   r         @      @      @      @      ?       @      @r   r   r   r   rx   float64float32)r   r   r   dtyper   r   001002003004r   z(Unable to convert column d to type int64ra   r   int64)rA   r@   r	   r   r   r   r   r   r   astyper#   rm   rn   )rE   r   r   r   r^   rp   s         r   test_reader_dtypezTestReaders.test_reader_dtype  s   x(233!\\)))!\\3,	 
 
 '...'
/
/ 	 	fh///xYYS'Q'Q
 
 
 !,,Y77 ,,Y77444
fh///8]:S111 	E 	EM(X-c7^DDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   D--D14D1zdtype,expectedr  r  r  r  r  r  r  r  r  r  r   2r  c                 f    d}t          j        ||z   |          }t          j        ||           d S )Nr  r  rA   r@   r   r   )rE   r   r  r^   r   r   s         r   test_reader_dtype_strz!TestReaders.test_reader_dtype_str  s;    : x(2%@@@
fh/////r!   c                    |dv rt          j        d| d           t          t          ddgd          t          dd	gd
          t          ddgd          t          ddgd          t          t          j        dgd          t          t          j        dgd
          t          t          j        dgd          t          t          j        dgd          t          t	          j        d          gdz            t          t          j        t          j        gd          d
          t          j        |          5 }	                    |dd           t	          j
        |d|          }d d d            n# 1 swxY w Y   |dk    rdd lddlm t          fdj        D                       } |d         j        j                                                d                              |d<                        d d g                    |d <   n}t          j        ||           d S )!Nr   r   No engine for filetype: ''rX   rd   Int64r  r  r  Float64TFbooleanr   r   string   g      @z
2019-12-31rz   )
r   r   r   r   r   r\   ghijtestr   rf   dtype_backendpyarrowr   )ArrowExtensionArrayc           	      ^    i | ])}|                      |         d                     *S )T)from_pandas)array)r*   colr;  dfpas     r   
<dictcomp>z2TestReaders.test_dtype_backend.<locals>.<dictcomp>7  sK        ,,RXXbg4X-P-PQQ  r!   r4  us)unitr5  )r#   skipr	   r   rA   NA	Timestampr   ensure_cleanto_excelr@   r:  pandas.arraysr;  ry   r>  _datacast	timestampr   )	rE   r   r9  	file_pathr]   r^   r;  r@  rA  s	         @@@r   test_dtype_backendzTestReaders.test_dtype_backend  s   (((K?H???@@@QF'222S#Ji888T5M;;;S#Jh777RUAJg666RUCL	:::RUDM;;;RUCL999R\,7781<==RUBEN'::: 
 
 _X&& 	)KK	6K777]fM  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 I%%    999999      !z   H 0/#)..r|||/F/FGG HSM 0/$0F0FGGHSMMH
fh/////s   0FF	Fc                 t   |dv rt          j        d| d           t          t          j        dgdt          j        gd          }t          j        |          5 }|                    |dd	           t          j	        |dd
d          }d d d            n# 1 swxY w Y   t          j
        ||           d S )Nr*  r+  r,  r  r  r   r   r6  Fr7  numpy_nullabler  )rf   r9  r  )r#   rE  r	   r   r   r   rH  rI  rA   r@   r   )rE   r   r@  rN  r]   s        r   test_dtype_backend_and_dtypez(TestReaders.test_dtype_backend_and_dtypeF  s   (((K?H???@@@bfc]#rv??@@_X&& 	)KK	6K777]!.	  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	fb)))))s   1BBBr:  c           
         |dv rt          j        d| d           dd l}t          j        d|          5  t          t          j        ddgt          j                  t          j        d	t          j	        gt          j                  d
          }t          j        |          5 }|                    |dd           t          j        |dd          }d d d            n# 1 swxY w Y   |dk    rwt          t          t          j        ddgt          j                            t          t          j        d	t          j	        gt          j                            d
          }nVt          t          |                    ddg                    t          |                    d	d g                    d
          }t          j        ||           d d d            d S # 1 swxY w Y   d S )Nr*  r+  r,  r   zmode.string_storager   r   r  r   rQ  r6  Fr7  rR  r8  python)r#   rE  r:  rA   option_contextr	   r   r>  object_rF  r   rH  rI  r@   r   r   r   )rE   r   string_storagerA  r@  rN  r]   r^   s           r   test_dtype_backend_stringz%TestReaders.test_dtype_backend_stringV  se    (((K?H???@@@4nEE 	4 	43*BJ???3,bjAAA  B ** iIvU;;;&@P                 ))$(3*BJ)O)O)OPP(3,bj)Q)Q)QRR   %-bhhSz.B.BCC-bhhT{.C.CDD   !&(3337	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s7   A1G#'0C#G##C'	'G#*C'	+C+G##G'*G'zdtypes, exp_valuea.1r"  rX   c                     d}dt           i|}|                                }t          j        ||z   |          }t	          dg|gd          }||k    s
J d            t          j        ||           d S )Ndf_mangle_dup_col_dtypesr   r  r   )r   rZ  zdtype dict changed)r   r   rA   r@   r	   r   r   )	rE   r   dtypes	exp_valuer   
dtype_dictdtype_dict_copyr]   r^   s	            r   test_dtype_mangle_dup_colsz&TestReaders.test_dtype_mangle_dup_cols{  s     .3)&)
$//++x(2*EEEC5)==>>_,,,.B,,,
fh/////r!   c                     d}t          j        ||z             }t          dg di          }t          j        ||           d S )Ntest_spacestestcol)zthis is greatz4    spacesz1 trailing z
 1 leadingz2  spaces  multiple  timesr   )rE   r   r   r   r^   s        r   test_reader_spaceszTestReaders.test_reader_spaces  s\     x(233   

 

 	fh/////r!   zbasename,expectedzgh-35802COLUMNzTest (1)zgh-36122z
got 2nd sarx   c                     |dk    rt          j        d|            t          j        ||z             }t	          j        ||           d S )Nr   zSkipped for engine: )r#   rE  rA   r@   r   r   )rE   r   r   r   r^   r   s         r   test_read_excel_ods_nested_xmlz*TestReaders.test_read_excel_ods_nested_xml  sS     U??K7v77888x(233
fh/////r!   c                     d}t          j        ||z   d           }g d}t          j        ||                                           |t          |                                          k    sJ d S )Ntest_multisheetr   )CharlieAlphaBeta)rA   r@   r   assert_contains_allkeyslistrE   r   r   dfsexpected_keyss        r   test_reading_all_sheetsz#TestReaders.test_reading_all_sheets  sq     %mHx/DAAA444
}chhjj999 SXXZZ 0 0000000r!   c                 2   d}g d}t          j        ||z   |          }t          t          |                    }t	          j        ||                                           t          |          t          |                                          k    sJ d S )Nrj  )rz   rk  rk  r   )rA   r@   rp  setr   rn  ro  r   )rE   r   r   rs  rr  s        r   %test_reading_multiple_specific_sheetsz1TestReaders.test_reading_multiple_specific_sheets  s     %111mHx/MJJJS//00
}chhjj999=!!S__444444r!   c                     d}t          j        ||z   d           }g d}t          j        ||                                           d S )Nblank_with_headerr   )rc   ri   r   )rA   r@   r   rn  ro  rq  s        r   "test_reading_all_sheets_with_blankz.TestReaders.test_reading_all_sheets_with_blank  sN     'mHx/DAAA666
}chhjj99999r!   c                 z    t          j        d|z   d          }t          j        |t	                                 d S )Nblankrc   r   )rA   r@   r   r   r	   )rE   r   r   s      r   test_read_excel_blankz!TestReaders.test_read_excel_blank  s8    w1hGGG
fikk22222r!   c                     t          ddg          }t          j        d|z   d          }t          j        ||           d S )Ncol_1col_2rx   ry  rc   r   )r	   rA   r@   r   r   )rE   r   r^   r   s       r   !test_read_excel_blank_with_headerz-TestReaders.test_read_excel_blank_with_header  sJ    gw%78882X=(SSS
fh/////r!   c                 @   t          j        t          d          5  t          j        d|z   dgd            d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        d|z   d d            d d d            d S # 1 swxY w Y   d S )	Nz \(sheet: Sheet1\)$ra   ry  rX   )headerrf   rV   c                     ddz  S )NrX   r   r(   r  s    r   r  zHTestReaders.test_exception_message_includes_sheet_name.<locals>.<lambda>  s
    A r!   )rh   rf   )r#   rm   rn   rA   r@   ZeroDivisionErrorrE   r   s     r   *test_exception_message_includes_sheet_namez6TestReaders.test_exception_message_includes_sheet_name  sL   ]:-CDDD 	W 	WM-8!QUVVVV	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W],4JKKK 	X 	XM'H,ooRVWWWW	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	Xs#   AAA*BBBz-ignore:Cell A4 is marked:UserWarning:openpyxlc                 R   |dk    r8|j                             t          j                            d                     t          t          j        d          dgt          j        d          dgdd	ggd
dg          }|dk    r8|j                             t          j                            d                     |<|dv r8|j                             t          j                            d                     t          j        d|z             }t          j
        ||           d S )Nr   rs   rt   z
2016-03-12zMarc Johnsonz
2016-03-16z
Jack Blackg@xDzTimothy BrownDateColWithBigInt	StringColrx   r   zMaybe not supported by openpyxl)r   r   z)Defaults to openpyxl, maybe not supportedtestdateoverflow)r~   r   r#   r   r   r	   rA   rG  r@   r   r   )rE   r1   r   r   r^   r]   s         r   test_date_conversion_overflowz)TestReaders.test_date_conversion_overflow  sH    XL##!!P "     l++^<l++\:'
 )+6
 
 
 ZL##!!)J!KK   >h*<<<L##!!)T!UU   1H<==
fh/////r!   c                 N   |dk    r8|j                             t          j                            d                     d}d}t          j        ||z   |d          }t          j        ||z   d|          }t          j        ||d	
           t          j        ||d	
           d S Nr   rs   rt   rV   rc   r   r   )rg   rf   Fr{   r   )rE   r1   r   r   filenamerf   r   r   s           r   test_sheet_namezTestReaders.test_sheet_name  s    wL##!!P "    
 
mxJ!
 
 
 mHx/1TTT
c6u====
c6u======r!   c                     d|z   }t          j        |dd          }t          |d          5 }t          j        |dd          }t          j        ||           d d d            d S # 1 swxY w Y   d S )NrV   rc   r   r   rW   )rA   r@   rZ   r   r   )rE   r   pthr^   r\   r   s         r   test_excel_read_bufferz"TestReaders.test_excel_read_buffer  s     =QGGG#t__ 	4]1QGGGF!(F333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   -A''A+.A+c                     d}t          j        t          d          5  t          j        d|           d d d            d S # 1 swxY w Y   d S )NfoozUnknown engine: foora   r  r<   rl   )rE   
bad_engines     r   test_bad_engine_raisesz"TestReaders.test_bad_engine_raises  s    
]:-BCCC 	1 	1M"Z0000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   AA	Arf   rd   r   r   rc   c                     d}t          j        t          |          5  t          j        d|z   |           d d d            d S # 1 swxY w Y   d S Nz?Worksheet index 3 is invalid|Worksheet named 'Sheet4' not foundra   r|  r   rl   )rE   r   rf   rp   s       r   test_bad_sheetname_raisesz%TestReaders.test_bad_sheetname_raises  s     P]:S111 	E 	EM'H,DDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E   AA	A	c                     d| }d}t          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nr  uV   (No such file or directory|没有那个文件或目录|File o directory non esistente)ra   )r#   rm   FileNotFoundErrorrA   r@   )rE   r   bad_filerb   s       r   test_missing_file_raisesz$TestReaders.test_missing_file_raises'  s    ###i],E::: 	$ 	$M(###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   AA	A	c                     d}|
t           }d}n|dk    rddlm} |}d}n	t          }d}t	          j        ||          5  t          j        |           d d d            d S # 1 swxY w Y   d S )	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'zFile is not a zip filera   )rn   r   r  r   r#   rm   rA   r@   )rE   r   
bad_streamerrorrp   r  s         r   test_corrupt_bytes_raisesz%TestReaders.test_corrupt_bytes_raises.  s    
>E. C v&&&&&&E' C
 E*C]5,,, 	& 	&M*%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   A!!A%(A%z^https://raw.githubusercontent.com/pandas-dev/pandas/main/pandas/tests/io/data/excel/test1.xlsx)urlcheck_before_testc                     d|z   }t          j        |          }t          j        d|z             }t          j        ||           d S )NzYhttps://raw.githubusercontent.com/pandas-dev/pandas/main/pandas/tests/io/data/excel/test1rV   r'  )rE   r   r  	url_tablelocal_tables        r   test_read_from_http_urlz#TestReaders.test_read_from_http_urlD  sR    /19: 	 M#&&	mGh$677
i55555r!   c                 D   t          d|z   d          5 }|                    d                              d|z   |           d d d            n# 1 swxY w Y   d|z   }t          j        ||          }t          j        d|z             }t          j        ||           d S )NrV   rW   pandas-testKeyBodys3://pandas-test/test1)storage_options)rZ   Bucket
put_objectrA   r@   r   r   )rE   r   s3_resources3sor\   r  r  r  s           r   test_read_from_s3_urlz!TestReaders.test_read_from_s3_urlU  s     'H$d++ 	Yq}--88Wx=OVW8XXX	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y '1M#t<<<	mGh$677
i55555s   .AAAc                    t          d|z   d          5 }|                    d                              d|z   |           d d d            n# 1 swxY w Y   dd l} |j        di |}|                     d|z             5 }t          j        |          }d d d            n# 1 swxY w Y   t          j        d|z             }t          j        ||           d S )NrV   rW   r  r  r   r  r(   )	rZ   r  r  s3fsS3FileSystemrA   r@   r   r   )	rE   r   r  r  r\   r  s3r  r  s	            r   test_read_from_s3_objectz$TestReaders.test_read_from_s3_objectb  ss    'H$d++ 	Yq}--88Wx=OVW8XXX	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	T&&&&WW-899 	)Qa((I	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) mGh$677
i55555s#   .AAAB##B'*B'c                    t           j                             |ddd          d|z             }t          j        |          }	 t          j        d|z             }n_# t
          $ rR d                    t          j                                                              }t          j
        d|            Y nw xY wt          j        ||           d S )Nr=   r>   r?   rV   zfile://localhost/ zfailing on )ospathjoinrA   r@   r   platformunamestripr#   rE  r   r   )rE   r   rF   
localtabler  r  platform_infos          r   test_read_from_file_urlz#TestReaders.test_read_from_file_urls  s     W\\((4"A"A7XCUVV
mJ//	7&9J&FGGII 	7 	7 	7HHX^%5%566<<>>MK5m5566666	7
 	i55555s   A AB87B8c                     d|z   }t          j        |dd          }t          d|z             }t          j        |dd          }t          j        ||           d S )NrV   rc   r   r   )rA   r@   r   r   r   )rE   r   str_pathr^   path_objr   s         r   test_read_from_pathlib_pathz'TestReaders.test_read_from_pathlib_path  sc    X%=h!LLL(*++xHJJJ
h/////r!   zpy.pathc                    ddl m} t          j                            d|z             }t          j        |dd          } |                                d|z             }t          j        |dd          }t          j        ||           d S )Nr   )localrV   rc   r   )	py.pathr  r  r  r  rA   r@   r   r   )rE   r   	LocalPathr  r^   r  r   s          r   test_read_from_py_localpathz'TestReaders.test_read_from_py_localpath  s     	/.....7<<( 233=h!LLL9;;##Gh$677xHJJJ
h/////r!   c                     t           j                            d|z             }t          |d          5 }t	          j        |dd          }~|                                 d d d            d S # 1 swxY w Y   d S )NrV   rW   rc   r   r   )r  r  r  rZ   rA   r@   read)rE   r   r  r\   r   s        r   test_close_from_py_localpathz(TestReaders.test_close_from_py_localpath  s    7<<( 233(D!! 	QaHBBBAFFHHH		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   -A--A14A1c                    |dk    r8|j                             t          j                            d                     t          j        dt          ddd          t          ddd	d
          t          dddd          t          dddd          t          dddd          t          dddd          t          dddd          t          dddd           t          dd!dd"          t          d#d$d%d&          t          d'd(d)          gi          }t          j	        d*|z   d+,          }t          j        ||           t          j	        d-|z   d+,          }t          j        ||           d S ).Nr   rs   rt   TimerX   rz   rd   -   8   i r      1   i@ r1     *   i    9   #   i 	   )      i           i'	 r   i`
 5   i 5    %   r   i       6   
times_1900rc   r   
times_1904)r~   r   r#   r   r   r	   r   r   rA   r@   r   r   )rE   r1   r   r   r^   r   s         r   test_reader_secondszTestReaders.test_reader_seconds  sz   XL##!!P "     &AqMMBF++BF++BF++BF++BF++RV,,QF++RF++RF++R$$
 
$ |h68LLL
fh///|h68LLL
fh/////r!   c           
      d   |dk    r8|j                             t          j                            d                     t          j        ddgddgg          }d|z   }t          d	d
t          j	        d          dgddt          j	        d          dgddt          j	        d          dgddt          j	        d          dgg|          }t          j
        |ddd	gd          }t          j        ||           ||_        g d|_        t          j
        |ddd	g          }t          j        ||d           ||_        t          j
        |ddd	gdd	g           }t          j        ||d           g d|_        |                    d!d"g          |_        t          j
        |d#dd	g          }t          j        ||           t!          t#          d                    |_        |                    d$d%g          |_        t          j
        |d&dd	gd          }t          j        ||           |                    d	dgd	'                              d$d%g          |_        t          j
        |d(ddd	g           }t          j        ||           |                    d$d%g          |_        |                    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        ||           d S ),Nr   rs   rt   r  barr   r   testmultiindexrX   r  
2015-01-01Trz   r  
2015-01-02Frd   r  
2015-01-03r   r  
2015-01-04rx   	mi_columnr   )rf   r  rg   r  mi_indexr   r{   bothrf   rg   r  ilvl1ilvl2mi_index_namec1c2mi_column_name)levelname_with_int	both_nameboth_name_skiprows)rf   rg   r  rk   )r~   r   r#   r   r   r   from_productr	   rA   rG  r@   r   r   r   ry   	set_namesrp  r   
set_levels)rE   r1   r   mimi_filer^   r   s          r   test_read_excel_multiindexz&TestReaders.test_read_excel_multiindex  s   wL##!!P "     $uensCj%ABB"X- Cl33T:Cl33U;Cl33U;Cl33T:	 
 
 
 QFa
 
 
 	fh/// ///w:!QPPP
fhEBBBB 1a&!Q
 
 
 	fhEBBBB 0//w&899w?qRSfUUU
fh/// eAhh<<t55 0!Q1
 
 
 	fh/// ==!Qq=99CCT4LQQ1aV
 
 
 	fh/// <<t55w&8991vq!f
 
 
 	fh/// +!fq6
 
 
 	fh/////r!   zsheet_name,idx_lvl2both_name_blank_after_mi_namer   r   both_name_multiple_blanksr   c           
      :   |dk    r8|j                             t          j                            d                     d|z   }t          j        ddgddggd	d
g          }t          ddt          j	        d          dgddt          j	        d          dgddt          j	        d          dgddt          j	        d          dgg|t          j
        g d|fddg                    }t          j        ||ddgddg          }t          j        ||           d S ) Nr   z;Sheets containing datetimes not supported by pyxlsb (GH4679rt   r  r  r  r   r   r  r  r   rX   r  r  Trz   r  r  Frd   r  r  r   r  r  )r  r  r  r  r  r  r   r   r  )r~   r   r#   r   r   r   r  r	   rA   rG  from_arraysr@   r   r   )	rE   r1   r   rf   idx_lvl2r  r  r^   r]   s	            r   +test_read_excel_multiindex_blank_after_namez7TestReaders.test_read_excel_multiindex_blank_after_name  sa    wL##!!X "     #X-$uensCj%A$PTVVVCl33T:Cl33U;Cl33U;Cl33T:	 (---x8(  
 
 
 !!fq6	
 
 
 	fh/////r!   c                     d|z   }t          j        |dddg          }t          j        ddg          }t	          g dgd	z  |
          }t          j        ||           d S )Nr  index_col_noner   rX   rf   r  r   rv   keyvalr  rz   rx   )rA   r@   r   r  r	   r   r   )rE   r   r  r]   exp_columnsr^   s         r   &test_read_excel_multiindex_header_onlyz2TestReaders.test_read_excel_multiindex_header_onlyB  su     #X-w3CQPQFSSS -z>.JKKlll^a/EEE
fh/////r!   c           	      N   d|z   }t          j        g dg dg dg dg dg dg          }g d}t          g d	g d
gg dg dgd d g          }t          g d	d           }t	          |||          }t          j        |dd          }t          j        ||           ||_	        t          j        |dddg          }t          j        ||           t          j        g dg dg dg dg dg          }g d}t          g dg dgg dg dgd d g          }t          g dd           }t	          |||          }t          j        |dd          }t          j        ||           ||_	        t          j        |dddg          }t          j        ||d           d S )Ntest_index_name_pre17)NNNNN)R0C0R0C1R0C2R0C3R0C4)R1C0R1C1R1C2R1C3R1C4)R2C0R2C1R2C2R2C3R2C4)R3C0R3C1R3C2R3C3R3C4)R4C0R4C1R4C2R4C3R4C4)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   rX   rz   rd   r   r   r   r   r   ry   single_namesr   r   multi_namesrX   )r9  r:  r;  r<  r=  )r?  r@  rA  rB  rC  )r   rX   rz   rd   r   single_no_namesmulti_no_namesFr{   )
r   r>  r   r
   r	   rA   r@   r   r   r   )	rE   r   r  r>   ry   r  sir^   r   s	            r   test_excel_old_index_formatz'TestReaders.test_excel_old_index_formatM  s|   *X5
 x...888888888888888	
 	
 JIIMMMMMM &%%'9'9'9:,
 
 
 IIIPT
 
 
 TW===xNaPPP
fh///xMaQRVTTT
fh/// x888888888888888
 
 JIIGGGGGG #??OOO4,
 
 
 JJJQUVVVTW===x4EQRSSS
fh///x4DQRTUPVWWW
fhEBBBBBBr!   c                     d}dD ]N}t          j        t          |          5  t          j        d|z   |           d d d            n# 1 swxY w Y   Od S )Nz#Passing a bool to header is invalid)TFra   rV   r  r   )rE   r   rp   args       r   test_read_excel_bool_header_argz+TestReaders.test_read_excel_bool_header_arg  s    3  	> 	>Cy444 > >g0====> > > > > > > > > > > > > > >	> 	>s   AA	A	c           
         |dk    r8|j                             t          j                            d                     t          j        d|z   dddg          }t          d	d
t          j        d          dgddt          j        d          dgddt          j        d          dgddt          j        d          dggg d          }t          j
        ||           t          j        d|z   dt          j        ddg                    }t          j
        ||           t          j        d|z   dd           }t          j
        ||           t          j        d|z   ddg d          }t          ddt          j        d          dgddt          j        d          dgddt          j        d          dggg d          }t          j
        ||           d S )Nr   rs   rt   testskiprowsskiprows_listr   rz   rf   rk   rX   r  r  Tr  r  Frd   r  r  r   r  r  r  rx   c                 
    | dv S N)r   rz   r(   r  s    r   r  z6TestReaders.test_read_excel_skiprows.<locals>.<lambda>  s
    qF{ r!   )rf   rk   r   )r~   r   r#   r   r   rA   r@   r	   rG  r   r   r   r>  rE   r1   r   r   r^   s        r   test_read_excel_skiprowsz$TestReaders.test_read_excel_skiprows  s7   wL##!!P "     X%/QPQF
 
 
 Cl33T:Cl33U;Cl33U;Cl33T:	 )((
 
 
 	fh///X%&Xq!f%%
 
 

 	fh/// X%&**
 
 

 	fh///X%&&&&	
 
 
  Cl33U;Cl33U;Cl33T:	 )((
 
 
 	fh/////r!   c                 d   |dk    r8|j                             t          j                            d                     t          j        d|z   dd           }t          dd	t          j        d
          dgddt          j        d          dggg d          }t          j
        ||           d S )Nr   rs   rt   rQ  rR  c                 
    | dvS )N)rX   rd   r   r(   r  s    r   r  zFTestReaders.test_read_excel_skiprows_callable_not_in.<locals>.<lambda>  s    q	1 r!   rS  rX   r  r  Trd   r  r  Fr  rx   )r~   r   r#   r   r   rA   r@   r	   rG  r   r   rV  s        r   (test_read_excel_skiprows_callable_not_inz4TestReaders.test_read_excel_skiprows_callable_not_in  s    wL##!!P "     X%&11
 
 

 Cl33T:Cl33U; )((
 
 
 	fh/////r!   c                     d}t          j        d|z   |          }t          j        d|z             }|d |         }t          j        ||           d S )Nr   rV   nrowsr'  )rE   r   num_rows_to_pullr   r^   s        r   test_read_excel_nrowsz!TestReaders.test_read_excel_nrows  s`    w19IJJJ=8!344---.
fh/////r!   c                     t          j        d|z             }t          |          }|dz   }t          j        d|z   |          }t          j        ||           d S )NrV   r   r\  )rA   r@   r   r   r   )rE   r   r^   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  s`    =8!344!(mm.3w19IJJJ
fh/////r!   c                     d}t          j        t          |          5  t          j        d|z   d           d d d            d S # 1 swxY w Y   d S )Nz'nrows' must be an integer >=0ra   rV   r  r\  rl   ro   s      r   +test_read_excel_nrows_non_integer_parameterz7TestReaders.test_read_excel_nrows_non_integer_parameter  s    .]:S111 	9 	9M'H,C8888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9r  z-filename,sheet_name,header,index_col,skiprowsr  r  r  r  r  rQ  rR  c                 
    | dv S rU  r(   r  s    r   r  zTestReaders.<lambda>
  s
    AK r!   c                     t          j        ||z   ||||          j        dd         }t          j        ||z   ||||d          }t          j        ||           dS )z
        For various parameters, we should get the same result whether we
        limit the rows during load (nrows=3) or after (df.iloc[:3]).
        )rf   r  rg   rk   Nrd   )rf   r  rg   rk   r]  )rA   r@   r   r   r   )	rE   r   r  rf   r  rg   rk   r^   r   s	            r   test_read_excel_nrows_paramsz(TestReaders.test_read_excel_nrows_params  s    & =x!
 
 
 rr x!
 
 
 	fh/////r!   c                     t          j        t          d          5  t          j        d|z   dd           d d d            d S # 1 swxY w Y   d S )Nzbut 3 positional argumentsra   rV   rc   r   r   r  s     r   test_deprecated_kwargsz"TestReaders.test_deprecated_kwargs&  s    ]9,HIII 	; 	;M'H,h:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   AA
Ac                     d|z   }g d}t          j        g dd          }t          ||d          }t          j        |dd	d
gd           }t          j        ||           d S )Nr  ))rv   rv   r  rd   r   rk  ))r   r   r  rX   rz   rl  )r   rX   r  )rz   rd   rE  r  r   rX   r  )r   from_tuplesr	   rA   r@   r   r   )rE   r   	file_namer>   idxr^   r]   s          r   "test_no_header_with_list_index_colz.TestReaders.test_no_header_with_list_index_col*  s    $x/	;;;$888
 
 
 Tf==="2q!fT
 
 
 	h/////r!   c                     d|z   }dt           j        ddg}t          |dg          }t          j        |          }t          j        ||           d S )None_col_blank_lineg      ?rX   rz   numbersrx   )r   r   r	   rA   r@   r   r   )rE   r   rn  r>   r^   r]   s         r   test_one_col_noskip_blank_linez*TestReaders.test_one_col_noskip_blank_line7  sX    (83	RVQ"TI;777y))
fh/////r!   c                 &   d|z   }t          j        ddg          }t          j        t          j        gt          j        t          j        gddgddgg}t	          ||          }t          j        |d	d
dg          }t          j        ||           d S )Nr  )r   r   )r   rv   rX   rd   rz   r   rx   mi_column_empty_rowsr   r  )	r   rm  r   r   r	   rA   r@   r   r   )rE   r   rn  ry   r>   r^   r]   s          r    test_multiheader_two_blank_linesz,TestReaders.test_multiheader_two_blank_lines?  s    $x/	(*j)ABB 2626"2QFQFCT7333"8!Q
 
 
 	fh/////r!   c                 R    d|z   }t          j        |          }|j        dk    sJ dS )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)rd   rd   N)rA   r@   shape)rE   r   rn  r]   s       r   test_trailing_blanksz TestReaders.test_trailing_blanksJ  s6    
 &0	y))|v%%%%%%r!   c                 P   |dk    rt          j        d           |dk    r8|j                            t           j                            d                     t          j        t          d          5  t          j	        d|z   d	
           d d d            d S # 1 swxY w Y   d S )Nr   *chartsheets do not exist in the ODF formatr   4pyxlsb can't distinguish chartsheets from worksheetsrt   z"Worksheet named 'Chart1' not foundra   
chartsheetChart1r   
r#   rE  r~   r   r   r   rm   rn   rA   r@   rE   r1   r   r   s       r   test_ignore_chartsheets_by_strz*TestReaders.test_ignore_chartsheets_by_strS  s   U??KDEEEXL##!!Q "    
 ]:-QRRR 	H 	HM,1hGGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H   4BB"Bc                 P   |dk    rt          j        d           |dk    r8|j                            t           j                            d                     t          j        t          d          5  t          j	        d|z   d	
           d d d            d S # 1 swxY w Y   d S )Nr   r}  r   r~  rt   z0Worksheet index 1 is invalid, 1 worksheets foundra   r  rX   r   r  r  s       r   test_ignore_chartsheets_by_intz*TestReaders.test_ignore_chartsheets_by_int`  s   U??KDEEEXL##!!Q "    
 ]P
 
 
 	A 	A M,1a@@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	Ar  c                     t          j        d|z   dd          }t          g dg dg dgg d	          }t          j        ||           d S )
Ntest_decimal,rX   )decimalrk   )rX   gAc̝ė@g	hAABCpoig2[j@)rz   gHzG^@g{G@DEFuytgUq&?)rd   g%Cq@g^@GHIrezg)@)IdNumber1Number2Text1Text2Number3rx   r   r   s       r   test_euro_decimal_formatz$TestReaders.test_euro_decimal_formato  sy    ~8#PQRRRFFF@@@CCC
 NMM
 
 
 	fh/////r!   )X__name__
__module____qualname__r#   fixturerI   r_   rq   r   r   r   parametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r$  r	   r   r   r   r   r(  rO  rS  td
skip_if_norY  ra  re  rh  rt  rw  rz  r}  r  r  filterwarningsr  r  r  r  r  r  r  networkr   r  skip_if_not_us_locale
single_cpur  r  slowr  r  r  r  r  r  r  r  rK  rO  rW  rZ  r_  rb  rd  rg  ri  rp  rt  rw  r{  r  r  r  r(   r!   r   r8   r8   u   sj       V^D!!!4 4 "!4" " "0  $> > >03; 3; 3;j [IIIyyy)))YYY			999U C C C  [Y#sc3Z(@AAC C BAC
C 
C 
CC C CS S S	 	 		0 	0 	0 [[4)440 0 540= = =A A A0 0 0

0 
0 
02 2 2*00 00 00f0 0 04E E E: [ 	)\\111)\\!34	  
  icDD	#VLLL	BBB#V$8$8$8	JJJ999!34	  
	
 60 07 60+0 +0 +0Z* * *  R]9"4 "4 "4H [0B9w?OQR>S2TUU	0 	0 VU	00 0 0& [Hzl#;<<=L>:::;	
 0 0 01 1 15 5 5: : :3 3 30 0 0
X X X [ OPP0 0 QP0@> > >$4 4 41 1 1
 [	
QFQFHx&:Xx<PQ E E	 E$ $ $& & &, [RZ4   6 6  6 [	6 	6  	6 [6 6 6  [6 6 60 0 0 R]9
0 
0 
0  0 0 0BT0 T0 T0l [,rvsC.EF(26(Q,7	
  0  0  0D	0 	0 	0FC FC FCP> > >50 50 50n0 0 020 0 00 0 09 9 9 [7{QFAt<z4!Q>v1v1vt</!QDA_dD1a&A_dD:O:OP	

 
0 0
 
02; ; ;0 0 00 0 0	0 	0 	0& & &H H HA A A0 0 0 0 0r!   r8   c            
          e Zd Z ej        d          d             Zd Zd Zej        	                    dg d          d             Z
d	 Zd
 Zej        	                    ddddgddgdddgddgg          d             Zd Zd Zd Zd Zd Zd Zej        	                    dddg          d             Zd Zd Zd Zd ZdS ) TestExcelFileReadTr9   c                     t          t          j        |          }|                     |ddd                     |                    t          d|           dS )zH
        Change directory and set engine for ExcelFile objects.
        r<   r=   r>   r?   rY   N)r   rA   rY   rB   rC   rD   s        r   rI   z#TestExcelFileRead.cd_and_set_engine~  sX    
 r|F333((499:::BT22222r!   c                     dddddd}t          j        d|z             5 }|j        }d d d            n# 1 swxY w Y   ||}n||dd                   }||k    sJ d S )Nr   r   r   r   rP   rV   rX   )rA   rY   r   )rE   r   r   r[   r?   r]   r^   s          r   r_   z"TestExcelFileRead.test_engine_used  s    
 
 \'H,-- 	"\F	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" HH(!""6H!!!!!!s   488c                 n   t          j        d|z             5 }t          j        |dddg          }d d d            n# 1 swxY w Y   t          dgdgdgt          j        gdggd	g
          }t          j        ||           t          j        d|z             5 }t          j        |dddg          }d d d            n# 1 swxY w Y   t          t          j        gdgt          j        gt          j        gdggd	g
          }t          j        ||           t          j        d|z             5 }t          j        |dddg          }d d d            n# 1 swxY w Y   t          dgdgdgt          j        gdggd	g
          }t          j        ||           t          j        d|z             5 }t          j        |dddg          }d d d            n# 1 swxY w Y   t          t          j        gdgt          j        gt          j        gdggd	g
          }t          j        ||           d S )Ntest4rc   Fapplerf   keep_default_na	na_valuesrF  rX   rabbitr   rx   Ttest51.#QNANr   )rA   rY   r@   r	   r   r   r   r   )rE   r   r?   r   r^   s        r   test_excel_passes_naz&TestExcelFileRead.test_excel_passes_na  sV   \'H,-- 	](EgY  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 VaS4&26(XJ7&
 
 
 	fh///\'H,-- 	](DWI  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 fXsRVHrvh
;fX
 
 
 	fh/// \'H,-- 	](EgY  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 [1#w8*=x
 
 
 	fh///\'H,-- 	](DWI  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 fXsRVHrvh
;fX
 
 
 	fh/////sE   >AACCC2EEE5GG"G	na_filter)NTFc                 h   i }|||d<   t          j        d|z             5 }t          j        |fdddgd|}d d d            n# 1 swxY w Y   |du rdgd	gd
gdgdgg}n*t          j        gd	gt          j        gt          j        gdgg}t          |dg          }t          j        ||           d S )Nr  r  rc   Tr  r  Fr  rX   r   r  r   rx   )rA   rY   r@   r   r   r	   r   r   )rE   r   r  rM   r?   r   r^   s          r   test_excel_passes_na_filterz-TestExcelFileRead.test_excel_passes_na_filter  s)     "+F;\'H,-- 	]# $")	 
  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 "aS5'G9xjIHH1#x"&H:FHXx888
fh/////s   AA	A	c                 Z   |dk    r8|j                             t          j                            d                     t          j        d|z             5 }t          j        |dd          }t          j        |ddgd          }d d d            n# 1 swxY w Y   t          j	        ||d	
           t          j	        ||d	
           t          j        d|z             5 }|
                    dd          }|
                    ddgd          }d d d            n# 1 swxY w Y   t          j	        ||d	
           t          j	        ||d	
           t          j        d|z             5 }t          j        |ddd          }d d d            n# 1 swxY w Y   t          j	        ||j        d d                    t          j        d|z             5 }|
                    ddd          }d d d            n# 1 swxY w Y   t          j	        ||j        d d                    d S )Nr   rs   rt   rV   r   r   rX   r   Fr{   )rg   )rk   rg   r   r   )rg   r   )r~   r   r#   r   r   rA   rY   r@   r   r   rO   r   )rE   r1   r   r   r?   r   r   r   s           r   test_excel_table_sheet_by_indexz1TestExcelFileRead.test_excel_table_sheet_by_index  s5   wL##!!P "     \'H,-- 	P-!qAAAC-!qcQOOOC	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	c6u====
c6u====\'H,-- 	<++a1+--C++a1#+;;C	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	c6u====
c6u====\'H,-- 	P-!qQOOOC	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P
c38CRC=111\'H,-- 	<++a1+;;C	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	c38CRC=11111sH   1BBB#1D  D$'D$0FFFG>>HHc                    |dk    r8|j                             t          j                            d                     d}d}t          j        ||z             5 }|                    |d          }d d d            n# 1 swxY w Y   t          j        ||z             5 }|                    d|          }d d d            n# 1 swxY w Y   t          j	        ||d	
           t          j	        ||d	
           d S r  )
r~   r   r#   r   r   rA   rY   rO   r   r   )	rE   r1   r   r   r  rf   r?   	df1_parse	df2_parses	            r   r  z!TestExcelFileRead.test_sheet_name  s   wL##!!P "     
\(X-.. 	H%zQGGI	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H \(X-.. 	H%aJGGI	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	iUCCCC
iUCCCCCCs$   A>>BB CCCrf   rd   r   r   rc   c                     d}t          j        t          |          5  t          j        d|z             5 }|                    |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S r  )r#   rm   rn   rA   rY   rO   )rE   r   rf   rp   r?   s        r   r  z+TestExcelFileRead.test_bad_sheetname_raises	  s     P]:S111 	3 	3g011 3Uz2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s4   A1AA1A	A1 A	!A11A58A5c                 @   d|z   }t          j        |dd|          }t          |d          5 }t          j        |          5 }t          j        |dd          }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t	          j        ||           d S )NrV   rc   r   rf   rg   r   rW   r   )rA   r@   rZ   rY   r   r   )rE   r   r   r  r^   r\   rT   r   s           r   r  z(TestExcelFileRead.test_excel_read_buffer  s5    =QvVVV#t__ 	Na NCsx1MMMN N N N N N N N N N N N N N N	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	h/////s5   A>A'A>'A+	+A>.A+	/A>>BBc                     t          d|z   d          5 }t          j        |          5 }t          j        |dd|           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |j        sJ d S )NrV   rW   rc   r   r  )rZ   rA   rY   r@   closed)rE   r   r   r\   rQ   s        r   test_reader_closes_filez)TestExcelFileRead.test_reader_closes_file  s   'H$d++ 	Uqa UDdx1VTTTTU U U U U U U U U U U U U U U	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U
 xs4   A%AA%A	A%A	A%%A),A)c                     d}t          j        d|z             5 }t          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nz8Engine should not be specified when passing an ExcelFilerV   ra   r  r<   )rA   rY   r#   rm   rn   r@   )rE   r   rp   xls       r   test_conflicting_excel_enginesz0TestExcelFileRead.test_conflicting_excel_engines&  s    H\'H,-- 	0z555 0 0b////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s4   A1AA1A	A1 A	!A11A58A5c                    t          j        d|z   |          }t          d|z   d          5 }|                                }d d d            n# 1 swxY w Y   t          j        ||          }t	          j        ||           d S )NrV   r<   rW   )rA   r@   rZ   r  r   r   )rE   r   r   r^   r\   r>   r   s          r   test_excel_read_binaryz(TestExcelFileRead.test_excel_read_binary.  s    =8!3FCCC'H$d++ 	q6688D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 tF333
h/////s   AAAc                     t          d|z   d          5 }t          j        |          }d d d            n# 1 swxY w Y   t          j        d|z   |          }t          j        ||           d S )NrV   rW   r<   )rZ   rA   r@   r   r   )rE   r   r   r\   r]   r^   s         r   %test_excel_read_binary_via_read_excelz7TestExcelFileRead.test_excel_read_binary_via_read_excel8  s    'H$d++ 	&q]1%%F	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&=8!3FCCC
fh/////s   599c                     t          dd          5 }t          j        t          d          5  t	          j        |ddg           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nzdf_header_oob.xlsxrW   zexceeds maximumra   r   rX   rM  )rZ   r#   rm   rn   rA   r@   )rE   r   r\   s      r   )test_read_excel_header_index_out_of_rangez;TestExcelFileRead.test_read_excel_header_index_out_of_range?  s    &-- 	0z1BCCC 0 0aA////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s4   A*AA*A	A*A	A**A.1A.r  zdf_empty.xlsxzdf_equals.xlsxc                     t          dgd          }t          j        ddgddg          }t          d	d
gg||d          }t	          j        |dddd	g          }t          j        ||           d S )NZI2rD  r  )r   zB.1I11I12r  rX   rd   r"  )r   ry   r  rc   r   r  )r
   r   rm  r	   rA   r@   r   r   )rE   r  ro  colsr^   r]   s         r   test_header_with_index_colz,TestExcelFileRead.test_header_with_index_colE  s     SE%%%%z<&@PUWWWq!fXS$gNNNQ1v
 
 
 	h/////r!   c                 t   |dk    r8|j                             t          j                            d                     d|z   }t          j        |          5 }t          j        |ddgd|          }d d d            n# 1 swxY w Y   t          j	        t          j
        d          t          j
        d	          fgt          j
        d                                          t          j
        d	                                          g
          }t          g g |          }t          j        ||           d S )Nr   rs   rt   test_datetime_mir   rX   )r  rg   r   z
02/29/2020z
03/01/2020r  rE  )r~   r   r#   r   r   rA   rY   r@   r   rm  to_datetimeto_pydatetimer	   r   r   )	rE   r1   r   r   r\   r?   r   expected_column_indexr^   s	            r   test_read_datetime_multiindexz/TestExcelFileRead.test_read_datetime_multiindexP  sz   XL##!!P "     )\!__ 	U]5!Q1VTTTF	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U * 6n\**BN<,H,HIJ|,,::<<|,,::<<!
 !
 !
 Rr3HIII
h/////s   A??BBc                     t          j        t          d          5  t          j        d| dd          5  	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NzValue must be one of *ra   zio.excelz.readerabc)r#   rm   rn   rA   rV  r  s     r   test_engine_invalid_optionz,TestExcelFileRead.test_engine_invalid_optiong  s    ]:-EFFF 	 	"#?h#?#?#?GG                	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s3   AAAA	AA	AA #A c                 4   |dk    rt          j        d           |dk    r8|j                            t           j                            d                     t          j        d|z             5 }|j        dgk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   r}  r   r~  rt   r  rc   )	r#   rE  r~   r   r   r   rA   rY   sheet_names)rE   r1   r   r   r?   s        r   test_ignore_chartsheetsz)TestExcelFileRead.test_ignore_chartsheetsm  s    U??KDEEEXL##!!Q "    
 \,122 	3e$
22222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   0BBBc                    t           f}|t          j        d|            n|dk    rdd l}t           |j        j        f}t          j        d|           5 }t          |          	                    d           t          j
        d          5  	 t          j        ||           n# |$ r Y nw xY wd d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NzInvalid test for engine=r   r   corruptFr<   )r   r#   rE  r   biffhr  r   rH  r   
write_textassert_produces_warningrA   rY   )rE   r   r   errorsr   files         r   test_corrupt_files_closedz+TestExcelFileRead.test_corrupt_files_closedz  s   >K;6;;<<<<vKKK $*"67F_1x1122 	dJJ!!),,,+E22  Lf55555   D              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sZ   7CB>B'&B>'B/,B>.B//B>2C>C	CC	CCCN)r  r  r  r#   r  rI   r_   r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r(   r!   r   r  r  }  s       V^D!!!3 3 "!3" " "$$0 $0 $0L [[*=*=*=>>0 0 ?>002 2 2:D D D( [	
QFQFHx&:Xx<PQ 3 3	 30 0 0  0 0 00 0 00 0 00 0 0 [Z/;K)LMM0 0 NM00 0 0.  3 3 3    r!   r  )-r   r   	functoolsr   r  pathlibr   r  urllib.errorr   zipfiler   numpyr   r#   pandas.util._test_decoratorsutil_test_decoratorsr  pandasrA   r	   r
   r   r   pandas._testing_testingr   pandas.core.arraysr   r   r)   r$   r  engine_paramsr   boolr    r&   r  r2   r   r   r8   r  r(   r!   r   <module>r     sJ                				        ! ! ! ! ! !            ) ) ) ) ) ) ) ) )                            
 >==
 FLBM&!!
   FLBM*%%
   FLBM&!!
   FLx!8!8999FLmbmE22333/6     *        	       
   
E0 E0 E0 E0 E0 E0 E0 E0P(M M M M M M M M M Mr!   