
    A[gs                        d dl mZm Z mZ d dlmZ d dlmZ d dlZd dlZd dl	Z
d dlZd dlmZ d dlmZ d dlmZ d dlmc mZ d dlZd dlmZmZmZmZmZ d dlmZ d d	l m!Z!m"Z"m#Z#m$Z$m%Z% d d
l&m'Z'  e       rejP                  jR                  Z*de+de+fdZ,ejZ                  d        Z. ejZ                  ddg      d        Z/ejZ                  d        Z0ejZ                  d        Z1ejP                  je                  d ejf                  d ejh                  d       ejh                  d      g       ejf                  d ejh                  d       ejh                  d      g       ejf                  d ejh                  d       ejh                  d      g       ejf                  d ejh                  d            g       G d d             Z5ejP                  je                  d  ejf                  dd ejh                  d       ejh                  d      g       ejf                  dd ejh                  d       ejh                  d      g       ejf                  dd ejh                  d       ejh                  d      g       ejf                  dd ejh                  d            g      ejP                  jm                  d!       G d" d#                    Z7 G d$ d%      Z8 ejh                  d       ejh                  d       G d& d'                    Z9ejP                  je                  d( e'jt                               d)        Z;y)*    )datedatetime	timedelta)partial)BytesION)is_platform_windows)PY310)import_optional_dependency)	DataFrameIndex
MultiIndex
date_rangeoption_context)	ExcelFileExcelWriter_OpenpyxlWriter_XlsxWriterregister_writer)_writerspathreturnc                      y)Nns r   s    ]/var/www/html/bid-api/venv/lib/python3.12/site-packages/pandas/tests/io/excel/test_writers.pyget_exp_unitr   *   s        c                     | dd S )z?
    Returns the first ten items in fixture "float_frame".
    N
   r   )float_frames    r   framer"   .   s    
 sr   TF)paramsc                     | j                   S N)param)requests    r   merge_cellsr(   6   s    ==r   c              #   h   K   t        j                  |       5 }| ddd       y# 1 sw Y   yxY ww)z9
    Fixture to open file for use in each test case.
    N)tmensure_clean)ext	file_paths     r   r   r   ;   s&     
 
	 
		s   2&	2/2c              #      K   d|j                  d       d}t        ||       5  d ddd       y# 1 sw Y   yxY ww)aM  
    Fixture to set engine for use in each test case.

    Rather than requiring `engine=...` to be provided explicitly as an
    argument in each test, this fixture sets a global option to dictate
    which engine should be used to write Excel files. After executing
    the test it rolls back said change to the global option.
    z	io.excel..z.writerN)stripr   )enginer,   option_names      r   
set_enginer3   D   s7      ciin-W5K	V	, 
-	,	,s   ">2	>;>r,   .xlsxopenpyxlxlrdmarksz.xlsm
xlsxwriterz.odsodfc            
          e Zd Zej                  j                  dd eej                  gdz        fd edej                  gdz  i      fg      d        Z	ej                  j                  dd edgej                  gdz  z         fd eej                  gdz        fg      d        Z
d	 Zd
 Zd Zej                  j                  dddg      ej                  j                  dddg      ej                  j                  dddg      ej                  j                  dddg      d                             Zd Zd Zy)TestRoundTripzheader,expectedN   r   z
Unnamed: 0   c                    d}t        g dg dg dg dg      }t        j                  |      5 }|j                  ||dd       t	        j
                  ||dg|	      }d d d        t        j                  |       y # 1 sw Y    xY w)
N	no_header    d   rB         rB   r>   i,  rB   r=   i  F
sheet_nameindexheaderr   rK   usecolsrM   r   r*   r+   to_excelpd
read_excelassert_frame_equalselfr,   rM   expectedfilenamedfr   results           r   !test_read_one_empty_col_no_headerz/TestRoundTrip.test_read_one_empty_col_no_header_   sw     lL,OP__S!TKKuKM]]A3vF " 	fh/ "!   0A>>Bc                    d}t        g dg dg dg dg      }t        j                  |      5 }|j                  |ddd       t	        j
                  ||d	g|
      }d d d        t        j                  |       y # 1 sw Y    xY w)Nwith_headerrA   rE   rH   rI   FTrJ   r   rN   rP   rU   s           r   #test_read_one_empty_col_with_headerz1TestRoundTrip.test_read_one_empty_col_with_headerp   sw    
 !lL,OP__S!TKKeDKQ]]A3vF " 	fh/ "!r\   c           	      0   t        ddgddgddggddg	      }t        j                  |      5 }t        |      5 }|j	                  |d
dd       |j	                  |dd       d d d        ddg|_        t        |      5 }t        j                  |d
d ddg      }t        j                  |dd ddg      }d d d        t        j                  |       t        j                  |       d d d        y # 1 sw Y   xY w# 1 sw Y   JxY w# 1 sw Y   y xY w)NrC   foorF   barr>   bazabcolumnsData_no_headF)rK   rM   rL   Data_with_headrK   rL   AB)rK   rM   names)rK   	index_colrm   )
r   r*   r+   r   rQ   rg   r   rR   rS   rT   )rV   r,   refdfpthwriterreaderxlsdf_no_headxlsdf_with_heads           r   "test_set_column_names_in_parameterz0TestRoundTrip.test_set_column_names_in_parameter   s    Au:5zAu:>c
S__S!SS!V~e5   v2B%P	 " !#JEM36 "~d3PS*! #%--/"*	#	   !!-7!!/59+ "!!!   "!s:   D*C4$D 7D 74D4C=	9D D		DDc                    d }g d}|D cg c]
  } ||       }}t        t        ||            }t        j                  |      5 }t	        |      5 }|j                         D ]  \  }}	|	j                  ||        	 d d d        t        j                  ||d      }
|D ]  }t        j                  ||   |
|            	 d d d        y c c}w # 1 sw Y   SxY w# 1 sw Y   y xY w)Nc                 0    g dg d}}t        ||| g      S )N)      !   rC   rF   r>   rf   )r   )col_sheet_namedis      r   tdfzDTestRoundTrip.test_creating_and_reading_multiple_sheets.<locals>.tdf   s    qAQN+;<<r   )AAABBBCCCrK   r   rK   rn   )
dictzipr*   r+   r   itemsrQ   rR   rS   rT   )rV   r,   r   sheetssdfsrp   ew	sheetnamerY   dfs_returneds              r   )test_creating_and_reading_multiple_sheetsz7TestRoundTrip.test_creating_and_reading_multiple_sheets   s    
	= '%&v!s1vv&3vs#$__S!SS!R%(YY[MIrKKyK9 &1 " ==1ML%%c!fl1o>  "! ' "! "!s*   CC,C ACC	CC'c                    t        j                  |      5 }t        ddiddiddiddid      }t        ddiddiddiddid      }|j                  |       t	        j
                  |ddgd      }t        j                  ||       t        ddiddiddiddid      }t        ddiddiddiddid	      }|j                  |       t	        j
                  |ddgd      }t        j                  ||       d d d        y # 1 sw Y   y xY w)
Nr   rC   r>      )OnexTwoXr   Y)ZerorB   )r   r   r   )r   zUnnamed: 4_level_1rM   rn   ))BegrB   Middler   Tailr   r   r   ))r   zUnnamed: 1_level_1r   r   r   r*   r+   r   rQ   rR   rS   rT   )rV   r,   r   rY   rW   actuals         r   &test_read_excel_multiindex_empty_levelz4TestRoundTrip.test_read_excel_multiindex_empty_level   s5   __S!T#$a&#$a&#$a&#$a&	B !#$a&#$a&#$a&56F	H KK]]4A!DF!!&(3"#Q&'V$%q6$%q6	B !45q6&'V$%q6$%q6	H KK]]4A!DF!!&(3W "!!s   C#DDc_idx_namesrd   r_idx_namesre   c_idx_levelsrC   r_idx_levelsc           
         t        j                  |      5 }t        |      xs |dk  }|dk(  rt        t	        d            }	nSt        j                  t        |      D 
