+
    xȇi                       ^ RI Ht ^ RIHtHt ^ RIHt ^ RIHt ^ RIt^ RI	H
t
 ^ RIt^ RIt^ RIHt ^ RIt^ RIHt ^ RIt^ RIt^ RIHu Ht ^ RIt^ R	IHtHtHtHtHt ^ RI H!t" . R#Ot#]PH                  ! R
]PJ                  ! R
4      .R7      ]PH                  ! R]PJ                  ! R4      .R7      ]PH                  ! R]PJ                  ! R
4      .R7      ]PH                  ! R]PJ                  ! R4      R7      ]PH                  ! R]PJ                  ! R4      R7      ]PH                  ! R]PJ                  ! R4      R7      .t&R R lt'R t(]PR                  ! ]& U Uu. uF$  p ]# F  p]'! W4      '       g   K  ](! W4      NK  	  K&  	  upp ]*R7      R 4       t+]PR                  R 4       t,]PR                  R 4       t-]PR                  R 4       t.]PR                  R 4       t/R R lt0R R lt1R t2 ! R R 4      t3 ! R! R"4      t4R# u upp i )$    )annotations)datetimetime)partial)BytesION)Path)URLError)
BadZipFile)	DataFrameIndex
MultiIndexSeriesread_csvxlrdmarksopenpyxlpyxlsbodfcalaminepython_calaminec                    V ^8  d   QhRRRR/# )   read_extstrreturnbool )formats   "r/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/tests/io/excel/test_readers.py__annotate__r!   =   s            c                    V P                   ^ ,          p V R8X  d
   VR8X  d   R# V R8X  d
   VR8w  d   R# VR8X  d
   V R
9  d   R# V R8X  d
   VR8w  d   R# VR8X  d
   V R9  d   R# V R8X  d
   VR8w  d   R# R	# )za
Filter out invalid (engine, ext) pairs instead of skipping, as that
produces 500+ pytest.skips.
r   .xlsFr   .odsr   .xlsbr   T>   r   r   >   r   r   )values)enginer   s   &&r    _is_valid_engine_ext_pairr)   =   s    
 ]]1FF 28v-6f,??h'17v-CCH.r"   c                j    . V P                   OVN5p\        P                  ! W P                  R7      pV# )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.   R   s/    
 (v}}'h'FV<<8Ir"   )paramsidsc                    V P                   # )zK
Fixture for Excel reader engine and read_ext, only including valid pairs.
)r,   )requests   &r    engine_and_read_extr3   \   s     ==r"   c                    V w  rV# Nr   r3   r(   r   s   &  r    r(   r(   l   s    *FMr"   c                    V w  rV# r5   r   r6   s   &  r    r   r   r   s    *FOr"   c                x    V\         P                  ! 4        V  2,          pVP                  4        \        V4      # r5   )uuiduuid4touchr   )r   tmp_pathtmps   && r    	tmp_excelr>   x   s-    


~hZ0
0CIIKs8Or"   c                :    V ! RRRR4      p\        V^ RRR7      pV# )zA
Obtain the reference data from read_csv with the Python engine.
iodatacsvz	test1.csvTpython)	index_colparse_datesr(   )r   )datapathfilepathdf_refs   &  r    rH   rH      s)    
 fe[9Hh!hOFMr"   c               $    V ^8  d   QhRRRRRR/# )r   r   r   r(   
str | Noner   r   )r   s   "r    r!   r!      s!      3 
 s r"   c                    R # )usr   )r   r(   s   &&r    get_exp_unitrM      s    r"   c               (    V ^8  d   QhRRRRRRRR/# )	r   expectedr   r   r   r(   rJ   r   Noner   )r   s   "r    r!   r!      s(     2 2i 23 2
 2t 2r"   c                ~    R V P                   n        \        W4      pV P                   P                  V4      V n         R # r5   )indexnamerM   as_unit)rO   r   r(   units   &&& r    adjust_expectedrV      s.    HNN)D^^++D1HNr"   c                v    V R 8X  d2   VP                  \        P                  P                  RR7      4       R# R# )r   z3Sheets containing datetimes not supported by pyxlsbreasonN)applymarkerr+   markxfail)r(   r2   s   &&r    xfail_datetimes_with_pyxlsbr]      s7    KKL  	
 r"   c                     ] tR t^t]P
                  P                  R. R{OR.RR..4      R 4       tR t]P                  ! RR7      R 4       t
R	 tR
 tR tR tR t]P
                  P                  R. R|O. R}O. R~O. RO. RO. RO.4      R 4       t]P
                  P                  RRR.RR..4      R 4       tR tR tR tR tR tR t]P
                  P                  RR^.4      R 4       tR tR tR tR tR tR  tR! tR" t ]P
                  P                  R#RR$. ROR%. ROR&. ROR'R(R)]!PD                  R*./3R$R+R%R,R&]#R']#/R$]$! . ROR+R-7      R%]$! . ROR,R-7      R&]$! . ROR.R-7      R']$! R/R0]!PD                  R1.R.R-7      /3.4      R2 4       t%R3 t&R4 t'R5 t(]P
                  P                  R6/ ^3R7R8/^3.4      R9 4       t)R: t*]P
                  P                  R;R<]+! R=R>./4      3R?]+! R@.RA7      3.4      RB 4       t,RC t-RD t.RE t/RF t0RG t1RH t2]P
                  Pg                  RI4      RJ 4       t4RK t5RL t6RM t7]P
                  P                  RN^^ ^.^^ .RORPRO.RORP..4      RQ 4       t8RR t9RS t:]P
                  Pv                  ]P
                  Px                  RT 4       4       t=]>P~                  ]P
                  Px                  RU 4       4       t@]P
                  Px                  RV 4       tA]P
                  P                  RW 4       tCRX tDRY tERZ tFR[ tG]P
                  P                  R\R]]!PD                  R%R$R%.3R^]!PD                  .^,          3.4      R_ 4       tHR` tIRa tJRb tKRc tLRd tMRe tNRf tORg tP]P
                  P                  RhRiRj^ ^.^ R3RiRkR^ ^.R3RiRl^ ^.^ ^.R3RiRm^ ^.^ R3RnRoRR^ ^.3RnRoRRRp 3.4      Rq 4       tQRr tRRs tSRt tTRu tURv tVRw tWRx tXRy tYRztZR# )TestReaderscolTNFc                	    VR	9   d   \         P                  ! RV R24       \        RV/RR7      pVP                  VRR7       \        P
                  ! VRR/R7      p\        P                  ! WE4       R# )
r&   No engine for filetype: ''bool_columnbooleandtypeF)rR   Nr&   r$   )r+   skipr   to_excelpd
read_exceltmassert_frame_equal)selfr`   r>   r   dfdf2s   &&&&  r    test_read_excel_type_check&TestReaders.test_read_excel_type_check   sg     ((KK3H:Q?@s+9=
IU+mmImY-GH
b&r"   c                	   V! R RRR4      p\         P                  ! V4      ;_uu_ 4       p\         P                  ! VRR. RORRR7      pR	R	R	4       \        R
. RO/RR7      p\        P
                  ! XV4       R	#   + '       g   i     L:; i)r@   rA   excelztest_none_type.xlsxSheet1Tre   r   )
sheet_namekeep_default_na	na_valuesrg   r(   NTestrf   )nanrP   abcd)TNFNFNT)rk   	ExcelFilerl   r   rm   rn   )ro   rF   f_pathru   parsedrO   s   &&    r    test_pass_none_typeTestReaders.test_pass_none_type   s|    $1FG\\&!!U]]# $1!F " AB

 	fh/ "!s   A;;B	autousec                    \        \        P                  VR7      pVP                  V! RRR4      4       VP	                  \        RV4       R# )z7