cg c]  }
t        d       c}
t        |      D cg c]	  }| d|  c}      }	|dk(  rt        t	        d            }nSt        j                  t        |      D 
cg c]  }
t        d       c}
t        |      D cg c]	  }| d|  c}      }t        dt        j                  d      z  |	|	      }|j                  |       t        j                  |t	        t        |            t	        t        |            
      }t        j                  |||       t        j                  |j                   dd d f<   |j                  |       t        j                  |t	        t        |            t	        t        |            
      }t        j                  |||       t        j                  |j                   dd d f<   |j                  |       t        j                  |t	        t        |            t	        t        |            
      }t        j                  |||       d d d        y c c}
w c c}w c c}
w c c}w # 1 sw Y   y xY w)NrC   abcde   -rm   ghijk皙?)r   r   rg   rL   )rn   rM   )check_namesr   )r*   r+   boolr   listr   from_arraysranger   nponesrQ   rR   rS   rT   naniloc)rV   r,   r   r   r   r   r'   rp   r   rg   _r~   rL   rY   acts                  r   test_excel_multindex_roundtripz,TestRoundTrip.test_excel_multindex_roundtrip   sI    __S!S {+@|q/@Kq W.$00',\':;':!U1X':;9>|9LM9LAk]!A3/9LM q d7m,"..',\':;':!U1X':;9>|9LM9LAk]!A3/9LM bggfo%B
 KK--u\23E,/0C
 !!"c{CFFBGGAqDMKK--u\23E,/0C
 !!"c{CVVBGGBENKK--u\23E,/0C
 !!"c{Ce "! <M <M# "!sC   A	J5J!
1J5 J&>J5J+
J5-J0;FJ5!J55J>c                    t        g dt        dd      d      }|j                         }|d   j                  j	                  d      |d<   t        j                  |      5 }|j                  |       t        j                  |d	      }t        j                  ||       t        j                  |dgd
      }t        j                  ||       d }t        j                  t        dd      5  t        j                  |dg|d      }d d d        t        j                  ||       t        j                  |dgdd      }t        j                  ||       d d d        y # 1 sw Y   XxY w# 1 sw Y   y xY w)Nr{   z
2012-01-01r>   )periods)coldate_stringsr   %m/%d/%Yr   rn   )parse_datesrn   c                 .    t        j                  | d      S )Nr   )r   strptimer   s    r   <lambda>z;TestRoundTrip.test_read_excel_parse_dates.<locals>.<lambda>0  s    H$5$5a$Dr   zuse 'date_format' insteadF)matchraise_on_extra_warnings)r   date_parserrn   )r   date_formatrn   )r   r   copydtstrftimer*   r+   rQ   rR   rS   rT   assert_produces_warningFutureWarning)rV   r,   rY   df2rp   resr   s          r   test_read_excel_parse_datesz)TestRoundTrip.test_read_excel_parse_dates  sC   z,PQ/RS
 ggi!.144==jIN__S!SLL--q1C!!#s+--.1AQOC!!"c*DK++1(-
 mm!/ 0 +	 !!"c*--.!1zUVC !!"c*3 "!  "!s&   "BE-/E!
AE-!E*	&E--E6c                     t        j                  t        d      t        j                  t        j
                  d      dd      g      }t        t        d      |      }t        j                  |      5 }|j                  |       t        j                  |ddg      }d d d        t        t        d      t        j                  t        d      g d	g            }t        j                  |       y # 1 sw Y   UxY w)
Nr=   z
2020-01-016ME)startr   freqrL   r   rC   r   )z*(2020-01-31 00:00:00, 2020-07-31 00:00:00]z*(2020-07-31 00:00:00, 2021-01-31 00:00:00]z*(2021-01-31 00:00:00, 2021-07-31 00:00:00]z*(2021-07-31 00:00:00, 2022-01-31 00:00:00])r   r   r   rR   interval_range	Timestampr   r*   r+   rQ   rS   rT   )rV   r,   midxrY   rp   rZ   rW   s          r   "test_multiindex_interval_datetimesz0TestRoundTrip.test_multiindex_interval_datetimesB  s    %%a!!,,|4ae
 uQxt,__S!SKK]]31a&9F " !H""!H

 	fh/# "!s   5+C44C=)__name__
__module____qualname__pytestmarkparametrizer   r   r   r[   r_   ru   r   r   r   r   r   r   r   r   r<   r<   S   sY    [[
	266(Q,'	(1ixRS|8T.U*VW0	0 [[
	1#1,-	.Irvvhl4K0LM
0	
0:8?0-4^ [[]S$K8[[]S$K8[[^aV4[[^aV46D 5 5 9 96Dp!+F0r   r<   z
engine,extr3   c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  dej                  ej                  ej                   ej"                  g      d	        Ze
j                  j                  dej&                  ej(                  ej*                  g      d
        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+e
j                  j                  d d!d"g      e
j                  j                  d#g d$      e
j                  j                  d%g d$      d&                      Z,d' Z-d( Z.d) Z/e
j                  j                  d*d+d,g      d-        Z0d. Z1d/ Z2d0 Z3d1 Z4d2 Z5d3 Z6d4 Z7d5 Z8d6 Z9d7 Z:d8 Z;d9 Z<d: Z=d; Z>e
j                  j                  d<d=e?g      d>        Z@d? ZAd@ ZBdA ZCdB ZDy=)CTestExcelWriterc                    d}d}t        j                  |df      }t        j                  d|f      }t        |      }t        |      }d}t        j                  t
        |      5  |j                  |       d d d        t        j                  t
        |      5  |j                  |       d d d        y # 1 sw Y   ?xY w# 1 sw Y   y xY w)Ni  i@  rC   )shapezsheet is too larger   )r   zerosr   r   raises
ValueErrorrQ   )	rV   r   breaking_row_countbreaking_col_countrow_arrcol_arrrow_dfcol_dfmsgs	            r   test_excel_sheet_sizez%TestExcelWriter.test_excel_sheet_sizex  s    &&(("4a!89((!%7!897#7#"]]:S1OOD! 2 ]]:S1OOD! 21 21 21s   (B8C8CCc                    t        t        j                  j                  d      j	                  d            }|j                  |       t        |      5 }t        j                  |dd      }d d d        t        j                  |       d}t        j                  t        |      5  t        j                  d       d d d        y # 1 sw Y   \xY w# 1 sw Y   y xY w)NrF   r    rF   r   r   zWorksheet named '0' not foundr   0)r   r   randomdefault_rngstandard_normalrQ   r   rR   rS   r*   rT   r   r   r   )rV   r   gtxlrY   r   s         r   test_excel_sheet_by_name_raisez.TestExcelWriter.test_excel_sheet_by_name_raise  s    ryy,,Q/??HI
Dt_ra1=B  	b"%-]]:S1MM"c" 21 _ 21s   C(CCCc                    t        |      5 }|j                  |d       |j                         }|j                  d d d   |_        |j                  |d       d d d        t	        |      5 }t        j                  |dd      }t        j                  |dd      }t        j                  ||       t        j                  |       d d d        y # 1 sw Y   zxY w# 1 sw Y   y xY w)NData1r   r   Data2r   r   )	r   rQ   r   rg   r   rR   rS   r*   rT   )rV   r"   r   rq   frame2rr   found_df	found_df2s           r   !test_excel_writer_context_managerz1TestExcelWriter.test_excel_writer_context_manager  s    &NN6gN6ZZ\F"]]4R40FNOOFwO7	  t_}}V1MHfANI!!(E2!!)V4 _  _s   AC-ACCC(c                    |j                         }t        j                  |j                  d d|j                  j                  d      f<   |j                  |d       |j                  |dddg       |j                  |dd       |j                  |dd	       |j                  |d       t        j                  |dd
      }t        j                  ||       |j                  |dd	       t        j                  |dd       }|j                  |_        t        j                  ||       |j                  |dd       t        j                  |dd