Change directory and set engine for read_excel calls.
r(   r@   rA   ru   rl   N)r   rk   rl   chdirsetattrro   r(   rF   monkeypatchfuncs   &&&& r    cd_and_set_engineTestReaders.cd_and_set_engine   s=    
 r}}V4(49:Bd3r"   c           
     	>   R  pVP                  \        P                  RV4       RRRRRRRRR	R
/p\        RV,           R4      ;_uu_ 4       p\        P                  ! V4      pRRR4       Ve   TpMWQR,          ,          pXV8X  g   Q hR#   + '       g   i     L1; i)c                    V P                   # r5   r   )ro   argskwargss   &*,r    parser,TestReaders.test_engine_used.<locals>.parser   s    ;;r"   parsexlsxr   xlsmxlsbr   xlsr   odsr   test1rbN   NN)r   rk   r}   openrl   )	ro   r   r(   r   r   expected_defaultsfresultrO   s	   &&&&     r    test_engine_usedTestReaders.test_engine_used   s    	 	BLL'6: JJH65
 'H$d++q]]1%F , H("6H!!! ,+s   BB	c                	   R RR/RR^{/RRR/RRR/RRR//pVR9   d   \         P                  ! R	4      pM4VR
8X  d   \         P                  ! R4      pM\         P                  ! R4      pVe^   \        P                  ! \        VR7      ;_uu_ 4        \
        P                  ! RV,           R^ W1R,          ,          R7       RRR4       R# R#   + '       g   i     R# ; i)r   foor|   r   r   Truer   Tr   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'Nmatchr   rv   r   )rw   rD   engine_kwargs>   r   r   )reescaper+   raises	TypeErrorrk   rl   )ro   r   r(   r   msgs   &&&  r    test_engine_kwargsTestReaders.test_engine_kwargs   s     UFOUCLUFOE4=E6?
 ''))WXCu_))NOC))WXCy44h&'"3RL"A	 54 444s   /CC	c           
     	   R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! RV,           R^ ^R7       RRR4       \         P                  ! \        VR7      ;_uu_ 4        \        P                  ! RV,           R^.^ ^R7       RRR4       R#   + '       g   i     Lb; i  + '       g   i     R# ; i)z Passing an integer for `usecols`r   r   rv   rw   rD   usecolsNSheet2rw   skiprowsrD   r   r+   r   
ValueErrorrk   rl   ro   r   r   s   && r    test_usecols_intTestReaders.test_usecols_int   s    0]]:S11MM("x1a 2 ]]:S11MM("# 21 21 211s   "B#5$B6#B3	6C	c                	2   \        W!4       VR R.,          p\        WSV4       \        P                  ! RV,           R^ . ROR7      p\        P                  ! RV,           R^.^ . ROR7      p\        P
                  ! We4       \        P
                  ! Wu4       R# )	BCr   rv   r   r   r   N)r   r      r]   rV   rk   rl   rm   rn   )ro   r2   r(   r   rH   rO   df1rq   s   &&&&&   r    test_usecols_listTestReaders.test_usecols_list	  s    #F43*%F3mmh8q)
 mmhS
 	c,
c,r"   c                	   \        W!4       V. RO,          p\        WSV4       \        P                  ! RV,           R^ RR7      p\        P                  ! RV,           R^.^ RR7      p\        P
                  ! We4       \        P
                  ! Wu4       VRR.,          p\        WSV4       \        P                  ! RV,           R^ R	R7      p\        P                  ! RV,           R^.^ R	R7      p\        P
                  ! We4       \        P
                  ! Wu4       \        P                  ! RV,           R^ R
R7      p\        P                  ! RV,           R^.^ R
R7      p\        P
                  ! We4       \        P
                  ! Wu4       R# )Ar   r   r   rv   zA:Dr   r   r   zA,C,DzA,C:DNr   r   r   r   )ro   r2   r(   r   rH   rO   rq   df3s   &&&&&   r    test_usecols_strTestReaders.test_usecols_str  sV   #F4/*F3mmh8q%
 mmhS
 	c,
c,3*%F3mmh8q'
 mmhS
 	c,
c,mmh8q'
 mmhS
 	c,
c,r"   r   c                	    \        W!4       VR R.,          p\        WcV4       \        P                  ! RV,           R^ VR7      p\        P
                  ! Wv4       R# )r   r   r   rv   r   Nr   )ro   r2   r(   r   r   rH   rO   r   s   &&&&&&  r    .test_usecols_diff_positional_int_columns_order:TestReaders.test_usecols_diff_positional_int_columns_orderQ  sP     	$F43*%F3h8q'
 	f/r"   r   Dc                	    VR R.,          p\        \        V4      4      Vn        \        P                  ! RV,           RVR7      p\
        P                  ! WT4       R# )r   r   r   rv   rw   r   N)rangelenrR   rk   rl   rm   rn   )ro   r   r   rH   rO   r   s   &&&&  r    .test_usecols_diff_positional_str_columns_order:TestReaders.test_usecols_diff_positional_str_columns_ordera  sF    3*%s8}-w1hPWX
f/r"   c                	    \        W!4       Tp\        WSV4       \        P                  ! R V,           R^ R7      p\        P
                  ! We4       R# r   rv   rw   rD   Nr   ro   r2   r(   r   rH   rO   r   s   &&&&&  r    test_read_excel_without_slicing+TestReaders.test_read_excel_without_slicingi  s?    #F4F3w1hRST
f/r"   c                	    \        W!4       VR R.,          p\        WSV4       \        P                  ! RV,           R^ RR7      p\        P
                  ! We4       R# )r   r   r   rv   zA,D:Er   Nr   r   s   &&&&&  r    test_usecols_excel_range_str(TestReaders.test_usecols_excel_range_strr  sN    #F43*%F3h8q'
 	f/r"   c                	    R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! RV,           RRR7       RRR4       R#   + '       g   i     R# ; i)zInvalid column name: E1r   r   rv   zD:E1r   Nr   r   s   && r    $test_usecols_excel_range_str_invalid0TestReaders.test_usecols_excel_range_str_invalid}  s<    ']]:S11MM'H,6R 2111   !AA#	c           	     	    R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! RV,           RR.RR.R7       RRR4       R#   + '       g   i     R# ; i)z(list indices must be integers.*, not strr   r   rv   r   r   r   Nr+   r   r   rk   rl   r   s   && r    test_index_col_label_error&TestReaders.test_index_col_label_error  sJ    8]]9C00MM("#%c
	 1000s   %AA'	c                	    \         P                  ! R V,           RRR7      p\        . RO\        . RR7      R7      p\        P
                  ! W#4       R# )r   Sheet3r   r   rS   columnsrR   N)r   r   r   EF)rk   rl   r   r   rm   rn   ro   r   r   rO   s   &&  r    test_index_col_strTestReaders.test_index_col_str  s@    w1hRUV-U2C5H
 	f/r"   c           	     	    \         P                  ! R V,           R. ROR7      p\        . RO\        . .^,          . .^,          . ROR7      R7      p\        P
                  ! W#4       R# )r   r   r   levelscodesnamesr   Nr   )r   r   r   )rk   rl   r   r   rm   rn   r   s   &&  r    test_index_col_empty TestReaders.test_index_col_empty  sS    h8
 #RD1HRD1HOT
 	f/r"   rD   c                	    \         P                  ! R V,           RVR7      p\        . RO. RO.. ROR7      pV'       d#   VP                  VP                  V,          4      p\
        P                  ! W44       R# )r   Sheet4r   r   N)i1ax)i2by)z
Unnamed: 0col1col2)rk   rl   r   	set_indexr   rm   rn   )ro   r   rD   r   rO   s   &&&  r    test_index_col_with_unnamed'TestReaders.test_index_col_with_unnamed  sd     h8y
 /0:X
 ))(*:*:9*EFH
f/r"   c                	    R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! RV,           R.R7       RRR4       R#   + '       g   i     R# ; i)zEUsecols do not match columns, columns expected but not found: \['E'\]r   r   r   r   Nr   r   s   && r    %test_usecols_pass_non_existent_column1TestReaders.test_usecols_pass_non_existent_column  sC     	 ]]:S11MM'H,se< 2111r   c                	    R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! RV,           R^ .R7       RRR4       R#   + '       g   i     R# ; i)z['usecols' must either be list-like of all strings, all unicode, all integers or a callable.r   r   E1r  Nr   r   s   && r    test_usecols_wrong_type#TestReaders.test_usecols_wrong_type  sF    D 	
 ]]:S11MM'H,tQi@ 2111s   "AA$	c                	    \         P                  ! R V,           RR7      p\        RR..RR.R7      p\        P                  ! W#4       R# )	test2rv   rw   aaaabbbbbrz   Test1r   Nrk   rl   r   rm   rn   )ro   r   r   rO   s   &&  r    test_excel_stop_iterator$TestReaders.test_excel_stop_iterator  s>    w1hGvw/067:KL
f/r"   c                	<   \        W!4       VR 8X  d7   VR8X  d0   VP                  \        P                  P	                  RR7      4       \
        P                  ! RV,           RR7      p\        \        P                  ..R.R7      p\        P                  ! WE4       R	# )
r   r%   z+Calamine can't extract error from ods filesrX   test3rv   r  rz   r   N)r]   rZ   r+   r[   r\   rk   rl   r   npr{   rm   rn   )ro   r2   r(   r   r   rO   s   &&&&  r    test_excel_cell_error_na$TestReaders.test_excel_cell_error_na  sz    #F4 ZH$6!!)V!W w1hGrvvhZ&:
f/r"   c                	   \        W!4       Tp\        WSV4       \        P                  ! R V,           R^ R7      p\        P                  ! R V,           R^.^ R7      p\        P
                  ! We4       \        P
                  ! Wu4       \        P                  ! R V,           R^ ^R7      p\        P
                  ! WP                  RR 4       R# )r   rv   r   r   rw   r   rD   rw   rD   