dg      }t        j                  ||       |j                  |dd       t        j                  |dd
dg      }t        j                  ||       |j                  |dd       t        j                  |dd
ddg      }t        j                  ||       |j                  |d       t        j                  |d
      }t        j                  ||       |j                  |d       t        j                  |d
      }t        j                  ||       |d   }|j                  |       t        j                  |d
      }t        j                  |j                         |       y )Nr   rk   test1r   rl   rK   rg   FrK   rM   rj   r   r   NA)rK   na_rep)rK   rn   	na_values88X   g      V@Sheet1r   r   )r   r   r   r   rg   get_locrQ   rR   rS   r*   rT   rL   to_frame)rV   r"   r   reconsr   s        r   test_roundtripzTestExcelWriter.test_roundtrip  sH   

57VV

2A2u}},,S112t0t#sDt>tu= 	t0t1E
eV,tu=t4H{{
eV,t=t1QUPVW
eV, 	t=t1QUPVW
eV,t=Wb$Z
 	eV, 	t1tq1
eV,t,tq1
eV, #J	

4tq1
ajjlF3r   c                     |j                         }d|d<   |j                  |d       t        |      5 }t        j                  |dd      }d d d        t        j                  |       y # 1 sw Y    xY w)Nrb   ra   r  r   r   r   )r   rQ   r   rR   rS   r*   rT   )rV   r"   r   mixed_framerr   r  s         r   
test_mixedzTestExcelWriter.test_mixed  sb    jjl"ETg6t_]]6gKF 
k62 _s   A,,A5c           	      L   t        |      }t        t        j                  j	                  d      j                  d      t        t        d            t        ddd            }t        j                  t        j                  |j                        d 	      }||_        |d d  }|j                  j                  |      |_        |j                  |d
       t        |      5 }t        j                   |d
d      }d d d        t#        j$                  |       y # 1 sw Y    xY w)NrF   r   r=   ABCD
2000-01-01r   rl   r   r   r   r   r  r   r   r   )r   r   r   r   r   r   r   r   r   rR   DatetimeIndexasarrayrL   as_unitrQ   r   rS   r*   rT   )rV   r   unitrY   rL   rW   rr   r  s           r   test_ts_framezTestExcelWriter.test_ts_frame  s    D!II!!!$44V<$v,'\13?
   BHH!5DAa5!//5
DW-t_]]6gKF 
h/ _s   "DD#c                 :   |j                         }t        j                  |j                  d d|j                  j                  d      f<   |j                  |d       |j                  |dddg       |j                  |dd       |j                  |dd	       y )
Nr   rk   r  r   rl   r  Fr  rj   )r   r   r   r   rg   r  rQ   )rV   r"   r   s      r   test_basics_with_nanz$TestExcelWriter.test_basics_with_nan  s    

57VV

2A2u}},,S112t0t#sDt>tu=r   np_typec                    t        t        j                  j                  d      j	                  ddd      |      }|j                  |d       t        |      5 }t        j                  |dd	
      }d d d        |j                  t        j                        }t        j                  |       t        j                  |dd	
      }t        j                  ||       y # 1 sw Y   mxY w)NrF   r    r   sizedtyper  r   r   r   )r   r   r   r   integersrQ   r   rR   rS   astypeint64r*   rT   )rV   r!  r   rY   rr   r  	int_framerecons2s           r   test_int_typeszTestExcelWriter.test_int_types  s     II!!!$--c2G-DG
 	DW-t_]]6gKF  IIbhh'	
i0--AF
i1 _s   C  C)c                 V   t        t        j                  j                  d      j                  d      |      }|j	                  |d       t        |      5 }t        j                  |dd      j                  |      }d d d        t        j                  |       y # 1 sw Y    xY w)NrF   r    r&  r  r   r   r   )r   r   r   r   rQ   r   rR   rS   r)  r*   rT   )rV   r!  r   rY   rr   r  s         r   test_float_typesz TestExcelWriter.test_float_types  s     ryy,,Q/66r:'J
DW-t_]]6gKRRF 
 	b&) _s   (BB(c                 :   t        g dt        j                        }|j                  |d       t	        |      5 }t        j                  |dd      j                  t        j                        }d d d        t        j                  |       y # 1 sw Y    xY w)N)rC   r   TFr&  r  r   r   r   )
r   r   bool_rQ   r   rR   rS   r)  r*   rT   rV   r   rY   rr   r  s        r   test_bool_typeszTestExcelWriter.test_bool_types  so    *"((;
DW-t_]]6gKRRF 
 	b&) _s   6BBc                 $   t        dt        j                  fddt        j                   fg      }|j                  |d       t	        |      5 }t        j                  |dd      }d d d        t        j                  |       y # 1 sw Y    xY w)NrC   )rF   r>   r   r  r   r   r   )	r   r   infrQ   r   rR   rS   r*   rT   r2  s        r   test_inf_roundtripz"TestExcelWriter.test_inf_roundtrip%  so    BFFVa"&&\:;
DW-t_]]6gKF  	b&) _s   BBc           	         t        |      }t        t        j                  j	                  d      j                  d      t        t        d            t        ddd            }t        j                  t        j                  |j                        d 	      }||_        |d d  }|j                  j                  |      |_        |j                         }t        j                  |j                   d d|j"                  j%                  d
      f<   |j'                  |d       |j'                  |dd
dg       |j'                  |dd       |j'                  |dd       t)        |      5 }|j'                  |d       |j'                  |d       d d d        t+        |      5 }t        j,                  |dd      }	t/        j0                  ||	       t        j,                  |dd      }	d d d        t/        j0                  |	       dt3        j4                        k(  sJ d|j4                  d   k(  sJ d|j4                  d   k(  sJ y # 1 sw Y   xY w# 1 sw Y   nxY w)NrF   r  r  r  r   rl   r  r   r  rk   r  r   r  Fr  rj   test2r   r   rC   )r   r   r   r   r   r   r   r   r   rR   r  r  rL   r  r   r   r   rg   r  rQ   r   r   rS   r*   rT   lensheet_names)
rV   r"   r   r  tsframerL   rW   rq   rr   r  s
             r   test_sheetszTestExcelWriter.test_sheets.  s   D!II!!!$44V<$v,'\13?

   GMM!:F1:!//5

57VV

2A2u}},,S112t0t#sDt>tu= &NN6gN6V8  t_]]6gKF!!%0]]6gKF  	h/C**++++&,,Q////&,,Q////  _s   *'I$AIII!c                 F   |j                         }t        j                  |j                  d d|j                  j                  d      f<   |j                  |d       |j                  |dddg       |j                  |dd       |j                  |dd	       t        g d
      }|j                  |d|       t        |      5 }t        j                  |dd      }d d d        |j                         }||_        t        j                  |       y # 1 sw Y   7xY w)Nr   rk   r  r   rl   r  Fr  rj   )AAr   r   Zr   r   )r   r   r   r   rg   r  rQ   r   r   rR   rS   r*   rT   )rV   r"   r   col_aliasesrr   rsxps          r   test_colaliaseszTestExcelWriter.test_colaliasesQ  s    

57VV

2A2u}},,S112t0t#sDt>tu= 12tDt_v'QGB ZZ\ 