skipfooterN)r]   rV   rk   rl   rm   rn   iloc)	ro   r2   r(   r   rH   rO   r   rq   r   s	   &&&&&    r    test_excel_tableTestReaders.test_excel_table  s    #F4F3mmGh.8qQmmh8qcQ
 	c,
c,mmh8qQ
 	c88CR=1r"   c                	   \        W!4       \        W24      p\        P                  ! R . ROR. ROR. ROR. ROR. ROR\	        \        R^
^4      \        R^
^4      \        R^^4      \        R^^4      \        R^^4      .R	V R
2R7      /4      pRp\        P                  ! Wc,           RR7      p\        P                  ! Wu4       VP                  4       pRVP                  VP                  ^,          R3&   \        P                  ! Wc,           RR7      p\        P                  ! Wx4       \        VP                  4       FK  w  r\        P                  ! Wc,           RV	R7      pVP                  V
4      p\        P                  ! W{4       KM  	  VR,          P!                  \"        4      VR&   \        P                  ! Wc,           RR\"        /R7      p\        P                  ! Wu4       R# )IntColFloatColBoolColStrColStr2ColDateColi  iq  i  M8[]rf   
test_typesrv   r  g      @r   rw   
convertersN)r   r      r   )g      ?g      @gHzG?gQ?g&.>)TFTTF)r   r   r   r.     )r   r   cde)r]   rM   r   	from_dictr   r   rk   rl   rm   rn   copylocrR   	enumerater   r   applyr   )ro   r2   r(   r   rU   rO   basenameactualfloat_expectedicolrS   exps   &&&&        r    test_reader_special_dtypes&TestReaders.test_reader_special_dtypes  s   #F4H-&&*B;/25 r2. r2. q!, r2. q"-  vQ-	
&   x2xH
f/ "AD>//2I=>x2xH
f5 $H$4$45JD]]#DF $$T*C!!&. 6 &h/55c:H(C
 	f/r"   c                	    R p\         P                  ! R. RORR\        P                  RRR.R. RORR	\        P                  R
RR./4      pRR RR ^R ^R /p\        P
                  ! W!,           RVR7      p\        P                  ! WS4       R# )test_convertersr"  r#  g      )@gL2@g3333333@g:0y5>r$  r%  1345c                *    V R 8w  d   \        V 4      # R# ) )intr   s   &r    <lambda>4TestReaders.test_reader_converters.<locals>.<lambda>&  s    !r'A <u <r"   c                D    V '       d
   ^
V ,          # \         P                  # )
   )r  r{   rI  s   &r    rJ  rK  '  s    A"q&"9266"9r"   c                    V R 8w  d   R# R# )rF  Found	Not foundr   rI  s   &r    rJ  rK  (  s    AG<<r"   c                ,    V '       d   \        V 4      # R # )rF  )r   rI  s   &r    rJ  rK  )  s    1Q,",r"   rv   r+  N)r   r   r-  rG  r   )rO  rO  rO  rP  rO  )r   r3  r  r{   rk   rl   rm   rn   )ro   r   r8  rO   r,  r9  s   &&    r    test_reader_converters"TestReaders.test_reader_converters  s    $&&.T2664{CL3S#6	
 <9<,	

 H
 	f/r"   c                	   R p\         P                  ! W!,           4      p\        R. ROR. ROR. RORRR\        P                  R./4      p\
        P                  ! W44       \         P                  ! W!,           RRRR	R\        /R
7      pVR,          P                  R4      VR&   VR,          P                  R	4      VR&   \        . RORR
7      VR&   \
        P                  ! W44       Rp\        P                  ! \        VR7      ;_uu_ 4        \         P                  ! W!,           RR/R
7       RRR4       R#   + '       g   i     R# ; i)	testdtyper   r   r0  r1        ?       @      @float64float32rf   r   z(Unable to convert column d to type int64r   int64Nr   r   r   r.        @      @      @      @001002003004)rk   rl   r   r  r{   rm   rn   r   astyper   r+   r   r   )ro   r   r8  r9  rO   r   s   &&    r    test_reader_dtypeTestReaders.test_reader_dtype3  s   x23\)\c3,	
 	f/YYS'Q
 !,,Y7 ,,Y7;5I
f/8]]:S11MM(-c7^D 2111s   !D77E	zdtype,expectedr   r   r0  r1  rV  rW  rX  rY  rZ  rf   r   rA  2rC  c                	    R p\         P                  ! WA,           VR7      p\        V4      p\        P                  ! WS4       R# )rU  rf   Nr  )ro   r   rg   rO   r8  r9  s   &&&&  r    test_reader_dtype_str!TestReaders.test_reader_dtype_strP  s4    2 x2%@X&
f/r"   c                	   VR#9   d   \         P                  ! RV R24       \        R\        ^^.RR7      R\        RR.R	R7      R
\        RR.RR7      R\        RR.RR7      R\        \        P
                  ^.RR7      R\        \        P
                  R.R	R7      R\        \        P
                  R.RR7      R\        \        P
                  R.RR7      R\        \        P                  ! R4      .^,          4      R\        \        P
                  \        P
                  .RR7      /
4      pVP                  VRRR7       \        P                  ! VRVR7      pVR8X  Ed)   ^ RI	p^ RI
Hp \        VP                   U	u/ uF"  p	W! VP                  WY,          RR7      4      bK$  	  up	4      p
V
R,          P                  \        P                  ! VP!                  4       4      4      V
R&   V
R,          P                  \        P                  ! VP!                  4       4      4      V
R&   V! V
R,          P                  P"                  P%                  VP'                  RR 7      4      4      V
R&   V! VP                  RR.4      4      V
R&   M,Tp
\)        W4      pV
R,          P                  R!V R"24      V
R&   \*        P,                  ! Wj4       R# u up	i )$r&   rb   rc   r   Int64rf   r   r^  r`  Float64r0  TFre   r1  stringr2  r   g      @ghiz
2019-12-31jtestrw   rR   rw   dtype_backendpyarrowN)ArrowExtensionArray)from_pandasrL   )rU   r(  r)  rh   )r+   ri   r   r   rk   NA	Timestamprj   rl   rz  pandas.arraysr{  r   arrayrg  
ArrowDtyperq  	_pa_arraycast	timestamprM   rm   rn   )ro   r   ry  r(   r>   rp   r   par{  r`   rO   rU   s   &&&&&       r    test_dtype_backendTestReaders.test_dtype_backendo  sW   ((KK3H:Q?@VQF'2VS#Ji8VT5M;VS#Jh7VRUUAJg6VRUUCL	:VRUUDM;VRUUCL9VR\\,781<=VRUUBEEN':
 	I&>&
 I% 9   "zz) ,RXXbg4X-PQQ)H %SM00ryy{1KLHSM$SM00ryy{1KLHSM/##--222<<T<3JKHSM 0$0FGHSMH1D$SM003tfA?HSM
f/)s   (Kc                	.   VR9   d   \         P                  ! RV R24       \        R\        P                  R.RR\        P                  ./4      pVP                  VRRR	7       \        P                  ! VRR
RR7      p\        P                  ! WC4       R# )r&   rb   rc   r   rV  r   r^  rv  Frw  numpy_nullablerY  )rw   ry  rg   Nrh   )
r+   ri   r   r  r{   rj   rk   rl   rm   rn   )ro   r   r>   rp   r   s   &&&  r    test_dtype_backend_and_dtype(TestReaders.test_dtype_backend_and_dtype  s    ((KK3H:Q?@bffc]C#rvv?@
I&>*	
 	f)r"   c                	   VR9   d   \         P                  ! RV R24       \        R\        P                  ! RR.\        P
                  R7      R\        P                  ! R\        P                  .\        P
                  R7      /4      pVP                  VRRR	7       \        P                  ! R
V4      ;_uu_ 4        \        P                  ! VRRR7      pRRR4       \        R\        RR.\        P                  ! V4      R7      R\        RR.\        P                  ! V4      R7      /4      p\        P                  ! XVRR7       R#   + '       g   i     L|; i)r&   rb   rc   r   r   rf   r   rv  Frw  zmode.string_storager  rx  N)check_column_typerh   )r+   ri   r   r  r  object_rk   r}  rj   option_contextrl   r   StringDtyperm   rn   )ro   r   string_storager>   rp   r   rO   s   &&&&   r    test_dtype_backend_string%TestReaders.test_dtype_backend_string  s	   ((KK3H:Q?@RXXsCj

;RXXsBEEl"**=
 	I&>4nEE]]f<LF F
 VS#Jbnn^.LMVS$Kr~~n/MN
 	fh%H FEs   >EE	zdtypes, exp_valuea.1r[  c           
     	2   R pR\         /VCpVP                  4       p\        P                  ! WA,           VR7      p\	        R\        ^.\         R7      R\        V.V'       g   \         MRR7      /4      pWV8X  g   Q R4       h\        P                  ! Wx4       R# )df_mangle_dup_col_dtypesr   rf   r  Nzdtype dict changed)objectr4  rk   rl   r   r   rm   rn   )	ro   r   dtypes	exp_valuer8  
dtype_dictdtype_dict_copyr   rO   s	   &&&&     r    test_dtype_mangle_dup_cols&TestReaders.test_dtype_mangle_dup_cols  s     .6,V,
$//+x2*EVQCv.vykv4P
 ,B.BB,
f/r"   c                	    R p\         P                  ! W!,           4      p\        R. RO/4      p\        P                  ! W44       R# )test_spacestestcolN)zthis is greatz4    spacesz1 trailing z
 1 leadingz2  spaces  multiple  timesr  )ro   r   r8  r9  rO   s   &&   r    test_reader_spacesTestReaders.test_reader_spaces  s?     x23 

 	f/r"   zbasename,expectedzgh-35802COLUMNzTest (1)zgh-36122z
got 2nd sar   c                	    VR 8w  d   \         P                  ! RV 24       \        P                  ! W2,           4      p\        P
                  ! WT4       R# )r   zSkipped for engine: N)r+   ri   rk   rl   rm   rn   )ro   r(   r   r8  rO   r9  s   &&&&& r    test_read_excel_ods_nested_xml*TestReaders.test_read_excel_ods_nested_xml  s>     U?KK.vh78x23
f/r"   c                	    R p\         P                  ! W!,           RR7      p. ROp\        P                  ! WCP	                  4       4       V\        VP	                  4       4      8X  g   Q hR# )test_multisheetNr  )CharlieAlphaBeta)rk   rl   rm   assert_contains_allkeyslistro   r   r8  dfsexpected_keyss   &&   r    test_reading_all_sheets#TestReaders.test_reading_all_sheets   sP     %mmH/DA4
}hhj9 SXXZ 0000r"   c                	   R p. ROp\         P                  ! W!,           VR7      p\        \        V4      4      p\        P
                  ! W4P                  4       4       \        V4      \        VP                  4       4      8X  g   Q hR# )r  r  N)r   r  r  )rk   rl   r  setrm   r  r  r   )ro   r   r8  r  r  s   &&   r    %test_reading_multiple_specific_sheets1TestReaders.test_reading_multiple_specific_sheets  sa     %1mmH/MJS/0
}hhj9=!S_444r"   c                	    R p\         P                  ! W!,           RR7      p. ROp\        P                  ! WCP	                  4       4       R# )blank_with_headerNr  )rv   r   r   )rk   rl   rm   r  r  r  s   &&   r    "test_reading_all_sheets_with_blank.TestReaders.test_reading_all_sheets_with_blank  s5     'mmH/DA6
}hhj9r"   c                	    \         P                  ! R V,           RR7      p\        P                  ! V\	        4       4       R# )blankrv   r  N)rk   rl   rm   rn   r   )ro   r   r9  s   && r    test_read_excel_blank!TestReaders.test_read_excel_blank%  s)    w1hG
fik2r"   c                	    \        R R.R7      p\        P                  ! RV,           RR7      p\        P                  ! W24       R# )col_1col_2r   r  rv   r  N)r   rk   rl   rm   rn   )ro   r   rO   r9  s   &&  r    !test_read_excel_blank_with_header-TestReaders.test_read_excel_blank_with_header)  s5    gw%782X=(S
f/r"   c                	   \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! RV,           ^.RR7       RRR4       \         P                  ! \
        R R7      ;_uu_ 4        \        P                  ! RV,           R RR7       RRR4       R#   + '       g   i     L`; i  + '       g   i     R# ; i)z \(sheet: Sheet1\)$r   r  N)headerrw   r   c                    ^^ ,          # )r   r   rI  s   &r    rJ  HTestReaders.test_exception_message_includes_sheet_name.<locals>.<lambda>3  s    Ar"   )r   rw   )r+   r   r   rk   rl   ZeroDivisionErrorro   r   s   &&r    *test_exception_message_includes_sheet_name6TestReaders.test_exception_message_includes_sheet_name.  sy    ]]:-CDDMM-8!QUV E]],4JKKMM'H,oRVW LK EDKKKs   "B3"B2B/	2C	z-ignore:Cell A4 is marked:UserWarning:openpyxlc                	   \        W!4       \        \        P                  ! R 4      R.\        P                  ! R4      R.RR..RR.R7      pVR	8X  d0   VP	                  \
        P                  P                  R
R7      4       Vf7   VR9   d0   VP	                  \
        P                  P                  RR7      4       \        P                  ! RV,           4      p\        P                  ! WT4       R# )z
2016-03-12zMarc Johnsonz
2016-03-16z
Jack Blackg@xDzTimothy BrownDateColWithBigInt	StringColr   r   zMaybe not supported by openpyxlrX   Nz)Defaults to openpyxl, maybe not supportedtestdateoverflow).xlsx.xlsm)r]   r   rk   r~  rZ   r+   r[   r\   rl   rm   rn   )ro   r2   r(   r   rO   r   s   &&&&  r    test_date_conversion_overflow)TestReaders.test_date_conversion_overflow5  s     	$F4l+^<l+\:'
 )+6
 Z!!)J!K >h*<<!!)T!U 1H<=