b"%	 _s   DD c                    |j                         }t        j                  |j                  d d|j                  j                  d      f<   |j                  |d       |j                  |dddg       |j                  |dd       |j                  |dd	       t        t        j                  j                  d
      j                  d            dk\  }|j                  |ddg|       t        |      5 }t        j                  |dd      j                  t        j                        }d d d        dg|j                   _        |j                   j"                  j                   j"                  k(  sJ t        t        j                  j                  d
      j                  d            dk\  }|j                  |dg d|       t        |      5 }t        j                  |dd      j                  t        j                        }d d d        dg|j                   _        |j                   j"                  |j                   j"                  k(  sJ t        t        j                  j                  d
      j                  d            dk\  }|j                  |dd|       t        |      5 }t        j                  |dd      j                  t        j                        }d d d        dg|j                   _        t%        j&                  ||j                  t(                     |j                  |dg dd|       |j                         }|j+                  ddg      }t        |      5 }t        j                  |dddg      }d d d        t%        j&                  ||       y # 1 sw Y   yxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   FxY w)Nr   rk   r  r   rl   r  Fr  rj   rF   r   r   test)rK   index_labelr(   r   )rE  dummydummy2)rk   rl   CD)rK   rg   rL   r(   rC   )r   r   r   r   rg   r  rQ   r   r   r   r   r   rR   rS   r)  r*  rL   rm   r*   rT   r   	set_index)rV   r(   r"   r   rY   rr   r  s          r   test_roundtrip_indexlabelsz*TestExcelWriter.test_roundtrip_indexlabelsc  s   

57VV

2A2u}},,S112t0t#sDt>tu= ryy,,Q/??HIQN
W6( 	 	
 t_]]6gKRRF  !xx~~!3!3333ryy,,Q/??HIQN
3#	 	 	
 t_]]6gKRRF  !xx~~!3!3333ryy,,Q/??HIQN
W&k 	 	
 t_]]6gKRRF  !
b&--"56(# 	 	
 ZZ\\\3*%t_]]6g!QPF 
b&)[ _ _ _$ _s0   76N$6N1+6N>*O
$N.1N;>O
Oc                    t        t        j                  j                  d      j	                  d            }d|j
                  _        |j                  ||       t        |      5 }t        j                  ||j                  d   d      }d d d        t        j                  |       |j
                  j                  dk(  sJ y # 1 sw Y   ;xY w)NrF   )r    r=   ra   r(   r   r   )r   r   r   r   r   rL   namerQ   r   rR   rS   r:  r*   rT   )rV   r(   r   rY   xfrZ   s         r   test_excel_roundtrip_indexnamez.TestExcelWriter.test_excel_roundtrip_indexname  s    ryy,,Q/??HI
Dk2t_]]2"..2CqQF  	fb)||  E)))	 _s   '&CCc           	         t        |      }t        t        j                  j	                  d      j                  d      t        t        d            t        ddd            }t        j                  t        j                  |j                        d 	      }||_        |j                         }|j                  D cg c]  }|j                          c}|_        |j                  |d
|       t!        |      5 }t        j"                  |d
d      }	d d d        |d d  }
|
j                  j%                  |      |
_        t'        j(                  |
	       y c c}w # 1 sw Y   JxY w)NrF   r  r  r  r   rl   r  r   r  r  rK   r(   r   r   )r   r   r   r   r   r   r   r   r   rR   r  r  rL   r   r   rQ   r   rS   r  r*   rT   )rV   r(   r   r  r;  rL   tsfr   rr   r  rW   s              r   test_excel_roundtrip_datetimez-TestExcelWriter.test_excel_roundtrip_datetime  s   D! II!!!$44V<$v,'\13?

   GMM!:Flln'.}}5}!QVVX}5	Tg;Gt_]]6gKF  1:!//5
h/ 6 _s   =E;EE&c                    t        |      }t        t        ddd      t        ddd      gt        ddd	d
dd      t        dddddd      ggddgddg      }t        t        ddd      t        ddd      gt        ddd	d
dd      t        dddddd      ggddgddg      }|j	                  d| d      }t        j                  |      5 }t        |      5 }|j                  |d       d d d        t        |dd      5 }|j                  |d       d d d        t        |      5 }	t        j                  |	dd      }
d d d        t        |      5 }t        j                  |dd      }d d d        d d d        t        j                  
       t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   fxY w)Ni  rC      i  	      i  r         rz   r=   rF         DATEDATETIMEr   r   rL   rg   M8[]r  r   z
DD.MM.YYYYzDD.MM.YYYY HH-MM-SS)r   datetime_formatr   r   )r   r   r   r   r)  r*   r+   r   rQ   r   rR   rS   rT   )rV   r,   r   r  rY   df_expected	filename2writer1writer2reader1rs1reader2rs2s                r   test_excel_date_datetime_formatz/TestExcelWriter.test_excel_date_datetime_format  s    D!dAr"Dq"$56$2r2q18D!RQPR3ST :&#J
  $2&q"(=>$2r2q18D!RQPR3ST :&#J
 "((3tfA7__S!YT"gG8 # ( 5 G8 4GmmG1M ! 9%mmG1M & "" 	c3' 	c;/) #"  ! &% "!sl   
GF)*G F5G'G GG,G)F2	.G5F>	:GG
	GG	GG"c                    t        t        j                  j                  d      j	                  ddd      t        j
                        }|j                         }t        j                  |d   d      |d<   t        j                  |d   d      j                  |st        nd	      |d<   |j                  |d
       t        |      5 }t        j                  |d
d      }d d d        t        j                  |       y # 1 sw Y    xY w)NrF   r#  r       rC   r$  r&  r   newzstring[pyarrow_numpy]r  r   r   )r   r   r   r   r(  r*  r   rR   cutr)  strrQ   r   rS   r*   rT   )rV   r   using_infer_stringrY   rW   rr   r  s          r    test_to_excel_interval_no_labelsz0TestExcelWriter.test_to_excel_interval_no_labels  s     II!!!$--c2G-DBHH
 779FF2a5"%5	&&!b188)C/F
 	DW-t_]]6gKF 
h/ _s   D  D	c                     t        t        j                  j                  d      j	                  ddd      t        j
                        }|j                         }t        j                  |d   dg d	      }||d
<   t        j                  t        |            |d
<   |j                  |d       t        |      5 }t        j                  |dd      }d d d        t        j                  |       y # 1 sw Y    xY w)NrF   r#  r    rn  r$  r&  r   )
rk   rl   rI  rJ  EFGHIJ)labelsrp  r  r   r   )r   r   r   r   r(  r*  r   rR   rq  Seriesr   rQ   r   rS   r*   rT   )rV   r   rY   rW   	intervalsrr   r  s          r   test_to_excel_interval_labelsz-TestExcelWriter.test_to_excel_interval_labels  s     II!!!$--c2G-DBHH
 779FFqE2P
	 5	))DO4
DW-t_]]6gKF 
h/ _s   <C44C=c                    t        t        j                  j                  d      j	                  ddd      dgt        j
                        }|j                         }|d   j                  d       |d	<   |d   j                  d
       |d	<   |j                  |d       t        |      5 }t        j                  |dd      }d d d        t        j                  |       y # 1 sw Y    xY w)NrF   r#  r    rn  r$  rk   rg   r'  c                     t        |       S )Nseconds)r   r   s    r   r   z9TestExcelWriter.test_to_excel_timedelta.<locals>.<lambda>%  s	    Ia,@r   rp  c                 <    t        |       j                         dz  S )Nr  iQ )r   total_secondsr   s    r   r   z9TestExcelWriter.test_to_excel_timedelta.<locals>.<lambda>'  s    i*88:UBr   r  r   r   r   )r   r   r   r   r(  r*  r   applyrQ   r   rR   rS   r*   rT   )rV   r   rY   rW   rr   r  s         r   test_to_excel_timedeltaz'TestExcelWriter.test_to_excel_timedelta  s     II!!!$--c2G-DE((

 779sGMM"@A5	"3---B
 	DW-t_]]6gKF 