f/r"   c                	   \        W14       R pRpTp\        WrV4       \        P                  ! WR,           V^ R7      p\        P                  ! WR,           ^ VR7      p	\        P
                  ! W4       \        P
                  ! W4       R# )r   rv   r   rD   rw   Nr   )
ro   r2   r   r(   rH   filenamerw   rO   r   rq   s
   &&&&&     r    test_sheet_nameTestReaders.test_sheet_nameQ  sn    #F4
F3mmJ!
 mmH/1T
c,
c,r"   c                	
   R V,           p\         P                  ! VR^ R7      p\        VR4      ;_uu_ 4       p\         P                  ! VR^ R7      p\        P                  ! W54       RRR4       R#   + '       g   i     R# ; i)r   rv   r   r   N)rk   rl   r   rm   rn   )ro   r   pthrO   r   r9  s   &&    r    test_excel_read_buffer"TestReaders.test_excel_read_bufferb  sW     ==QG#t__]]1QGF!!(3 ___s   0A11B	c                	    R p\         P                  ! \        RR7      ;_uu_ 4        \        P                  ! RVR7       RRR4       R#   + '       g   i     R# ; i)r   zUnknown engine: foor   rF  r   Nr   )ro   
bad_engines   & r    test_bad_engine_raises"TestReaders.test_bad_engine_raisesi  s7    
]]:-BCCMM"Z0 DCCCs   A

A	rw   r   rv   c                	    R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! RV,           VR7       RRR4       R#   + '       g   i     R# ; iz?Worksheet index 3 is invalid|Worksheet named 'Sheet4' not foundr   r  r  Nr   )ro   r   rw   r   s   &&& r    test_bad_sheetname_raises%TestReaders.test_bad_sheetname_raisesn  s=     P]]:S11MM'H,D 2111    AA"	c                	    R V 2pRP                  . RO4      p\        P                  ! \        VR7      ;_uu_ 4        \        P
                  ! V4       RRR4       R#   + '       g   i     R# ; i)r   |r   N)z(No such file or directoryu   没有那个文件或目录zFile o directory non esistente))joinr+   r   FileNotFoundErrorrk   rl   )ro   r   bad_filer   s   &&  r    test_missing_file_raises$TestReaders.test_missing_file_raisesx  sP    
#
 ]],E::MM(# ;:::s   AA/	c                	2   R pVf
   \         pRpM,VR8X  d   ^ RIHp TpRpMVR8X  d   ^ RIHp TpRpM\
        pR	p\        P                  ! W4R
7      ;_uu_ 4        \        P                  ! \        V4      4       RRR4       R#   + '       g   i     R# ; i)s   fooNzLExcel file format cannot be determined, you must specify an engine manually.r   )	XLRDErrorzFUnsupported format, or corrupt file: Expected BOF record; found b'foo'r   CalamineErrorzCannot detect file formatzFile is not a zip filer   )r   r   r  r   r  r
   r+   r   rk   rl   r   )ro   r(   
bad_streamerrorr   r  r  s   &&     r    test_corrupt_bytes_raises%TestReaders.test_corrupt_bytes_raises  s    
>E.  v&EX  z!5!E-CE*C]]5,,MM'*-. -,,,s    BB	c                	Z   \        R V,           R4      ;_uu_ 4       pVP                  VP                  4       R7       RRR4       \        P                  ! VP
                  4      p\        P                  ! R V,           4      p\        P                  ! WE4       R#   + '       g   i     Le; i)r   r   )contentN)r   serve_contentreadrk   rl   urlrm   rn   )ro   
httpserverr   r   	url_tablelocal_tables   &&&   r    test_read_from_http_url#TestReaders.test_read_from_http_url  sp     'H$d++q$$QVVX$6 ,MM*..1	mmGh$67
i5	 ,+s   !BB*	c                	j   \        R V,           R4      ;_uu_ 4       pVP                  R V,           VR7       RRR4       RVP                   R2V,           p\        P                  ! WSR7      p\        P                  ! R V,           4      p\
        P                  ! Wg4       R#   + '       g   i     Ls; i)r   r   KeyBodyNs3:///test1)storage_options)r   
put_objectrS   rk   rl   rm   rn   )ro   r   s3_bucket_publics3sor   r  r  r  s   &&&&    r    test_read_from_s3_url!TestReaders.test_read_from_s3_url  s     'H$d++q''Gh,>Q'G , &++,F3h>MM#<	mmGh$67
i5 ,+s   B""B2	c                	   \        R V,           R4      ;_uu_ 4       pVP                  R V,           VR7       RRR4       ^ RIpVP                  ! R/ VB pVP                  RVP                   R2V,           4      ;_uu_ 4       p\
        P                  ! V4      pRRR4       \
        P                  ! R V,           4      p\        P                  ! XV4       R#   + '       g   i     L; i  + '       g   i     LY; i)r   r   r  Nr  r  r   )	r   r  s3fsS3FileSystemrS   rk   rl   rm   rn   )	ro   r   r  r	  r   r  s3r  r  s	   &&&&     r    test_read_from_s3_object$TestReaders.test_read_from_s3_object  s     'H$d++q''Gh,>Q'G , 	&&WWu-2236:XEFF!a(I G mmGh$67
i5 ,+ GFs   CC+C(	+C;	c                	   \         P                  P                  V! R RR4      RV,           4      p\        P                  ! V4      p \        P                  ! RV,           4      p\        P                  ! XV4       R#   \
         dO    RP                  \        P                  ! 4       4      P                  4       p\        P                  ! RT 24        Lqi ; i)r@   rA   ru   r   zfile://localhost/ zfailing on N)ospathr  rk   rl   r	   platformunamestripr+   ri   rm   rn   )ro   r   rF   
localtabler  r  platform_infos   &&&    r    test_read_from_file_url#TestReaders.test_read_from_file_url  s     WW\\(4"A7XCUV
mmJ/	7&9J&FGI 	i5  	7HHX^^%56<<>MKK+m_56	7s   A= =ACCc                	    R V,           p\         P                  ! VR^ R7      p\        R V,           4      p\         P                  ! VR^ R7      p\        P                  ! W54       R# r   )rk   rl   r   rm   rn   )ro   r   str_pathrO   path_objr9  s   &&    r    test_read_from_pathlib_path'TestReaders.test_read_from_pathlib_path  sM    X%==h!L(*+xHJ
h/r"   c                	   \         P                  P                  R V,           4      p\        VR4      ;_uu_ 4       p\        P
                  ! VR^ R7      p?VP                  4        RRR4       R#   + '       g   i     R# ; i)r   r   rv   r   N)r  r  r  r   rk   rl   r  )ro   r   r  r   r   s   &&   r    test_close_from_py_localpath(TestReaders.test_close_from_py_localpath  sU    77<<( 23(D!!QaHBAFFH	 "!!!s   +A00B	c                	   \        W!4       VR 8X  d7   VR8X  d0   VP                  \        P                  P	                  RR7      4       \
        P                  ! R\        ^^^4      \        ^^-^8R4      \        ^^^1R4      \        ^^^*R4      \        ^^9^#R4      \        ^	^)^R	4      \        ^^^R
4      \        ^^	^R4      \        ^^5^R4      \        ^^%^ R4      \        ^^^64      ./4      p\        P                  ! RV,           RR7      p\        P                  ! WT4       \        P                  ! RV,           RR7      p\        P                  ! WT4       R# )r   r%   z0ODS file contains bad datetime (seconds as text)rX   Timei i@ i i i  i'	 i`
 i 5 i 
times_1900rv   r  
times_1904N)r]   rZ   r+   r[   r\   r   r3  r   rk   rl   rm   rn   )ro   r2   r(   r   rO   r9  s   &&&&  r    test_reader_secondsTestReaders.test_reader_seconds  s?   #F4 ZH$6!!M "  &&AqMBF+BF+BF+BF+BF+RV,QF+RF+RF+R$
$ |h68L
f/|h68L
f/r"   c           
     	P   \        W!4       \        W24      p\        P                  ! R R.RR..4      pRV,           p\	        ^R\
        P                  ! R4      R.^R\
        P                  ! R	4      R
.^R\
        P                  ! R4      R
.^R\
        P                  ! R4      R..VR7      pWu^,          ,          P                  RV R24      Wu^,          &   \
        P                  ! VR^ ^.^ R7      p\        P                  ! W4       WWn        . R$OVn        \
        P                  ! VR^ ^.R7      p\        P                  ! W4       WWn        \
        P                  ! VR^ ^.^ ^.R7      p\        P                  ! W4       . R$OVn        VP                  RR.4      Vn        \
        P                  ! VR^ ^.R7      p\        P                  ! W4       \        ^4      Vn        VP                  RR.4      Vn        \
        P                  ! VR^ ^.^ R7      p\        P                  ! W4       VP                  ^^.^R7      P                  RR.4      Vn        \
        P                  ! VR^ ^ ^.R7      p\        P                  ! W4       VP                  RR.4      Vn        VP                  RR.4      Vn        \
        P                  ! VR ^ ^.^ ^.R7      p\        P                  ! W4       \
        P                  ! VR!^ ^.^ ^.^R"7      p\        P                  ! W4       R## )%r   barr   r   testmultiindexr^  
2015-01-01Tr_  
2015-01-02Fr`  
2015-01-03ra  
2015-01-04r   r(  r)  	mi_column)rw   r  rD   mi_indexr   bothrw   rD   r  ilvl1ilvl2mi_index_namec1c2mi_column_name)levelname_with_int	both_nameboth_name_skiprows)rw   rD   r  r   Nr   r   r0  r1  )r]   rM   r   from_productr   rk   r~  rg  rl   rm   rn   rR   r   	set_namesr   
set_levels)	ro   r2   r(   r   rU   mimi_filerO   r9  s	   &&&&     r    test_read_excel_multiindex&TestReaders.test_read_excel_multiindex
  s   #F4H-$$uensCj%AB"X- Cl3T:Cl3U;Cl3U;Cl3T:	 
 #a5/003tfA?AQFa
 	f/ /w:!QP
f/ 1a&!Q
 	f/ 0w&89w?qRSfU
f/ q<<t5 0!Q1
 	f/ ==!Qq=9CCT4LQ1aV
 	f/ <<t5w&891vq!f
 	f/ +!fq6
 	f/r"   zsheet_name,idx_lvl2both_name_blank_after_mi_nameboth_name_multiple_blanksc           
     	^   \        W!4       R V,           p\        P                  ! RR.RR..RR.R7      p\        W24      p\	        ^R\
        P                  ! R	4      R
.^R\
        P                  ! R4      R.^R\
        P                  ! R4      R.^R\
        P                  ! R4      R
..V\        P                  ! . ROV3RR.R7      R7      p	W^,          ,          P                  RV R24      W^,          &   \
        P                  ! VV^ ^.^ ^.R7      p
\        P                  ! W4       R# )r-  r   r,  r   r   r9  r:  r   r^  r.  Tr_  r/  Fr`  r0  ra  r1  r6  r7  r   r(  r)  r5  N)r   r   r,  r,  )r]   r   rA  rM   r   rk   r~  from_arraysrg  rl   rm   rn   )ro   r2   r(   r   rw   idx_lvl2rE  rD  rU   rO   r   s   &&&&&&     r    +test_read_excel_multiindex_blank_after_name7TestReaders.test_read_excel_multiindex_blank_after_name^  s"    	$F4"X-$$uensCj%A$PTVH-Cl3T:Cl3U;Cl3U;Cl3T:	 ((-x8(
 #a5/003tfA?A!!fq6	
 	f/r"   c                	    R V,           p\         P                  ! VR^ ^.R7      p\        P                  ! RR.4      p\	        . RO.^,          VR7      p\
        P                  ! W54       R# )r-  index_col_nonerw   r  r   Nr   r   keyvalr\  )rk   rl   r   rA  r   rm   rn   )ro   r   rE  r   exp_columnsrO   s   &&    r    &test_read_excel_multiindex_header_only2TestReaders.test_read_excel_multiindex_header_only  s\     #X-w3CQPQFS --z>.JKl^a/E
f/r"   c           	     	   R V,           p\         P                  ! \         P                  \         P                  \         P                  \         P                  \         P                  .. RO. RO. RO. RO. RO.\        R7      p. ROp\	        . RO. RO.. RO. RO.RR.R7      p\        . RORR7      p\        W6VR7      p\        P                  ! VR^ R7      p\        P                  ! W4       WWn        \        P                  ! VR^ ^.R7      p\        P                  ! W4       \         P                  ! . RO. RO. RO. RO. RO.4      p. ROp\	        . RO. RO.. RO. RO.RR.R7      p\        . RORR7      p\        W6VR7      p\        P                  ! VR	^ R7      p\        P                  ! W4       WWn        \        P                  ! VR
^ ^.R7      p\        P                  ! W4       R# )test_index_name_pre17rf   Nr   r   rR   r   single_namesr   multi_namessingle_no_namesmulti_no_names)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   r   r   r   r.  r/  )r  r  r  r  r  )r  r  r  r  r  )r   r   r   r   r.  )r  r  r{   r  r   r   r   rk   rl   rm   rn   rR   )	ro   r   r  rA   r   rD  sirO   r9  s	   &&       r    test_excel_old_index_format'TestReaders.test_excel_old_index_format  s   *X5
 xx888888 

 JMM &'9:,
 IPT
 TW=xNaP
f/xMaQRVT
f/ xx88888
 JGG #O4,
 JQUVTW=x4EQRS
f/x4DQRTUPVW
f/r"   c                	    R pR FO  p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! RV,           VR7       RRR4       KQ  	  R#   + '       g   i     Kf  ; i)z#Passing a bool to header is invalidr   r   r  N)TFr   )ro   r   r   args   &&  r    test_read_excel_bool_header_arg+TestReaders.test_read_excel_bool_header_arg  sG    3 Cy44g0= 54 !444s    AA+c           
     	0   \        W!4       \        W24      p\        P                  ! R V,           R^ ^.R7      p\	        ^R\        P
                  ! R4      R.^R\        P
                  ! R4      R.^R	\        P
                  ! R
4      R.^R\        P
                  ! R4      R... ROR7      pVR,          P                  RV R24      VR&   \        P                  ! WV4       \        P                  ! R V,           R\        P                  ! ^ ^.4      R7      p\        P                  ! WV4       \        P                  ! R V,           RR R7      p\        P                  ! WV4       \        P                  ! R V,           R^. ROR7      p\	        ^R\        P
                  ! R4      R.^R	\        P
                  ! R
4      R.^R\        P
                  ! R4      R... ROR7      pVR,          P                  RV R24      VR&   \        P                  ! WV4       R# )testskiprowsskiprows_listrw   r   r^  r.  Tr_  r/  Fr`  r0  ra  r1  r0  r   r(  r)  c                    V R9   # r   )r   r   r   rI  s   &r    rJ  6TestReaders.test_read_excel_skiprows.<locals>.<lambda>   s    qF{r"   )rw   r   r   Nr@  )r]   rM   rk   rl   r   r~  rg  rm   rn   r  r  ro   r2   r(   r   rU   r9  rO   s   &&&&   r    test_read_excel_skiprows$TestReaders.test_read_excel_skiprows  s   #F4H-X%/QPQF
 Cl3T:Cl3U;Cl3U;Cl3T:	 )
 !,,s4&];
f/X%&XXq!f%

 	f/ X%&*

 	f/X%&&	
  Cl3U;Cl3U;Cl3T:	 )
 !,,s4&];