h/ _s   +C##C,c           	         t        t        j                  j                  d      j	                  d      t        t        d            t        ddd            }|j                  d	      j                         j                  d
      }|j                  |d       t        |      5 }t        j                  |dd      }d d d        t        j                   |j                  d
             y # 1 sw Y   /xY w)NrF   r  r  r  r   rl   r  r   MEMsht1r   r   r   )r   r   r   r   r   r   r   r   resamplemean	to_periodrQ   r   rR   rS   r*   rT   )rV   r   rY   rB  rr   rA  s         r   test_to_excel_periodindexz)TestExcelWriter.test_to_excel_periodindex/  s    II!!!$44V<$v,'\13?

 [[##%//4
DV,t_v&AFB 
b",,s"34 _s   %C,,C5c                    t        j                  t        |j                        dz  t         j                        j                  dd      }t        j                  |ddg      }||_        |j                  |dd	       |j                  |dd
dg       |j                  |d|       t        |      5 }t        j                  |dddg      }d d d        t        j                  |       y # 1 sw Y    xY w)NrF   r&  r   firstsecondr   r  Fr  rk   rl   r  rS  r   rC   r   )r   aranger9  rL   r*  reshaper   r   rQ   r   rR   rS   r*   rT   )rV   r(   r"   r   arrays	new_indexrr   rY   s           r   test_to_excel_multiindexz(TestExcelWriter.test_to_excel_multiindex>  s    3u{{+a/rxx@HHBO**6'89LM	t>t#sD 	t[It_v'aVLB 
eR( _s   5C//C8c                 ,   t        g dg dt        j                  j                  d      j                  d      d      }|j	                  ddg      }|j                  ||       t        j                  |d	d
g      }t        j                  ||       y )N)NrF   r>   )r    ro     rF   r>   rk   rl   rI  rk   rl   rN  r   rC   r   )
r   r   r   r   rK  rQ   rR   rS   r*   rT   )rV   r(   r   rY   df1s        r   "test_to_excel_multiindex_nan_labelz2TestExcelWriter.test_to_excel_multiindex_nan_labelM  s|    !!YY**1-44Q7
 \\3*%
Dk2mmDQF3
b#&r   c           	         t        j                  t        |j                        dz  t         j                        j                  dd      }t        j                  |ddg      }||_        t        j                  g d      }||_	        dd	g}|sd}|j                  |d
|       t        |      5 }t        j                  |d
|dd	g      }	d d d        |sU|j                  j                  dd      }
t        |
 D cg c]!  }dj!                  t#        t$        |            # c}|_	        t'        j(                  |	       y # 1 sw Y   wxY wc c}w )NrF   r&  r   r  r  r   ))(   rC   )r  rF   )2   rC   )r  rF   r   rC   r  rS  rK   rM   rn   F)sparsifyinclude_namesr/   )r   r  r9  rL   r*  r  r   r   from_tuplesrg   rQ   r   rR   rS   _format_multir   joinmaprr  r*   rT   )rV   r(   r"   r   r  r  new_cols_indexrM   rr   rY   fmqs               r   test_to_excel_multiindex_colsz-TestExcelWriter.test_to_excel_multiindex_cols^  s   3u{{+a/rxx@HHBO**6'89LM	#//0TU&QF 	t[It_76aVB  ,,e5,QB<?HEHqSXXc#qk2HEEM
eR( _ Fs   1E>&EEc           	         t        |      }t        t        j                  j	                  d      j                  d      t        t        d            t        ddd            }t        j                  |j                  j                  |      t        j                  t        |j                        t        j                  	      gd
dg      |_        |j!                  |d|       t#        |      5 }t%        j&                  |dddg      }d d d        t)        j*                  |       |j                  j,                  dk(  sJ y # 1 sw Y   ;xY w)NrF   r  r  r  r   rl   r  r   r&  timera   r   r  rS  r   rC   r   )r  ra   )r   r   r   r   r   r   r   r   r   r   r   rL   r  r  r9  r*  rQ   r   rR   rS   r*   rT   rm   )rV   r(   r   r  r;  rr   r  s          r   test_to_excel_multiindex_datesz.TestExcelWriter.test_to_excel_multiindex_datest  s   D!II!!!$44V<$v,'\13?

 #..%%d+		#gmm,BHH= 5/
 	'{Kt_]]6g!QPF  	gv.||!!_444	 _s   2EEc                 L   t        ddgddgddgd      }|j                         }t        j                  dd	g      }||_        |j                  |d
d       t        |      5 }t        j                  |d
      }d d d        t        j                  |       y # 1 sw Y    xY w)Nr    ro  r  r  r  <   )rd   re   c)F   P   )Z   rD   r  Frj   r   )r   r   r   r  rL   rQ   r   rR   rS   r*   rT   )rV   r   frame1r   multi_indexrr   frame3s          r   'test_to_excel_multiindex_no_write_indexz7TestExcelWriter.test_to_excel_multiindex_no_write_index  s     "bRBxHI  ,,h	-BC" 	> t_]]6g>F  	ff-	 _s   #BB#c                 4   t        g g d      }t        g t        j                  g ddg      dg      }|j                  |d	       t	        |      5 }t        j                  |d	      }d d d        t        j                  |d
d
       y # 1 sw Y   #xY w)N)r   rC   rF   rf   r   rC   r   rF   r`  r  r   F)check_index_typecheck_dtype)	r   r   r  rQ   r   rR   rS   r*   rT   )rV   r   rW   rY   rr   rZ   s         r   test_to_excel_empty_multiindexz.TestExcelWriter.test_to_excel_empty_multiindex  s~    R3r!7!71a&!ITUSVW
DW-t_]]6g>F 
Hu%	
 _s   BBc                 (   t        g dg dgddgg d      }|j                  |dd	       t        |      5 }t        j                  |dd
      }d d d        t        g dg dgddgg d      }t        j                  |       y # 1 sw Y   8xY w)Ng~Ϛ?g9DܜJ?g>D)?g.4i(@33333@̤Ark   rl   r   r   r?  r`  r  %.2frK   float_formatr   r   gQ?gq=
ףp?g=
ףp=?gp=
ף(@r  r  )r   rQ   r   rR   rS   r*   rT   )rV   r   rY   rr   rZ   rW   s         r   test_to_excel_float_formatz*TestExcelWriter.test_to_excel_float_format  s    +-KL*#

 	DW6Bt_]]6gKF  !>?*#

 	fh/ _s   BBc                    t        g dg dgddgg d      }t        j                  d|z         5 }|j                  |d	       t	        j
                  |dd
      }t        j                  ||       d d d        y # 1 sw Y   y xY w)N)u   ƒu   Ɠu   Ɣ)u   ƕu   Ɩu   Ɨu   Aƒrl   )u   XƓr   r?  r`  z__tmp_to_excel_float_format__.	TestSheetr   r   r   rP   )rV   r,   rY   rX   rZ   s        r   test_to_excel_output_encodingz-TestExcelWriter.test_to_excel_output_encoding  su    +-KLc")
 __=CDKK[K9]]8qQF!!&"- EDDs   AA<<Bc                    t        j                  d|z         5 }	 t        |d      5  	 d d d        t        g dg dgddgg d	      }|j                  |d
d       t        |      5 }t        j                  |d
d      }d d d        d d d        t        g dg dgddgg d	      }t        j                  |       y # 1 sw Y   xY w# t        $ r t	        j
                  d       Y w xY w# 1 sw Y   pxY w# 1 sw Y   txY w)Nu   ƒu.wbz$No unicode file names on this systemr  r  rk   rl   r  r`  r  r  r  r   r   r  r  )r*   r+   openUnicodeEncodeErrorr   skipr   rQ   r   rR   rS   rT   )rV   r,   rX   rY   rr   rZ   rW   s          r   test_to_excel_unicode_filenamez.TestExcelWriter.test_to_excel_unicode_filename  s    __Z#-.(D(D) *
 /1OPCj'B
 KKW6KJ8$v'QO % /" !>?*#

 	fh/) *)% DBCD %$ /.s[   C<CC C7C<(C0C< C		CC-*C<,C--C<0C9	5C<<Duse_headersTFr_idx_nlevelsr{   c_idx_nlevelsc                    dfd	}|rdnd } |t        dg      ||      }|j                  dk(  sJ |j                  d   t        j                  usJ d}	d}