f/r"   c                	`   \        W!4       \        W24      p\        P                  ! R V,           RR R7      p\	        ^R\        P
                  ! R4      R.^R\        P
                  ! R4      R	... ROR7      pVR
,          P                  RV R24      VR
&   \        P                  ! WV4       R# )r  r  c                    V R9  # )r   )r   r   r/  r   rI  s   &r    rJ  FTestReaders.test_read_excel_skiprows_callable_not_in.<locals>.<lambda>  s	    q	1r"   r  r^  r.  Tr`  r0  Fr0  r   r(  r)  Nr@  )	r]   rM   rk   rl   r   r~  rg  rm   rn   r  s   &&&&   r    (test_read_excel_skiprows_callable_not_in4TestReaders.test_read_excel_skiprows_callable_not_in  s    #F4H-X%&1

 Cl3T:Cl3U; )
 !,,s4&];
f/r"   c                	    ^p\         P                  ! RV,           VR7      p\         P                  ! RV,           4      pVRV p\        P                  ! W44       R# )r/  r   nrowsN)rk   rl   rm   rn   )ro   r   num_rows_to_pullr9  rO   s   &&   r    test_read_excel_nrows!TestReaders.test_read_excel_nrows,  sM    w19IJ==8!34--.
f/r"   c                	    \         P                  ! R V,           4      p\        V4      pV^
,           p\         P                  ! R V,           VR7      p\        P                  ! WR4       R# )r   r  N)rk   rl   r   rm   rn   )ro   r   rO   num_records_in_filer  r9  s   &&    r    0test_read_excel_nrows_greater_than_nrows_in_file<TestReaders.test_read_excel_nrows_greater_than_nrows_in_file4  sN    ==8!34!(m.3w19IJ
f/r"   c                	    R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! RV,           RR7       RRR4       R#   + '       g   i     R# ; i)z'nrows' must be an integer >=0r   r   rD  r  Nr   r   s   && r    +test_read_excel_nrows_non_integer_parameter7TestReaders.test_read_excel_nrows_non_integer_parameter<  s:    .]]:S11MM'H,C8 2111r  z-filename,sheet_name,header,index_col,skiprowsr-  r2  r3  r4  r;  r  r  c                	    V R9   # r  r   rI  s   &r    rJ  TestReaders.<lambda>J  s    AKr"   c           	         \         P                  ! W!,           VVVVR7      P                  R,          p\         P                  ! W!,           VVVV^R7      p\        P                  ! W4       R# )z
For various parameters, we should get the same result whether we
limit the rows during load (nrows=3) or after (df.iloc[:3]).
)rw   r  rD   r   :Nr   N)rw   r  rD   r   r  N)rk   rl   r  rm   rn   )	ro   r   r  rw   r  rD   r   rO   r9  s	   &&&&&&&  r    test_read_excel_nrows_params(TestReaders.test_read_excel_nrows_paramsB  sg    & ==!
 $r !
 	f/r"   c                	    \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! RV,           R^ 4       RRR4       R#   + '       g   i     R# ; i)zbut 3 positional argumentsr   r   rv   Nr   r  s   &&r    test_deprecated_kwargs"TestReaders.test_deprecated_kwargsf  s9    ]]9,HIIMM'H,h: JIIIs    AA 	c                	    R V,           p. ROp\         P                  ! . RORR7      p\        W4R	R7      p\        P                  ! VR^ ^.RR7      p\
        P                  ! WV4       R# )
r-  rK  r\  rQ  Nr5  ))r   r   rT  r   r.  r  ))r   r   rT  r   r   r  )r   r   )r   r   )r   from_tuplesr   rk   rl   rm   rn   )ro   r   	file_namerA   idxrO   r   s   &&     r    "test_no_header_with_list_index_col.TestReaders.test_no_header_with_list_index_colj  s`    $x/	;$$8
 Tf="2q!fT
 	h/r"   c                	    R V,           pR\         P                  ^^.p\        VR.R7      p\        P                  ! V4      p\
        P                  ! WT4       R# )one_col_blank_lineg      ?numbersr   N)r  r{   r   rk   rl   rm   rn   )ro   r   r  rA   rO   r   s   &&    r    test_one_col_noskip_blank_line*TestReaders.test_one_col_noskip_blank_linew  sH    (83	RVVQ"TI;7y)
f/r"   c                	N   R V,           p\         P                  ! RR.4      p\        P                  \        P                  .\        P                  \        P                  .^^.^^..p\	        WCR7      p\
        P                  ! VR^ ^.R7      p\        P                  ! We4       R# )r-  r   mi_column_empty_rowsrR  N)r   r   )r   r   )	r   r  r  r{   r   rk   rl   rm   rn   )ro   r   r  r   rA   rO   r   s   &&     r     test_multiheader_two_blank_lines,TestReaders.test_multiheader_two_blank_lines  s    $x/	((*j)AB 266266"2QFQFCT3"8!Q
 	f/r"   c                j    RV,           p\         P                  ! V4      pVP                  R8X  g   Q hR# )z
Sheets can contain blank cells with no data. Some of our readers
were including those cells, creating many empty rows and columns
trailing_blanksN)r   r   )rk   rl   shape)ro   r   r  r   s   &&  r    test_trailing_blanks TestReaders.test_trailing_blanks  s.    
 &0	y)||v%%%r"   c                	l   VR 8X  d   \         P                  ! R4       VR8X  d0   VP                  \         P                  P	                  RR7      4       \         P
                  ! \        RR7      ;_uu_ 4        \        P                  ! RV,           RR	7       R
R
R
4       R
#   + '       g   i     R
# ; i)r%   *chartsheets do not exist in the ODF formatr   4pyxlsb can't distinguish chartsheets from worksheetsrX   z"Worksheet named 'Chart1' not foundr   
chartsheetChart1r  N	r+   ri   rZ   r[   r\   r   r   rk   rl   ro   r2   r(   r   s   &&&&r    test_ignore_chartsheets_by_str*TestReaders.test_ignore_chartsheets_by_str  s~    vKKDEX!!Q " 
 ]]:-QRRMM,1hG SRRR   8 B""B3	c                	l   VR 8X  d   \         P                  ! R4       VR8X  d0   VP                  \         P                  P	                  RR7      4       \         P
                  ! \        RR7      ;_uu_ 4        \        P                  ! RV,           ^R7       R	R	R	4       R	#   + '       g   i     R	# ; i)
r%   r  r   r  rX   z0Worksheet index 1 is invalid, 1 worksheets foundr   r  r  Nr  r  s   &&&&r    test_ignore_chartsheets_by_int*TestReaders.test_ignore_chartsheets_by_int  s    vKKDEX!!Q " 
 ]]P
 
 MM,1a@
 
 
 
r  c                	    \         P                  ! R V,           R^R7      p\        . RO. RO. RO.. ROR7      p\        P                  ! W#4       R# )	test_decimal,)decimalr   r   N)r   gAc̝ė@g	hAABCpoig2[j@)r   gHzG^@g{G@DEFuytgUq&?)r   g%Cq@g^@GHIrezg)@)IdNumber1Number2Text1Text2Number3r  r   s   &&  r    test_euro_decimal_format$TestReaders.test_euro_decimal_format  sH    ~8#PQRF@C
 N
 	f/r"   r   )TNF)r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   r\  r]  rb  )[__name__