|dk(  r,t        t        |
      D cg c]  }d| 	 c}t        	      }nQt        j                  t        |      D cg c]  }t        |
       c}t        |      D cg c]  }d
| 	 c}      }|dk(  r,t        t        |	      D cg c]  }d| 	 c}t        	      }nQt        j                  t        |      D cg c]  }t        |	       c}t        |      D cg c]  }d| 	 c}      }t        t        j                  |	|
f      ||      }|dkD  r2d}t        j                  t        |      5   |||d       d d d        y  |||      }|r|j                  |	|
|z   fk(  sJ |j                  |	dz
  |
|z   fk(  sJ t        t        |j                              D ]H  }t        t        |j                               D ]%  }|j                  ||f   t        j                  ur%J  J y c c}w c c}w c c}w c c}w c c}w c c}w # 1 sw Y   y xY w)Nr   c                     | j                  ||       t              5 }t        j                  ||j                  d   |      cd d d        S # 1 sw Y   y xY w)N)rM   r(   rL   r   r  )rQ   r   rR   rS   r:  )datarM   
parser_hdrrL   rP  r(   r   s        r   	roundtripz;TestExcelWriter.test_excel_010_hemstring.<locals>.roundtrip  sF    MM$v;eMT4B}}2>>!#4Z !s   %AA)rC   rF   )r   r   r   r>   rC   za-r&  i-r   zb-zj-r   z_Writing to Excel with MultiIndex columns and no index \('index'=False\) is not yet implemented.r   Fr   )Tr   T)r   r   r   r   r   r   r   objectr   r   r   r   r   NotImplementedErrorr9  rL   rg   )rV   r(   r  r  r  r   r  parser_headerr   nrowsncolsr~   rg   r   rL   rY   r   rr  s    `   `             r   test_excel_010_hemstringz(TestExcelWriter.test_excel_010_hemstring  sr   	 )d	1#]CyyF"""xx~RVV+++ 
 AuU|<|!r!X|<FKG ,,',]';<';!u';<).})=>)=AA3x)=>G AU5\:\Rs8\:&IE**',]';<';!u';<).})=>)=AA3x)=>E
 GGUEN#
 1>  2#>"k7 ?> B,CyyUEM,A$BBBB yyUQY0E$FFFF 3syy>*s3;;/0A88AqD>777 1 +O = => ; =>  ?>s0   1I'I!I&
3I+)I0
I5
#I::Jc                 d   t        g dg dg dgg d      }|j                  |d       t        g dg dg dgg d      }t        j                  |dd      }t	        j
                  ||       t        g d	g d
gg d      }|j                  |d       t        j                  |dd      }t        g d	g d
gg d      }t	        j
                  ||       |j                  |ddd       t        j                  |dd       }t        g d	g d
g      }t	        j
                  ||       y )Nr{   )rk   rl   rl   rf   r  r   )rk   rl   B.1r   r   )rC   rF   r>   r=   )r      r      )rk   rl   rk   rl   )rk   rl   A.1r  FrJ   r  r   rQ   rR   rS   r*   rT   rV   r   rY   rW   rZ   s        r   test_duplicated_columnsz'TestExcelWriter.test_duplicated_columns-  s   	9i8/R
DW-	9-7H

 t1E
fh/ l3=QR
DW-t1E<(2J
 	fh/ 	DWE%HtElL9:
fh/r   c                     t        g dg dd      }|j                  |dddg       t        j                  |dd	      }t	        j
                  |d   |d          t	        j
                  |d   |d          y )
NrC   rC   rC   rF   rF   rF   rk   rl   r  rl   rk   r  r   r  )r   rQ   rR   rS   r*   assert_series_equal)rV   r   write_frame
read_frames       r   test_swapped_columnsz$TestExcelWriter.test_swapped_columnsJ  sn    ii @ATgSzJ]]4GAF

{3/CA
{3/CAr   c                 @   t        g dg dd      }t        j                  t        d      5  |j	                  |dddg	       d d d        t        j                  t        d
      5  |j	                  |dddg	       d d d        y # 1 sw Y   DxY w# 1 sw Y   y xY w)Nr  r  r  zNot all names specifiedr   r  rl   rI  r  z.'passes columns are not ALL present dataframe'rJ  )r   r   r   KeyErrorrQ   )rV   r   r  s      r   test_invalid_columnsz$TestExcelWriter.test_invalid_columnsT  s    ii @A]]8+DE  'C: N F ]]L
   'C: N
 
 FE
 
s   B(BBBz#to_excel_index,read_excel_index_col)Tr   )FNc                     t        g dg dg dd      }|j                  |dddg|       |ddg   }t        j                  |d|	      }t	        j
                  ||       y )
Nr  r  )r>   r>   r>   r  col_subset_bugrk   rl   )rK   rg   rL   r   r  )rV   r   to_excel_indexread_excel_index_colr  rW   r  s          r   test_write_subset_columnsz)TestExcelWriter.test_write_subset_columns`  so      iii PQ-Sz 	 	
 Sz*]]-9M

 	h
3r   c                 6   t        g dg dd      }|j                  |d       t        j                  |dd      }d |j                  d<   d |j                  d	<   d |j                  d
<   t        j                  |ddd      }t        j                  ||       y )Nonez#oner  twor  z#twor  test_cr   r   r   )rC   r   rC   rC   )rF   rC   #rK   commentrn   )r   rQ   rR   rS   r   r*   rT   rV   r   rY   result1result2s        r   test_comment_argz TestExcelWriter.test_comment_argu  s     3:PQR
DX. --QG!T!T!T--3RST
gw/r   c                     t        g dg dd      }|j                  |d       t        j                  |d      }t        j                  |dd       }t	        j
                  ||       y )Nr  r  r  r  r   )rK   r  r  r  s        r   test_comment_defaultz$TestExcelWriter.test_comment_default  sY    
 3:PQR
DX. --:--4H
gw/r   c                     t        g dg dd      }|j                  |d       t        g dg dd      }t        j                  |ddd	
      }t	        j
                  ||       y )Nr  r  r  r  r   )r  Nr  )r  NNr  r   r  r  r  s        r   test_comment_usedz!TestExcelWriter.test_comment_used  s]     3:PQR
DX. #7>QRSt#QRS
fh/r   c                     t        ddgddgd      }|j                  |d       t        dgd	gd      }t        j                  |d
      }t	        j
                  ||       y )N1z#223)rd   re   Fr   rC   rF   r  )r  r  r  s        r   test_comment_empty_linez'TestExcelWriter.test_comment_empty_line  s`     c4[Sz:;
D& A3aS12tS1
fh/r   c                 :   t        |      }t        dddddd      t        dddddd      t        ddddd	d
      t        dddddd      t        dddddd      t        dddddd      t        dddddd      t        dddddd      t        dddddd      t        dddddd      t        dddddd      g}t        d|i      }|j                  |d        t	        j
                  |dd!      }|j                  d"| d#      }t        j                  |d   |d          y )$Ni  rC   r]  rF   r>   -   8   r=      1   r  *   r   9   #   rX  )   r\  rx            5      %   r      ro  4   rk   r  r   r  ra  rb  )	r   r   r   rQ   rR   rS   r)  r*   r  )rV   r   r  	datetimesr  r  rW   s          r   test_datetimeszTestExcelWriter.test_datetimes  s?   D!T1b!Q*T1b!R,T1b!R,T1b!R,T1b!R,T1b!R,T1b"b"-T1b"a,T1b"b!,T1b"b!,T1b"b"-
	  i 01Th7]]4HQG