__module____qualname____firstlineno__r+   r[   parametrizerr   r   fixturer   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r=  rR  rh  r  r{   r   r   rl  r  r  r  r  r  r   r  r  r  r  r  r  r  filterwarningsr  r  r  r  r  r  r  network
single_cpur  tdskip_if_not_us_localer
  r  slowr  r   r#  r)  rF  rN  rX  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  __static_attributes__r   r"   r    r_   r_      s;   [[U%84&4-$PQ' R'0( ^^D!4 "4"04$-*1-f [[Iy)Y	9U00 [[Y#sc3Z(@A0 B00	0S	0	0 [[[4)40 50=A0
02&/0d04E: [[ -#sBFFC0	 iic3DI> 4IF <EJc2663 7uE		
.0/.010f*I8 [[0B7eW=Mq<Q2RS0 T0 0& [[Hzl#;<=L>:;	
0015:30
X [[ OP0 Q06-"41
 [[	
QFQFHx&:Xx<PQE	E$/4 [[[[6  6 [[6  6 [[6 6 [[6 60"0HR0h [[,rvvsC.EF(266(Q,7	
00@	0G0R>40l0,009 [[7{QFAt<z4!Q>v1v1vt</!QDA_dD1a&A_dD:OP	

0
02;00	0&HA0r"   r_   c            
         ] tR tRtR t]P                  ! RR7      R 4       tR tR t	]P                  P                  R. R O4      R
 4       tR tR t]P                  P                  R^^ ^.^^ .RRR.RR..4      R 4       tR tR tR tR tR tR t]P                  P                  RRR.4      R 4       tR tR tR tR tRtR	# )!TestExcelFileReadi  c           	     	F   R p\         P                  ! \        VR7      ;_uu_ 4        \        RV,           R4      ;_uu_ 4       p\        P
                  ! VP                  4       VR7       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)z+Expected file path name or file-like objectr   r   r   r   N)r+   r   r   r   rk   rl   r  )ro   r(   r   r   r   s   &&&  r    test_raises_bytes_input)TestExcelFileRead.test_raises_bytes_input  s`    ;]]9C00g($//1affhv6 0 10// 100s#   B'A<	*B<BBB 	Tr   c                    \        \        P                  VR7      pVP                  V! RRR4      4       VP	                  \        RV4       R# )z8
Change directory and set engine for ExcelFile objects.
r   r@   rA   ru   r}   N)r   rk   r}   r   r   r   s   &&&& r    r   #TestExcelFileRead.cd_and_set_engine  s=    
 r||F3(49:BT2r"   c           
     	    R RRRRRRRRR/p\         P                  ! R	V,           4      ;_uu_ 4       pVP                  pR
R
R
4       Ve   TpMW1R,          ,          pXV8X  g   Q hR
#   + '       g   i     L1; i)r   r   r   r   r   r   r   r   r   r   Nr   )rk   r}   r(   )ro   r   r(   r   ru   r   rO   s   &&&    r    r   "TestExcelFileRead.test_engine_used  sy    JJH65
 \\'H,--\\F . H("6H!!! .-s   A((A8	c           	     	>   \         P                  ! R V,           4      ;_uu_ 4       p\         P                  ! VRRR.R7      pRRR4       \        R.^.R.\        P
                  .R..R.R	7      p\        P                  ! XV4       \         P                  ! R V,           4      ;_uu_ 4       p\         P                  ! VRR
R.R7      pRRR4       \        \        P
                  .^.\        P
                  .\        P
                  .R..R.R	7      p\        P                  ! W44       \         P                  ! RV,           4      ;_uu_ 4       p\         P                  ! VRRR.R7      pRRR4       \        R.^.R.\        P
                  .R..R.R	7      p\        P                  ! W44       \         P                  ! RV,           4      ;_uu_ 4       p\         P                  ! VRR
R.R7      pRRR4       \        \        P
                  .^.\        P
                  .\        P
                  .R..R.R	7      p\        P                  ! W44       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     L; i)test4rv   Fapple)rw   rx   ry   Nr}  rabbitrz   r   Ttest51.#QNANr{   )rk   r}   rl   r   r  r{   rm   rn   )ro   r   ru   r   rO   s   &&   r    test_excel_passes_na&TestExcelFileRead.test_excel_passes_na  s   \\'H,--]](EgYF . VaS4&266(XJ7&
 	fh/\\'H,--]](DWIF . ffXsRVVHrvvh
;fX
 	f/ \\'H,--]](EgYF . [1#w8*=x
 	f/\\'H,--]](DWIF . ffXsRVVHrvvh
;fX
 	f/G .-- .-- .-- .-s/   I,I$I8JI!	$I5	8J		J		na_filterNc                	   / pVe   W#R&   \         P                  ! RV,           4      ;_uu_ 4       p\         P                  ! V3RRRRRR./VB pR R R 4       VR	J d   R
.^.R.R.R..pM6\        P                  .^.\        P                  .\        P                  .R..p\        VR.R7      p\        P                  ! XV4       R #   + '       g   i     L; i)Nr
  r  rw   rv   rx   Try   r  Fr  r{   r  rz   r   )rk   r}   rl   r  r{   r   rm   rn   )ro   r   r
  r   ru   r   rO   s   &&&    r    test_excel_passes_na_filter-TestExcelFileRead.test_excel_passes_na_filter  s      "+;\\'H,--]]# !% #)	
 F . "aS5'G9xjIH1#x"&&H:FHXx8
fh/ .-s   CC	c           	     	   \        W!4       Tp\        WSV4       \        P                  ! R V,           4      ;_uu_ 4       p\        P                  ! V^ ^ R7      p\        P                  ! V^^.^ R7      pRRR4       \
        P                  ! XV4       \
        P                  ! XV4       \        P                  ! R V,           4      ;_uu_ 4       pVP                  ^ ^ R7      pVP                  ^^.^ R7      pRRR4       \
        P                  ! Wu4       \
        P                  ! W4       \        P                  ! R V,           4      ;_uu_ 4       p\        P                  ! V^ ^ ^R7      p	RRR4       \
        P                  ! X	VP                  RR 4       \        P                  ! R V,           4      ;_uu_ 4       pVP                  ^ ^ ^R7      p	RRR4       \
        P                  ! WP                  RR 4       R#   + '       g   i     EL; i  + '       g   i     EL$; i  + '       g   i     L; i  + '       g   i     Lp; i)	r   r   r  N)rD   )r   rD   r  )rD   r  r  )	r]   rV   rk   r}   rl   rm   rn   r   r  )
ro   r2   r(   r   rH   rO   ru   r   rq   r   s
   &&&&&     r    test_excel_table_sheet_by_index1TestExcelFileRead.test_excel_table_sheet_by_index  s   #F4F3\\'H,----!qAC--!qcQOC . 	c8,
c8,\\'H,--++a1+-C++a1#+;C . 	c,
c,\\'H,----!qQOC .
c388CR=1\\'H,--++a1+;C . 	c88CR=1' .-- .-- .- .-s/   5G?)HH'=H:?H	H$	'H7	:I
	c                	   \        W!4       Tp\        WSV4       R pRp\        P                  ! Wc,           4      ;_uu_ 4       pVP	                  V^ R7      p	RRR4       \        P                  ! Wc,           4      ;_uu_ 4       pVP	                  ^ VR7      p
RRR4       \
        P                  ! X	V4       \
        P                  ! X
V4       R#   + '       g   i     L; i  + '       g   i     LS; i)r   rv   r   Nr  )r]   rV   rk   r}   r   rm   rn   )ro   r2   r(   r   rH   rO   r  rw   ru   	df1_parse	df2_parses   &&&&&      r    r  !TestExcelFileRead.test_sheet_name:  s    #F4F3
\\(-..%zQGI / \\(-..%aJGI / 	i2
i2 /. /.s   CC!C	!C1	rw   r   rv   c           	     	2   R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! RV,           4      ;_uu_ 4       pVP                  VR7       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; ir  )r+   r   r   rk   r}   r   )ro   r   rw   r   ru   s   &&&  r    r  +TestExcelFileRead.test_bad_sheetname_raisesL  s_     P]]:S11g011Uz2 2 2111 211s#   &BA2	 B2B=BB	c           
     	   R V,           p\         P                  ! VR^ VR7      p\        VR4      ;_uu_ 4       p\         P                  ! V4      ;_uu_ 4       p\         P                  ! VR^ R7      pRRR4       RRR4       \        P
                  ! VX4       R#   + '       g   i     L1; i  + '       g   i     L<; i)r   rv   rw   rD   r(   r   r   N)rk   rl   r   r}   rm   rn   )ro   r(   r   r  rO   r   r   r9  s   &&&     r    r  (TestExcelFileRead.test_excel_read_bufferW  sz     ==QvV#t__aCsx1M !  	h/ ! _s#   B-B	1B-B*%B--B=	c                	D   \        R V,           R4      ;_uu_ 4       p\        P                  ! V4      ;_uu_ 4       p\        P                  ! VR^ VR7       RRR4       RRR4       XP                  '       g   Q hR#   + '       g   i     L.; i  + '       g   i     L9; i)r   r   rv   r  N)r   rk   r}   rl   closed)ro   r(   r   r   r   s   &&&  r    test_reader_closes_file)TestExcelFileRead.test_reader_closes_filea  sa    'H$d++qaDdx1VT ! ,
 xxxx	 ! ,+s"   BA<	B<BBB	c           	     	>   R p\         P                  ! RV,           4      ;_uu_ 4       p\        P                  ! \        VR7      ;_uu_ 4        \         P
                  ! VRR7       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)z8Engine should not be specified when passing an ExcelFiler   r   r   r   N)rk   r}   r+   r   r   rl   )ro   r   r   xls   &&  r    test_conflicting_excel_engines0TestExcelFileRead.test_conflicting_excel_enginesi  s\    H\\'H,--z55b/ 6 .-55 .--s#   %BA8	&B8BBB	c                	@   \         P                  ! R V,           VR7      p\        R V,           R4      ;_uu_ 4       pVP                  4       pRRR4       \         P                  ! \	        X4      VR7      p\
        P                  ! W64       R#   + '       g   i     LI; i)r   r   r   N)rk   rl   r   r  r   rm   rn   )ro   r(   r   rO   r   rA   r9  s   &&&    r    test_excel_read_binary(TestExcelFileRead.test_excel_read_binaryq  sh    ==8!3FC'H$d++q668D , wt}V<
h/	 ,+s   BB	c                	   \        R V,           R4      ;_uu_ 4       p\        P                  ! W2R7      pRRR4       \        P                  ! R V,           VR7      p\        P                  ! XV4       R#   + '       g   i     LH; i)r   r   r   N)r   rk   rl   rm   rn   )ro   r   r(   r   r   rO   s   &&&   r    %test_excel_read_binary_via_read_excel7TestExcelFileRead.test_excel_read_binary_via_read_excel{  sW    'H$d++q]]14F ,==8!3FC
fh/ ,+s   A44B	c           	     	   \        R R4      ;_uu_ 4       p\        P                  ! \        RR7      ;_uu_ 4        \        P
                  ! V^ ^.R7       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)zdf_header_oob.xlsxr   zexceeds maximumr   r  N)r   r+   r   r   rk   rl   )ro   r(   r   s   && r    )test_read_excel_header_index_out_of_range;TestExcelFileRead.test_read_excel_header_index_out_of_range  sW    &--z1BCCaA/ D .-CC .--s"   %A:A'	A:'A72A::B	r  zdf_empty.xlsxzdf_equals.xlsxc                	    \        R .RR7      p\        P                  ! RR.RR.R7      p\        ^^..W#RR7      p\        P
                  ! VR^ ^ ^.R	7      p\        P                  ! WE4       R
# )ZI2r   I11I12rK  r[  )rR   r   rg   rv   r5  NrS  )r   zB.1)r   r   r  r   rk   rl   rm   rn   )ro   r  r  colsrO   r   s   &&    r    test_header_with_index_col,TestExcelFileRead.test_header_with_index_col  sm     SE%%%z<&@PUWq!fXSgNQ1v
 	h/r"   c           	     	   \        W!4       R V,           p\        P                  ! V4      ;_uu_ 4       p\        P                  ! V^ ^.^ VR7      pRRR4       \	        W24      p\        P
                  ! RR.RV R2R7      p\        P                  ! VR,          VR	,          .V^ ,          P                  4       V^,          P                  4       .R
7      p	\        . . V	R7      p
\        P                  ! V
X4       R#   + '       g   i     L; i)test_datetime_mi)r  rD   r(   Nz
2020-02-29z
2020-03-01r(  r)  rf   :Nr   Nr   rK  r\  )r]   rk   r}   rl   rM   DatetimeIndexr   rL  to_pydatetimer   rm   rn   )ro   r2   r(   r   r   ru   r9  rU   dtiexpected_column_indexrO   s   &&&&       r    test_read_datetime_multiindex/TestExcelFileRead.test_read_datetime_multiindex  s    #F4)\\!__]]5!Q1VTF  H-l;Sa=Q * 6 6Wc"gA$$&A$$&!
 Rr3HI
h/ _s   C<<D	c           	     	   \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! RV R2R4      ;_uu_ 4         RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)zValue must be one of *r   zio.excelz.readerabcN)r+   r   r   rk   r  r  s   &&r    test_engine_invalid_option,TestExcelFileRead.test_engine_invalid_option  sV    ]]:-EFF""XhZw#?GG H GFGG GFFs#   $A0	A	A0A-(A00B	c                	Z   VR 8X  d   \         P                  ! R4       VR8X  d0   VP                  \         P                  P	                  RR7      4       \
        P                  ! RV,           4      ;_uu_ 4       pVP                  R.8X  g   Q h RRR4       R#   + '       g   i     R# ; i)r%   r  r   r  rX   r  rv   N)r+   ri   rZ   r[   r\   rk   r}   sheet_names)ro   r2   r(   r   ru   s   &&&& r    test_ignore_chartsheets)TestExcelFileRead.test_ignore_chartsheets  s    vKKDEX!!Q " 
 \\,122e$$
222 3222s   9BB*	c                	   \         3pVf   \        P                  ! RV 24       M8VR8X  d"   ^ R Ip\         VP                  P
                  3pMVR8X  d
   ^ RIHp V3p\        V4      P                  RRR7       \        P                  ! R4      ;_uu_ 4         \        P                  ! W!R	7       R R R 4       R #   T d     Li ; i  + '       g   i     R # ; i)
NzInvalid test for engine=r   r   r  corruptzutf-8)encodingFr   )r
   r+   ri   r   biffhr  r   r  r   
write_textrm   assert_produces_warningrk   r}   )ro   r(   r>   errorsr   r  s   &&&   r    test_corrupt_files_closed+TestExcelFileRead.test_corrupt_files_closed  s    >KK26(;<v $**"6"67Fz!5#%FY""9w"?''..Y6 /.   /..s*   CB;;CCCCC	r   )NTF)r  r  r  r  r  r+   r  r   r   r  r[   r  r  r  r  r  r  r  r   r#  r&  r)  r1  r9  r=  rA  rJ  r  r   r"   r    r  r    s   7 ^^D!3 "3"$$0L [[[*=>0 ?00263$ [[	
QFQFHx&:Xx<PQ3	300000 [[Z/;K)LM0 N00,3r"   r  )r$   r  r  r&   r%   )5
__future__r   r   r   	functoolsr   r@   r   r  pathlibr   r  r   urllib.errorr	   r9   zipfiler
   numpyr  r+   pandas.util._test_decoratorsutil_test_decoratorsr  pandasrk   r   r   r   r   r   pandas._testing_testingrm   read_ext_paramsr,   
skip_if_noengine_paramsr)   r.   r  r   r3   r(   r   r>   rH   rM   rV   r]   r_   r  )engexts   00r    <module>r]     s   "   	   	 !     ) )   =
 LLMM&!
 LLMM*%
 LLMM&!
 LLx!89
LLbmmE23
LL2==1B#CD18*  ! C"C$S. 	"!" 	"  	  
  
    2
]0 ]0@)R RA+s   H
5H