%%D6m4
x}jo>r   c                    t               5 }t        t        j                  j	                  d      j                  d            }t        ||      5 }|j                  |       d d d        |j                  d       t        j                  |d      }t        j                  ||       d d d        y # 1 sw Y   PxY w# 1 sw Y   y xY w)NrF   r   r1   r   r   )r   r   r   r   r   r   r   rQ   seekrR   rS   r*   rT   )rV   r1   biorY   rq   	reread_dfs         r   test_bytes_iozTestExcelWriter.test_bytes_io  s    Y#299003CCGLMB S0FF# 1 HHQKcQ7I!!"i0 Y 10	 Ys%   AB=B1"AB=1B:	6B==Cc                 `   t        ddddddg      }dddd}t        r
d	|d
<   d	|d<   |d
k(  r$t        j                  j	                  |      sd|d
<   t        j                  t        t        j                  ||               5  |j                  ||ddi       d d d        y # 1 sw Y   y xY w)NrC   rF   r  r>   r=   zBOpenDocumentSpreadsheet() got an unexpected keyword argument 'foo'z3__init__() got an unexpected keyword argument 'foo')r:   r5   r9   z<Workbook.__init__() got an unexpected keyword argument 'foo'r5   r9   z8load_workbook() got an unexpected keyword argument 'foo'r   ra   rb   )r1   engine_kwargs)r   r	   osr   existsr   r   	TypeErrorreescaperQ   )rV   r1   r   rY   msgss        r   test_engine_kwargsz"TestExcelWriter.test_engine_kwargs  s    aa(*:;<NP	
  O 
 O 
 Zt(< L  ]]9BIId6l,CDKK$en   EDDs   B$$B-c                 f   t        dddgdddgg dg dd	      }|j                  |d
       t        j                  |d
dd      }|j	                         }|j
                  j                  t              |_        |j                  j                  d      |_        t        j                  ||       y )Nrd   re   r  erF   )r}   f)rC   rF   g      @)applebananacherry)mixednumericrr  r  r   r   r  r*  )r   rQ   rR   rS   r   r9  r  rr  r:  r)  r*   rT   rV   r   rY   readrW   s        r   test_write_lists_dictz%TestExcelWriter.test_write_lists_dict  s    Sz1+=>&4
 	DX.}}ThqAN779!--c2#++227;
dH-r   c                     t        ddgddgd      }|j                  |d       t        j                  |dd	      }|}t	        j
                  ||       y )
NrC   rF   r>   r=   )renderr  r  r   r   r   r  r;  s        r   test_render_as_column_namez*TestExcelWriter.test_render_as_column_name  sP    1a&1a&9:
DX.}}T8q9
dH-r   c                 >   t        ddggddgt              }t        dd      5  |j                  ddd	      j	                  d
      }d d d        |j                  |       t        j                  |dgdgd      }t        j                  |       y # 1 sw Y   LxY w)Nra   rb   col1col2r  zfuture.no_silent_downcastingTF)ra   rb   r   r   )true_valuesfalse_valuesrn   )
r   r  r   replacer)  rQ   rR   rS   r*   rT   )rV   r   rY   rW   r  s        r   !test_true_and_false_value_optionsz1TestExcelWriter.test_true_and_false_value_options  s    '&&1AP:DAzz$u"=>EEfMH B 	D]]ugUGq

 	j(3 BAs   $BBc                     t        ddgddggddg      }|j                  |dd	
       t        j                  |d      }t	        j
                  ||       y )NrC   rF   r>   r=   rB  rC  rf   r  r   )rK   freeze_panesr   r   r  )rV   r   rW   rZ   s       r   test_freeze_panesz!TestExcelWriter.test_freeze_panes  sU    q!fq!f-7GH$8&Itq1
fh/r   c                    t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}t                    }t        |j                  |	      }t        t        j                  d
      }t        j                  ||d|       }t        j                  ||       y c c}w )Nr   x   r  r=   r  r  r  r&  r   r%  r   r   ra   r   )r   r   r  r  r   r   r   r  r   rQ   rR   rS   r*   round_trip_pathlibrT   rV   r1   r,   r~   rY   rq   rr   rZ   s           r   test_path_path_libz"TestExcelWriter.test_path_path_lib"  s    "))C.((11$v,'5959a2aS95VD

 V4!4&&vvc#KH
fb) 6s   Cc                    t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }t        |j                  |      }t        t        j                  d	
      }t        j                  ||d|       }t        j                  ||       y c c}w )Nr   rL  rM  r  r  r  r   r%  r   r   ra   r   )r   r   r  r  r   r   r   r   rQ   rR   rS   r*   round_trip_localpathrT   rO  s           r   test_path_local_pathz$TestExcelWriter.test_path_local_path.  s    "))C.((11$v,'5959a2aS956

 V4!4((C5kJ
fb) 6s   Cc           	         t        j                  t        j                  d      t        j                  d      ft        j                  d      t        j                  d      fg      }t	        t        j                  dd      |      }|j                  |       t        j                  |dd	gd
      }|j                  j                  |j                  d   D cg c]  }t        |       c}|j                  d	   D cg c]  }t        |       c}gdd	g      |_	        t        j                  ||       y c c}w c c}w )N20182018Q12018Q2)rF   rF   r*  r&  rf   r   rC   r   )level)r   r  rR   Periodr   r   r   rQ   rS   rg   
set_levelslevelsrr  r*   rT   )rV   r   mirW   rZ   r~   s         r   test_merged_cell_custom_objectsz/TestExcelWriter.test_merged_cell_custom_objects:  s   ##6"BIIh$786"BIIh$78
 RWWV7;RH$tQFa@#++66 iil+lc!fl+biil-Klc!fl-KLa& 7 
 	fh/ ,-Ks   D: D?
r'  Nc                    |}t        j                  d|      }t        |g|      }t        j                  t
        d      5  |j                  |       d d d        |j                         }t        |g|      }t        j                  t
        d      5  |j                  |       d d d        y # 1 sw Y   ]xY w# 1 sw Y   y xY w)N2019)tzr&  zExcel does not supportr   )rR   r   r   r   r   r   rQ   to_pydatetime)rV   r'  tz_aware_fixturer   r`  r  rY   s          r    test_raise_when_saving_timezonesz0TestExcelWriter.test_raise_when_saving_timezonesL  s     ||Fr*vU+]]:-EFKK G !!#vU+]]:-EFKK GF GF
 GFs   B1B=1B:=Cc                     t        ddgddgd      }|j                  |g dd       t        j                  |      }t        g d	g d
gg d      }t	        j
                  ||       y )Nr   rC   r    rx   r  )rk   rl   rk   Fr   )r   r    r   )rC   rx   rC   )rk   rl   r  rf   r  )rV   r   rY   rZ   rW   s        r   'test_excel_duplicate_columns_with_namesz7TestExcelWriter.test_excel_duplicate_columns_with_namesZ  s[    aV2r(34
D/?t$j*5?PQ
fh/r   c                     d}t        j                  |      5 }t        j                  t        t        j                  |            5  t        |d       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nz7if_sheet_exists is only valid in append mode (mode='a')r   rF  )if_sheet_exists)r*   r+   r   r   r   r/  r0  r   )rV   r,   r   r5  s       r   test_if_sheet_exists_raisesz+TestExcelWriter.test_if_sheet_exists_raisesc  sS    G__S!Qz3@Ay9 A "!@@ "!s#   /A2A&A2&A/	+A22A;c                 8   t        j                  |      5 }t        ||      5 }t               j	                  |       d d d        t        j                  |      }t               }t        j                  ||       d d d        y # 1 sw Y   GxY w# 1 sw Y   y xY wNr%  )r*   r+   r   r   rQ   rR   rS   rT   )rV   r1   r,   r   rq   rZ   rW   s          r   test_excel_writer_empty_framez-TestExcelWriter.test_excel_writer_empty_framek  sn    __S!TT&1V$$V, 2]]4(F {H!!&(3 "!11 "!s!   BB=BB		BBc                     t        j                  |      5 }t               j                  ||       t	        j
                  |      }t               }t        j                  ||       d d d        y # 1 sw Y   y xY wrj  r   )rV   r1   r,   r   rZ   rW   s         r   test_to_excel_empty_framez)TestExcelWriter.test_to_excel_empty_framet  sV    __S!TK  f 5]]4(F {H!!&(3	 "!!s   AA00A9)Er   r   r   r   r   r  r  r  r  r   r   r   r   r   int8int16int32r*  r-  float16float32float64r/  r3  r6  r<  rC  rL  rQ  rU  rl  rt  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r#  r)  r2  r=  r@  rG  rJ  rP  rS  r]  r  rc  re  rh  rk  rm  r   r   r   r   r   a  s.   .""#5/4b30(> [[Y"((BHHbhh(OP2 Q2" [[YRZZ(LM
* N
*
**!0F&$;*z
*02-0^0&0&0*5)'"),5..*
0$.02 [[]T5M:[[_i8[[_i8C8 9 9 ;C8J0:B
O [[-	
440&00
0?01@.$.
40
*
*0$ [[WtVn5 60:44r   r   c                       e Zd Zej                  j                  d ej                  ed ej                  d             ej                  e
d ej                  d            g      d        Zd Zd Zy	)
TestExcelWriterEngineTestsz	klass,extr4   r9   r7   r5   c                    t        j                  |      5 }t        |      5 }|dk(  r(t        t	        dd            rt        |t              sJ t        ||      sJ d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr4   r9   ignore)errors)r*   r+   r   r   r
   
isinstancer   )rV   klassr,   r   rq   s        r   test_ExcelWriter_dispatchz4TestExcelWriterEngineTests.test_ExcelWriter_dispatch~  ss     __S!TT"f'>d.|HM' &fk:::%fe444 # "!"" "!s"   A;<A/A;/A8	4A;;Bc                 z    t        j                  t        d      5  t        d       d d d        y # 1 sw Y   y xY w)Nz	No enginer   nothing)r   r   r   r   rV   s    r    test_ExcelWriter_dispatch_raisesz;TestExcelWriterEngineTests.test_ExcelWriter_dispatch_raises  s$    ]]:[9	" :99s   1:c           
      Z    G d dt               }t        |       t        dd      5  d}t        j                  |      5 }t        |      5 }t        ||      sJ 	 d d d        t        dgt        dgd	      t        d
gd	            }|j                  |       d d d        |j                          d d d        t        j                  d      5 }j                  |d       d d d        |j                          y # 1 sw Y   xY w# 1 sw Y   oxY w# 1 sw Y   cxY w# 1 sw Y   >xY w)Nc                   R    e Zd ZdZdZdZdZdZd Zd Z	d Z
ed        Zed        Zy	)
CTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClassF)xlsxxlsrG  c                      y r%   r   r~  s    r   bookzHTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.book  s    r   c                 $    dt        |       _        y NT)typecalled_saver~  s    r   _savezITestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass._save  s    )-T
&r   c                 $    dt        |       _        y r  )r  called_write_cells)rV   argskwargss      r   _write_cellszPTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass._write_cells  s    04T
-r   c                 $    dt        |       _        y r  )r  called_sheetsr~  s    r   r   zJTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.sheets  s    +/T
(r   c                 t    | j                   sJ | j                  sJ | j                  rJ d| _         d| _        y )NF)r  r  r  )clss    r   assert_called_and_resetz[TestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.assert_called_and_reset  s;    &----,,,,"').&r   N)r   r   r   r  r  r  _supported_extensions_enginer  r  r  propertyr   classmethodr  r   r   r   
DummyClassr    sT    K!&!M$3!G.5 0 0 / /r   r  zio.excel.xlsx.writerrG  zsomething.xlsxrd   re   ra   )rO  r  rb   r   zsomething.xlsr%  )
r   r   r   r*   r+   ry  r   r   rQ   r  )rV   r  r   filepathrq   rY   s         r   test_register_writerz/TestExcelWriterEngineTests.test_register_writer  s    	/ 	/8 	
#2G<#D&( *f%fj999 +E!3%e4E2
 H% ' ..0 = ___-KKK1 .**, +* '& =< .-sG   DD	C=A D	DD!=DD		D	DD!D*N)r   r   r   r   r   r   r&   r   td
skip_if_nor   r{  r  r  r   r   r   ru  ru  }  so    [[FLLg]R]]<5PQFLL'z9RS	
	5	5#.-r   ru  c                       e Zd Zd Zd Zd Zy)
TestFSPathc                    t        j                  d      5 }t        dddgi      }|j                  |       t	        |      5 }t        j                  |      }d d d        |k(  sJ 	 d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nfoo.xlsxrk   rC   rF   )r*   r+   r   rQ   r   r,  fspath)rV   r   rY   r   rZ   s        r   test_excelfile_fspathz TestFSPath.test_excelfile_fspath  sn    __Z(DC!Q=)BKK4B2 !T>!> )( ! )(s#   ,A=A1A=1A:	6A==Bc                     t        j                  d      5 }t        |      5 }t        j                  |      t        |      k(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr  )r*   r+   r   r,  r  rr  )rV   r   rq   s      r   test_excelwriter_fspathz"TestFSPath.test_excelwriter_fspath  sR    __Z(DT"fyy(CI555 # )("" )(s"   A$$AA$A!	A$$A-c                     t        dg di      }d}t        j                  t        |      5  t	               }t        |      }|j                  |d       d d d        y # 1 sw Y   y xY w)Nrd   r{   zwStarting with pandas version 3.0 all arguments of to_excel except for the argument 'excel_writer' will be keyword-only.r   Sheet_name_1)r   r*   r   r   r   r   rQ   )rV   rY   r   bufrq   s        r   "test_to_excel_pos_args_deprecationz-TestFSPath.test_to_excel_pos_args_deprecation  sZ    Y'(E 	 ''SA)C %FKK/ BAAs   (AA'N)r   r   r   r  r  r  r   r   r   r  r    s    "6

0r   r  rz  c                     t        t              D ch c]  }|j                  d      r| }}t        |       D ch c]  }|j                  d      r| }}|j                  |      rJ y c c}w c c}w )Nr   )dirr   
startswithsymmetric_difference)rz  rO  
attrs_baseattrs_klasss       r   test_subclass_attrr    sm     $'{#3P#344??3;O$#3JP$'JKJDdooc6J4JKK..{;;;; QKs   A-A-A2A2)<r   r   r   	functoolsr   ior   r,  r/  numpyr   r   pandas.compatr   pandas.compat._constantsr	   pandas.compat._optionalr
   pandas.util._test_decoratorsutil_test_decoratorsr  pandasrR   r   r   r   r   r   pandas._testing_testingr*   pandas.io.excelr   r   r   r   r   pandas.io.excel._utilr   r   
single_cpu
pytestmarkrr  r   fixturer"   r(   r   r3   r   r&   r  r<   usefixturesr   ru  r  valuesr  r   r   r   <module>r     s3   
   	 	   - * > ) )     +''Js s    e}% &     	W]R]]:%>f@U$VWW]R]]:%>f@U$VWMBMM,7v9NO	
 	V=2==#78
@0 @0
@0F  2==,mbmmF.CD	

 	 2==,mbmmF.CD	

 	 2==.f0EF	

 	UF-"--*>?!* &C4 C4 '+,C4L E- E-P vz0 0  06 /(//"34< 5<r   