
    Mhs                     n   S SK JrJ r Jr  S SKJr  S SKJr  S SKrS SKrS SK	r
S SKrS SKJr  S SKJr  S SKJr  S SKJs  Jr  S SKrS SKJrJrJrJrJr  S SKJr  S S	K J!r!J"r"J#r#J$r$J%r%  S S
K&J'r'  \" 5       (       a  \RP                  RR                  r*S\+S\+4S jr,\RZ                  S 5       r.\RZ                  " SS/S9S 5       r/\RZ                  S 5       r0\RZ                  S 5       r1\RP                  Re                  S\Rf                  " S\Rh                  " S5      \Rh                  " S5      /S9\Rf                  " S\Rh                  " S5      \Rh                  " S5      /S9\Rf                  " S\Rh                  " S5      \Rh                  " S5      /S9\Rf                  " S\Rh                  " S5      S9/5       " S S5      5       r5\RP                  Re                  S \Rf                  " SS\Rh                  " S5      \Rh                  " S5      /S9\Rf                  " SS\Rh                  " S5      \Rh                  " S5      /S9\Rf                  " SS\Rh                  " S5      \Rh                  " S5      /S9\Rf                  " SS\Rh                  " S5      S9/5      \RP                  Rm                  S!5       " S" S#5      5       5       r7 " S$ S%5      r8\Rh                  " S5      \Rh                  " S5       " S& S'5      5       5       r9\RP                  Re                  S(\'Rt                  " 5       5      S) 5       r;g)*    )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                     g)Nns r   s    T/var/www/html/env/lib/python3.13/site-packages/pandas/tests/io/excel/test_writers.pyget_exp_unitr   *   s        c                     U SS $ )z7
Returns the first ten items in fixture "float_frame".
N
   r   )float_frames    r   framer"   .   s    
 sr   TF)paramsc                     U R                   $ N)param)requests    r   merge_cellsr(   6   s    ==r   c              #   t   #    [         R                  " U 5       nUv   SSS5        g! , (       d  f       g= f7f)z1
Fixture to open file for use in each test case.
N)tmensure_clean)ext	file_paths     r   r   r   ;   s%     
 
	 
		s   8'	8
58c              #      #    SUR                  S5       S3n[        X 5         Sv   SSS5        g! , (       d  f       g= f7f)a5  
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   s4      ciin-W5K		, 
-	,	,s   !A1	A
?Ar,   .xlsxopenpyxlxlrdmarksz.xlsm
xlsxwriterz.odsodfc            
          \ rS rSr\R
                  R                  SS\" \R                  /S-  5      4S\" S\R                  /S-  05      4/5      S 5       r
\R
                  R                  SS\" S/\R                  /S-  -   5      4S\" \R                  /S-  5      4/5      S	 5       rS
 rS rS r\R
                  R                  SSS/5      \R
                  R                  SSS/5      \R
                  R                  SSS/5      \R
                  R                  SSS/5      S 5       5       5       5       rS rS rSrg)TestRoundTripS   zheader,expectedN   r   z
Unnamed: 0   c                    Sn[        / SQ/ SQ/ SQ/ SQ/5      n[        R                  " U5       nUR                  XdSSS9  [        R
                  " XdS/US	9nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)
N	no_header    d   rC         rC   r?   i,  rC   r>   i  F
sheet_nameindexheaderr   rL   usecolsrN   r   r*   r+   to_excelpd
read_excelassert_frame_equalselfr,   rN   expectedfilenamedfr   results           r   !test_read_one_empty_col_no_header/TestRoundTrip.test_read_one_empty_col_no_header_   ss     lL,OP__S!TKKuKM]]A3vF " 	fh/ "!s   )A99
Bc                    Sn[        / SQ/ SQ/ SQ/ SQ/5      n[        R                  " U5       nUR                  USSSS9  [        R
                  " XdS	/US
9nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)Nwith_headerrB   rF   rI   rJ   FTrK   r   rO   rQ   rV   s           r   #test_read_one_empty_col_with_header1TestRoundTrip.test_read_one_empty_col_with_headerp   su    
 !lL,OP__S!TKKeDKQ]]A3vF " 	fh/ "!s   *A::
Bc           	      :   [        SS/SS/SS//SS/S	9n[        R                  " U5       n[        U5       nUR	                  US
SSS9  UR	                  USSS9  S S S 5        SS/Ul        [        U5       n[        R                  " US
S SS/S9n[        R                  " USS SS/S9nS S S 5        [        R                  " WU5        [        R                  " WU5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NV= f! , (       d  f       g = f)NrD   foorG   barr?   bazabcolumnsData_no_headF)rL   rN   rM   Data_with_headrL   rM   AB)rL   rN   names)rL   	index_colro   )
r   r*   r+   r   rR   ri   r   rS   rT   rU   )rW   r,   refdfpthwriterreaderxlsdf_no_headxlsdf_with_heads           r   "test_set_column_names_in_parameter0TestRoundTrip.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$C*D83C;+6D*
C8	4D;
D		D
Dc                    S n/ SQnU Vs/ s H
  oB" U5      PM     nn[        [        X55      5      n[        R                  " U5       n[	        U5       nUR                  5        H  u  pU	R                  XxS9  M     S S S 5        [        R                  " XcSS9n
U H  n[        R                  " XT   X   5        M      S S S 5        g s  snf ! , (       d  f       NU= f! , (       d  f       g = f)Nc                 &    / SQ/ SQp![        XU /S9$ )N)      !   rD   rG   r?   rh   )r   )col_sheet_namedis      r   tdfDTestRoundTrip.test_creating_and_reading_multiple_sheets.<locals>.tdf   s    qQN+;<<r   )AAABBBCCCrL   r   rL   rp   )
dictzipr*   r+   r   itemsrR   rS   rT   rU   )rW   r,   r   sheetssdfsrr   ew	sheetnamerZ   dfs_returneds              r   )test_creating_and_reading_multiple_sheets7TestRoundTrip.test_creating_and_reading_multiple_sheets   s    
	= '%&v!s1vv&3v#$__S!SS!R%(YY[MIKKK9 &1 " ==1ML%%cflo>  "! ' "! "!s*   C	C)C>AC
C	C
C,c                     [         R                  " U5       n[        SS0SS0SS0SS0S.5      n[        SS0SS0SS0SS0S.5      nUR                  U5        [        R
                  " USS/SS9n[         R                  " XT5        [        SS0SS0SS0SS0S.5      n[        SS0SS0SS0SS0S	.5      nUR                  U5        [        R
                  " USS/SS9n[         R                  " XT5        S S S 5        g ! , (       d  f       g = f)
Nr   rD   r?      )OnexTwoXr   Y)ZerorC   )r   r   r   )r   zUnnamed: 4_level_1rN   rp   ))BegrC   Middler   Tailr   r   r   ))r   zUnnamed: 1_level_1r   r   r   r*   r+   r   rR   rS   rT   rU   )rW   r,   r   rZ   rX   actuals         r   &test_read_excel_multiindex_empty_level4TestRoundTrip.test_read_excel_multiindex_empty_level   s1   __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C??
Dc_idx_namesrf   r_idx_namesrg   c_idx_levelsrD   r_idx_levelsc           
         [         R                  " U5       n[        U5      =(       d    US:*  nUS:X  a  [        [	        S5      5      n	OV[
        R                  " [        U5       V
s/ s H  n
[        S5      PM     sn
[        U5       Vs/ s H	  o SU 3PM     snS9n	US:X  a  [        [	        S5      5      nOV[
        R                  " [        U5       V
s/ s H  n
[        S5      PM     sn
[        U5       Vs/ s H	  o SU 3PM     snS9n[        S[        R                  " S5      -  U	US	9nUR                  U5        [        R                  " U[	        [        U5      5      [	        [        U5      5      S
9n[         R                  " XUS9  [        R                  UR                   SS S 24'   UR                  U5        [        R                  " U[	        [        U5      5      [	        [        U5      5      S
9n[         R                  " XUS9  [        R                  UR                   SS S 24'   UR                  U5        [        R                  " U[	        [        U5      5      [	        [        U5      5      S
9n[         R                  " XUS9  S S S 5        g s  sn
f s  snf s  sn
f s  snf ! , (       d  f       g = f)NrD   abcde   -ro   ghijk皙?)r   r   ri   rM   )rp   rN   )check_namesr   )r*   r+   boolr   listr   from_arraysranger   nponesrR   rS   rT   rU   naniloc)rW   r,   r   r   r   r   r'   rr   r   ri   _r   rM   rZ   acts                  r   test_excel_multindex_roundtrip,TestRoundTrip.test_excel_multindex_roundtrip   s?    __S!S {+@|q/@Kq W.$00',\':;':!U1X':;9>|9LM9LA]!A3/9LM q d7m,"..',\':;':!U1X':;9>|9LM9LA]!A3/9LM bggfo%B
 KK--u\23E,/0C
 !!"{CFFBGGAqDMKK--u\23E,/0C
 !!"{CVVBGGBENKK--u\23E,/0C
 !!"{Ce "! <M <M# "!sC   AJ2'J
<J2J#=J2J(
-J2<J-F	J2J22
K c           	         [        / SQ[        SSS9S.5      nUR                  5       nUS   R                  R	                  S5      US'   [
        R                  " U5       nUR                  U5        [        R                  " USS	9n[
        R                  " X55        [        R                  " US/SS
9n[
        R                  " X%5        S n[
        R                  " [        SSS9   [        R                  " US/USS9nS S S 5        [
        R                  " X%5        [        R                  " US/SSS9n[
        R                  " X%5        S S S 5        g ! , (       d  f       N[= f! , (       d  f       g = f)Nr~   z
2012-01-01r?   )periods)coldate_stringsr   %m/%d/%Yr   rp   )parse_datesrp   c                 0    [         R                  " U S5      $ )Nr   )r   strptimer   s    r   <lambda>;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_parserrp   )r   date_formatrp   )r   r   copydtstrftimer*   r+   rR   rS   rT   rU   assert_produces_warningFutureWarning)rW   r,   rZ   df2rr   resr   s          r   test_read_excel_parse_dates)TestRoundTrip.test_read_excel_parse_dates  s;   z,PQ/RS
 ggi!.144==jIN__S!SLL--q1C!!#+--.1AQOC!!"*DK++1(-
 mm!/ 0 +	 !!"*--.!1zUVC !!"*3 "!  "!s&    BE&'E AE&
E#	E&&
E4c           	         [         R                  " [        S5      [        R                  " [        R
                  " S5      SSS9/5      n[        [        S5      US9n[        R                  " U5       nUR                  U5        [        R                  " USS/S9nS S S 5        [        [        S5      [         R                  " [        S5      / S	Q/5      5      n[        R                  " WU5        g ! , (       d  f       N\= f)
Nr>   z
2020-01-016ME)startr   freqrM   r   rD   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   rS   interval_range	Timestampr   r*   r+   rR   rT   rU   )rW   r,   midxrZ   rr   r[   rX   s          r   "test_multiindex_interval_datetimes0TestRoundTrip.test_multiindex_interval_datetimesB  s    %%a!!,,|4ae
 uQxt,__S!SKK]]31a&9F " !H""!H

 	fh/# "!s   3)C22
D r   )__name__
__module____qualname____firstlineno__pytestmarkparametrizer   r   r   r\   r`   rw   r   r   r   r   r   __static_attributes__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                      \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	\R                  \R                   \R"                  \R$                  /5      S
 5       r\R                  R                  S	\R(                  \R*                  \R,                  /5      S 5       rS rS rS rS rS rS rS rS rS r S r!S r"S r#S r$S r%S r&S r'S r(S r)S r*S r+S  r,\R                  R                  S!S"S#/5      \R                  R                  S$/ S%Q5      \R                  R                  S&/ S%Q5      S' 5       5       5       r-S( r.S) r/S* r0\R                  R                  S+S,S-/5      S. 5       r1S/ r2S0 r3S1 r4S2 r5S3 r6S4 r7S5 r8S6 r9S7 r:S8 r;S9 r<S: r=S; r>S< r?\R                  R                  S=S>\@/5      S? 5       rAS@ rBSA rCSB rDSC rESDrFg>)ETestExcelWriteria  c                    SnSn[         R                  " US4S9n[         R                  " SU4S9n[        U5      n[        U5      nSn[        R                  " [
        US9   UR                  U5        S S S 5        [        R                  " [
        US9   UR                  U5        S S S 5        g ! , (       d  f       NB= f! , (       d  f       g = f)Ni  i@  rD   )shapezsheet is too larger   )r   zerosr   r   raises
ValueErrorrR   )	rW   r   breaking_row_countbreaking_col_countrow_arrcol_arrrow_dfcol_dfmsgs	            r   test_excel_sheet_size%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   "B0C0
B>
Cc                    [        [        R                  R                  S5      R	                  S5      5      nUR                  U5        [        U5       n[        R                  " USSS9nS S S 5        [        R                  " UW5        Sn[        R                  " [        US9   [        R                  " WS5        S S S 5        g ! , (       d  f       Na= f! , (       d  f       g = f)NrG   r    rG   r   r   zWorksheet named '0' not foundr   0)r   r   randomdefault_rngstandard_normalrR   r   rS   rT   r*   rU   r   r   r   )rW   r   gtxlrZ   r   s         r   test_excel_sheet_by_name_raise.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                    [        U5       nUR                  USS9  UR                  5       nUR                  S S S2   Ul        UR                  USS9  S S S 5        [	        U5       n[
        R                  " USSS9n[
        R                  " USSS9n[        R                  " Xa5        [        R                  " UW5        S S S 5        g ! , (       d  f       N|= f! , (       d  f       g = f)NData1r   r   Data2r   r   )	r   rR   r   ri   r   rS   rT   r*   rU   )rW   r"   r   rs   frame2rt   found_df	found_df2s           r   !test_excel_writer_context_manager1TestExcelWriter.test_excel_writer_context_manager  s    &NN6gN6ZZ\F"]]4R40FNOOFwO7	  t_}}V1MHfANI!!(2!!)V4 _  _s   AC
'AC

C
C)c                 >   UR                  5       n[        R                  UR                  S S2UR                  R                  S5      4'   UR                  USS9  UR                  USSS/S9  UR                  USSS9  UR                  USSS	9  UR                  USS9  [        R                  " USS
S9n[        R                  " X5        UR                  USSS	9  [        R                  " USS S9nUR                  Ul        [        R                  " X5        UR                  USSS9  [        R                  " USS
S/S9n[        R                  " X5        UR                  USSS9  [        R                  " USS
S/S9n[        R                  " X5        UR                  USSS9  [        R                  " USS
SS/S9n[        R                  " X5        UR                  USS9  [        R                  " US
S9n[        R                  " X5        UR                  USS9  [        R                  " US
S9n[        R                  " X5        US   nUR                  U5        [        R                  " US
S9n[        R                  " UR                  5       U5        g )Nr   rm   test1r   rn   rL   ri   FrL   rN   rl   r   r   NA)rL   na_rep)rL   rp   	na_values88X   g      V@Sheet1r   r  )r   r   r   r   ri   get_locrR   rS   rT   r*   rU   rM   to_frame)rW   r"   r   reconsr   s        r   test_roundtripTestExcelWriter.test_roundtrip  s:   

57VV

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

4tq1
ajjlF3r   c                     UR                  5       nSUS'   UR                  USS9  [        U5       n[        R                  " USSS9nS S S 5        [
        R                  " UW5        g ! , (       d  f       N&= f)Nrd   rc   r  r   r   r   )r   rR   r   rS   rT   r*   rU   )rW   r"   r   mixed_framert   r  s         r   
test_mixedTestExcelWriter.test_mixed  sb    jjl"ETg6t_]]6gKF 
k62 _s   A((
A6c           
      >   [        U5      n[        [        R                  R	                  S5      R                  S5      [        [        S5      5      [        SSSS9S9n[        R                  " [        R                  " UR                  5      S S	9nXCl        US S  nUR                  R                  U5      Ul        UR                  US
S9  [        U5       n[        R                   " US
SS9nS S S 5        ["        R$                  " UW5        g ! , (       d  f       N&= f)NrG   r   r>   ABCD
2000-01-01r   rn   r   r   r   r   r  r   r   r   )r   r   r   r  r  r  r   r   r   rS   DatetimeIndexasarrayrM   as_unitrR   r   rT   r*   rU   )rW   r   unitrZ   rM   rX   rt   r  s           r   test_ts_frame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                 "   UR                  5       n[        R                  UR                  S S2UR                  R                  S5      4'   UR                  USS9  UR                  USSS/S9  UR                  USSS9  UR                  USSS	9  g )
Nr   rm   r  r   rn   r  Fr  rl   )r   r   r   r   ri   r  rR   )rW   r"   r   s      r   test_basics_with_nan$TestExcelWriter.test_basics_with_nan  s    

57VV

2A2u}},,S112t0t#sDt>tu=r   np_typec                    [        [        R                  R                  S5      R	                  SSSS9US9nUR                  USS9  [        U5       n[        R                  " USS	S
9nS S S 5        UR                  [        R                  5      n[        R                  " UW5        [        R                  " USS	S
9n[        R                  " Xg5        g ! , (       d  f       Nq= f)NrG   r    r  sizedtyper  r   r   r   )r   r   r  r  integersrR   r   rS   rT   astypeint64r*   rU   )rW   r4  r   rZ   rt   r  	int_framerecons2s           r   test_int_typesTestExcelWriter.test_int_types  s     II!!!$--c2G-DG
 	DW-t_]]6gKF  IIbhh'	
i0--AF
i1 _s   C
C"c                 R   [        [        R                  R                  S5      R                  S5      US9nUR	                  USS9  [        U5       n[        R                  " USSS9R                  U5      nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)NrG   r    r9  r  r   r   r   )r   r   r  r  rR   r   rS   rT   r<  r*   rU   )rW   r4  r   rZ   rt   r  s         r   test_float_types TestExcelWriter.test_float_types  s     ryy,,Q/66r:'J
DW-t_]]6gKRRF 
 	b&) _s   &B
B&c                 6   [        / SQ[        R                  S9nUR                  USS9  [	        U5       n[
        R                  " USSS9R                  [        R                  5      nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)N)rD   r   TFr9  r  r   r   r   )
r   r   bool_rR   r   rS   rT   r<  r*   rU   rW   r   rZ   rt   r  s        r   test_bool_typesTestExcelWriter.test_bool_types  so    *"((;
DW-t_]]6gKRRF 
 	b&) _s   4B


Bc                 &   [        S[        R                  4SS[        R                  * 4/5      nUR                  USS9  [	        U5       n[
        R                  " USSS9nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)NrD   )rG   r?   r   r  r   r   r   )	r   r   infrR   r   rS   rT   r*   rU   rG  s        r   test_inf_roundtrip"TestExcelWriter.test_inf_roundtrip%  so    BFFVa"&&\:;
DW-t_]]6gKF  	b&) _s   B
Bc           
         [        U5      n[        [        R                  R	                  S5      R                  S5      [        [        S5      5      [        SSSS9S9n[        R                  " [        R                  " UR                  5      S S	9nXTl        US S  nUR                  R                  U5      Ul        UR                  5       n[        R                  UR                   S S2UR"                  R%                  S
5      4'   UR'                  USS9  UR'                  USS
S/S9  UR'                  USSS9  UR'                  USSS9  [)        U5       nUR'                  USS9  UR'                  USS9  S S S 5        [+        U5       n[        R,                  " USSS9n	[.        R0                  " X5        [        R,                  " USSS9n	S S S 5        [.        R0                  " UW	5        S[3        WR4                  5      :X  d   eSUR4                  S   :X  d   eSUR4                  S   :X  d   eg ! , (       d  f       N= f! , (       d  f       N|= f)NrG   r&  r'  r(  r   rn   r)  r   r*  rm   r  r   r  Fr  rl   test2r   r   rD   )r   r   r   r  r  r  r   r   r   rS   r+  r,  rM   r-  r   r   r   ri   r  rR   r   r   rT   r*   rU   lensheet_names)
rW   r"   r   r.  tsframerM   rX   rs   rt   r  s
             r   test_sheets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   !H2
AI2
I 
Ic                 .   UR                  5       n[        R                  UR                  S S2UR                  R                  S5      4'   UR                  USS9  UR                  USSS/S9  UR                  USSS9  UR                  USSS	9  [        / S
Q5      nUR                  USUS9  [        U5       n[        R                  " USSS9nS S S 5        UR                  5       nX6l        [        R                  " UW5        g ! , (       d  f       N<= f)Nr   rm   r  r   rn   r  Fr  rl   )AAr   r   Zr   r   )r   r   r   r   ri   r  rR   r   r   rS   rT   r*   rU   )rW   r"   r   col_aliasesrt   rsxps          r   test_colaliases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   9D
Dc                    UR                  5       n[        R                  UR                  S S2UR                  R                  S5      4'   UR                  USS9  UR                  USSS/S9  UR                  USSS9  UR                  USSS	9  [        [        R                  R                  S
5      R                  S5      5      S:  nUR                  USS/US9  [        U5       n[        R                  " USSS9R                  [        R                  5      nS S S 5        S/UR                   l        UR                   R"                  WR                   R"                  :X  d   e[        [        R                  R                  S
5      R                  S5      5      S:  nUR                  US/ SQUS9  [        U5       n[        R                  " USSS9R                  [        R                  5      nS S S 5        S/UR                   l        UR                   R"                  UR                   R"                  :X  d   e[        [        R                  R                  S
5      R                  S5      5      S:  nUR                  USSUS9  [        U5       n[        R                  " USSS9R                  [        R                  5      nS S S 5        S/UR                   l        [$        R&                  " XFR                  [(        5      5        UR                  US/ SQSUS9  UR                  5       nUR+                  SS/5      n[        U5       n[        R                  " USSS/S9nS S S 5        [$        R&                  " XF5        g ! , (       d  f       GNq= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       NZ= f)Nr   rm   r  r   rn   r  Fr  rl   rG   r  r   test)rL   index_labelr(   r   )r^  dummydummy2)rm   rn   CD)rL   ri   rM   r(   rD   )r   r   r   r   ri   r  rR   r   r  r  r  r   rS   rT   r<  r=  rM   ro   r*   rU   r   	set_index)rW   r(   r"   r   rZ   rt   r  s          r   test_roundtrip_indexlabels*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   (4N?4N4N*N;
N
N'*
N8;
O	c                    [        [        R                  R                  S5      R	                  S5      5      nSUR
                  l        UR                  X!S9  [        U5       n[        R                  " XDR                  S   SS9nS S S 5        [        R                  " WU5        UR
                  R                  S:X  d   eg ! , (       d  f       NB= f)NrG   )r    r>   rc   r(   r   r   )r   r   r  r  r  rM   namerR   r   rS   rT   rQ  r*   rU   )rW   r(   r   rZ   xfr[   s         r   test_excel_roundtrip_indexname.TestExcelWriter.test_excel_roundtrip_indexname  s    ryy,,Q/??HI
D2t_]]2..2CqQF  	fb)||  E)))	 _s   ##C
Cc           
         [        U5      n[        [        R                  R	                  S5      R                  S5      [        [        S5      5      [        SSSS9S9n[        R                  " [        R                  " UR                  5      S S	9nXTl        UR                  5       nUR                   Vs/ s H  owR                  5       PM     snUl        UR                  US
US9  [!        U5       n[        R"                  " US
SS9n	S S S 5        US S  n
U
R                  R%                  U5      U
l        [&        R(                  " U
W	5        g s  snf ! , (       d  f       NP= f)NrG   r&  r'  r(  r   rn   r)  r   r*  r  rL   r(   r   r   )r   r   r   r  r  r  r   r   r   rS   r+  r,  rM   r   r   rR   r   rT   r-  r*   rU   )rW   r(   r   r.  rR  rM   tsfr   rt   r  rX   s              r   test_excel_roundtrip_datetime-TestExcelWriter.test_excel_roundtrip_datetime  s   D! II!!!$44V<$v,'\13?

   GMM!:Flln'.}}5}!VVX}5	Tg;Gt_]]6gKF  1:!//5
h/ 6 _s   5E2E
E!c                    [        U5      n[        [        SSS5      [        SSS5      /[        SSS	S
SS5      [        SSSSSS5      //SS/SS/S9n[        [        SSS5      [        SSS5      /[        SSS	S
SS5      [        SSSSSS5      //SS/SS/S9nUR	                  SU S35      n[
        R                  " U5       n[        U5       nUR                  USS9  S S S 5        [        USSS9 nUR                  USS9  S S S 5        [        U5       n	[        R                  " U	SSS9n
S S S 5        [        U5       n[        R                  " USSS9nS S S 5        S S S 5        [
        R                  " W
W5        [
        R                  " X5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nw= f! , (       d  f       N= f)Ni  rD      i  	      i  r         r}   r>   rG         DATEDATETIMEr   r   rM   ri   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   rR   r   rS   rT   rU   )rW   r,   r   r.  rZ   df_expected	filename2writer1writer2reader1rs1reader2rs2s                r   test_excel_date_datetime_format/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5F)GF:0GGG
F&	"G)
F7	3G:
G	G
G	G
G*c                    [        [        R                  R                  S5      R	                  SSSS9[        R
                  S9nUR                  5       n[        R                  " US   S5      US'   [        R                  " US   S5      R                  U(       d  [        OS	5      US'   UR                  US
S9  [        U5       n[        R                  " US
SS9nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)NrG   r6  r       rD   r7  r9  r   newzstring[pyarrow_numpy]r  r   r   )r   r   r  r  r;  r=  r   rS   cutr<  strrR   r   rT   r*   rU   )rW   r   using_infer_stringrZ   rX   rt   r  s          r    test_to_excel_interval_no_labels0TestExcelWriter.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   C==
Dc                    [        [        R                  R                  S5      R	                  SSSS9[        R
                  S9nUR                  5       n[        R                  " US   S/ SQS	9nXBS
'   [        R                  " [        U5      5      US
'   UR                  USS9  [        U5       n[        R                  " USSS9nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)NrG   r6  r    r  r7  r9  r   )
rm   rn   rb  rc  EFGHIJ)labelsr  r  r   r   )r   r   r  r  r;  r=  r   rS   r  Seriesr   rR   r   rT   r*   rU   )rW   r   rZ   rX   	intervalsrt   r  s          r   test_to_excel_interval_labels-TestExcelWriter.test_to_excel_interval_labels  s     II!!!$--c2G-DBHH
 779FFqE2P
	 5	))DO4
DW-t_]]6gKF 
h/ _s   1C((
C6c                    [        [        R                  R                  S5      R	                  SSSS9S/[        R
                  S9nUR                  5       nUS   R                  S 5      US	'   US   R                  S
 5      US	'   UR                  USS9  [        U5       n[        R                  " USSS9nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)NrG   r6  r    r  r7  rm   ri   r:  c                     [        U S9$ )Nseconds)r   r   s    r   r   9TestExcelWriter.test_to_excel_timedelta.<locals>.<lambda>%  s	    Ia,@r   r  c                 6    [        U S9R                  5       S-  $ )Nr  iQ )r   total_secondsr   s    r   r   r  '  s    i*88:UBr   r  r   r   r   )r   r   r  r  r;  r=  r   applyrR   r   rS   rT   r*   rU   )rW   r   rZ   rX   rt   r  s         r   test_to_excel_timedelta'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           
         [        [        R                  R                  S5      R	                  S5      [        [        S5      5      [        SSSS9S9nUR                  S	5      R                  5       R                  S
5      nUR                  USS9  [        U5       n[        R                  " USSS9nS S S 5        [        R                   " UWR                  S
5      5        g ! , (       d  f       N5= f)NrG   r&  r'  r(  r   rn   r)  r   MEMsht1r   r   r   )r   r   r  r  r  r   r   r   resamplemean	to_periodrR   r   rS   rT   r*   rU   )rW   r   rZ   rZ  rt   rY  s         r   test_to_excel_periodindex)TestExcelWriter.test_to_excel_periodindex/  s    II!!!$44V<$v,'\13?

 [[##%//4
DV,t_v&AFB 
b",,s"34 _s   C""
C0c                    [         R                  " [        UR                  5      S-  [         R                  S9R                  SS5      n[        R                  " USS/S9nXRl        UR                  USSS	9  UR                  USS
S/S9  UR                  USUS9  [        U5       n[        R                  " USSS/S9nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)NrG   r9  r   firstsecondr   r  Fr  rm   rn   r  rn  r   rD   r   )r   arangerP  rM   r=  reshaper   r   rR   r   rS   rT   r*   rU   )rW   r(   r"   r   arrays	new_indexrt   rZ   s           r   test_to_excel_multiindex(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   'C  
C.c                     [        / SQ/ SQ[        R                  R                  S5      R                  S5      S.5      nUR	                  SS/5      nUR                  X!S9  [        R                  " US	S
/S9n[        R                  " X45        g )N)NrG   r?   )r    r     rG   r?   rm   rn   rb  rm   rn   rh  r   rD   r   )
r   r   r  r  rd  rR   rS   rT   r*   rU   )rW   r(   r   rZ   df1s        r   "test_to_excel_multiindex_nan_label2TestExcelWriter.test_to_excel_multiindex_nan_labelM  sx    !!YY**1-44Q7
 \\3*%
D2mmDQF3
b&r   c           	         [         R                  " [        UR                  5      S-  [         R                  S9R                  SS5      n[        R                  " USS/S9nXRl        [        R                  " / SQ5      nXbl	        SS	/nU(       d  SnUR                  US
US9  [        U5       n[        R                  " US
USS	/S9n	S S S 5        U(       dU  UR                  R                  SSS9n
[        U
6  Vs/ s H"  nSR!                  [#        [$        U5      5      PM$     snUl	        [&        R(                  " UW	5        g ! , (       d  f       N= fs  snf )NrG   r9  r   r  r  r   ))(   rD   )r  rG   )2   rD   )r  rG   r   rD   r  rn  rL   rN   rp   F)sparsifyinclude_namesr/   )r   r  rP  rM   r=  r  r   r   from_tuplesri   rR   r   rS   rT   _format_multir   joinmapr  r*   rU   )rW   r(   r"   r   r  r  new_cols_indexrN   rt   rZ   fmqs               r   test_to_excel_multiindex_cols-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   .E;)E
Ec           
         [        U5      n[        [        R                  R	                  S5      R                  S5      [        [        S5      5      [        SSSS9S9n[        R                  " UR                  R                  U5      [        R                  " [        UR                  5      [        R                  S	9/S
S/S9Ul        UR!                  USUS9  [#        U5       n[$        R&                  " USSS/S9nS S S 5        [(        R*                  " UW5        UR                  R,                  S:X  d   eg ! , (       d  f       NB= f)NrG   r&  r'  r(  r   rn   r)  r   r9  timerc   r   r  rn  r   rD   r   )r  rc   )r   r   r   r  r  r  r   r   r   r   r   rM   r-  r  rP  r=  rR   r   rS   rT   r*   rU   ro   )rW   r(   r   r.  rR  rt   r  s          r   test_to_excel_multiindex_dates.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   %D::
Ec                 N   [        SS/SS/SS/S.5      nUR                  5       n[        R                  " SS	/5      nXCl        UR                  US
SS9  [        U5       n[        R                  " US
S9nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)Nr    r  r  r  r  <   )rf   rg   c)F   P   )Z   rE   r  Frl   r   )r   r   r   r  rM   rR   r   rS   rT   r*   rU   )rW   r   frame1r  multi_indexrt   frame3s          r   'test_to_excel_multiindex_no_write_index7TestExcelWriter.test_to_excel_multiindex_no_write_index  s     "bRBxHI  ,,h	-BC" 	> t_]]6g>F  	ff-	 _s    B
B$c                     [        / / SQS9n[        / [        R                  " / SS/S9S/S9nUR                  USS	9  [	        U5       n[
        R                  " USS	9nS S S 5        [        R                  " WUS
S
S9  g ! , (       d  f       N&= f)N)r   rD   rG   rh   r   rD   r   rG   r|  r  r   F)check_index_typecheck_dtype)	r   r   r  rR   r   rS   rT   r*   rU   )rW   r   rX   rZ   rt   r[   s         r   test_to_excel_empty_multiindex.TestExcelWriter.test_to_excel_empty_multiindex  s~    R3r!7!71a&!ITUSVW
DW-t_]]6g>F 
Hu%	
 _s   	A??
Bc                    [        / SQ/ SQ/SS// SQS9nUR                  USSS	9  [        U5       n[        R                  " USS
S9nS S S 5        [        / SQ/ SQ/SS// SQS9n[
        R                  " WU5        g ! , (       d  f       N;= f)Ng~Ϛ?g9DܜJ?g>D)?g.4i(@33333@̤Arm   rn   r   r   rW  r|  r  %.2frL   float_formatr   r   gQ?gq=
ףp?g=
ףp=?gp=
ף(@r  r  )r   rR   r   rS   rT   r*   rU   )rW   r   rZ   rt   r[   rX   s         r   test_to_excel_float_format*TestExcelWriter.test_to_excel_float_format  s    +-KL*#

 	DW6Bt_]]6gKF  !>?*#

 	fh/ _s   A>>
Bc                    [        / SQ/ SQ/SS// SQS9n[        R                  " SU-   5       nUR                  USS	9  [        R
                  " USS
S9n[        R                  " XB5        S S S 5        g ! , (       d  f       g = f)N)u   ƒu   Ɠu   Ɣ)u   ƕu   Ɩu   Ɨu   Aƒrn   )u   XƓr   rW  r|  z__tmp_to_excel_float_format__.	TestSheetr   r   r   rQ   )rW   r,   rZ   rY   r[   s        r   test_to_excel_output_encoding-TestExcelWriter.test_to_excel_output_encoding  ss    +-KLc")
 __=CDKK[K9]]8qQF!!&- EDDs   =A55
Bc                     [         R                  " SU-   5       n [        US5          S S S 5        [        / SQ/ SQ/SS// SQS	9nUR                  US
SS9  [        U5       n[        R                  " US
SS9nS S S 5        S S S 5        [        / SQ/ SQ/SS// SQS	9n[         R                  " WU5        g ! , (       d  f       N= f! [         a    [        R
                  " S5         Nf = f! , (       d  f       Nz= f! , (       d  f       N= f)Nu   ƒu.wbz$No unicode file names on this systemr  r  rm   rn   r  r|  r  r  r  r   r   r  r  )r*   r+   openUnicodeEncodeErrorr   skipr   rR   r   rS   rT   rU   )rW   r,   rY   rZ   rt   r[   rX   s          r   test_to_excel_unicode_filename.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 %$ /.sg   C?CB7C1C?#C.:C?7
C	CC?C C+(C?*C++C?.
C<	8C??
Duse_headersTFr_idx_nlevelsr~   c_idx_nlevelsc                 >  ^^ SUU4S jjnU(       a  SOS nU" [        S/5      XG5      nUR                  S:X  d   eUR                  S   [        R                  Ld   eSn	Sn
US:X  a,  [        [        U
5       Vs/ s H  nSU 3PM
     sn[        S	9nOU[        R                  " [        U5       Vs/ s H  n[        U
5      PM     sn[        U5       Vs/ s H  nS
U 3PM
     snS9nUS:X  a,  [        [        U	5       Vs/ s H  nSU 3PM
     sn[        S	9nOU[        R                  " [        U5       Vs/ s H  n[        U	5      PM     sn[        U5       Vs/ s H  nSU 3PM
     snS9n[        [        R                  " X45      UUS9nUS:  a,  Sn[        R                  " [        US9   U" XSS9  S S S 5        g U" X5      nU(       a  UR                  XU-   4:X  d   eOUR                  U	S-
  X-   4:X  d   e[        [        UR                  5      5       HL  n[        [        UR                   5      5       H'  nUR                  UU4   [        R                  La  M'   e   MN     g s  snf s  snf s  snf s  snf s  snf s  snf ! , (       d  f       g = f)Nr   c                    > U R                  TUTUS9  [        T5       n[        R                  " XDR                  S   US9sS S S 5        $ ! , (       d  f       g = f)N)rN   r(   rM   r   r  )rR   r   rS   rT   rQ  )datarN   
parser_hdrrM   rj  r(   r   s        r   	roundtrip;TestExcelWriter.test_excel_010_hemstring.<locals>.roundtrip  sD    MM$v;eMT4B}}>>!#4Z !s   "A
A)rD   rG   )r   r   r   r?   rD   za-r9  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   NotImplementedErrorrP  rM   ri   )rW   r(   r  r  r  r   r  parser_headerr   nrowsncolsr   ri   r   rM   rZ   r   rr  s    `   `             r   test_excel_010_hemstring(TestExcelWriter.test_excel_010_hemstring  sk   	 	 )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
 GGUN#
 1>  2#>"7 ?> B,CyyUM,A$BBBB yyUQY0E$FFFF 3syy>*s3;;/0A88AqD>777 1 +O = => ; =>  ?>s0   :I01I5I:
I?8JJ	
1J
Jc                 .   [        / SQ/ SQ/ SQ// SQS9nUR                  USS9  [        / SQ/ SQ/ SQ// SQS9n[        R                  " USSS9n[        R
                  " XC5        [        / S	Q/ S
Q// SQS9nUR                  USS9  [        R                  " USSS9n[        / S	Q/ S
Q// SQS9n[        R
                  " XC5        UR                  USSSS9  [        R                  " USS S9n[        / S	Q/ S
Q/5      n[        R
                  " XC5        g )Nr~   )rm   rn   rn   rh   r  r   )rm   rn   B.1r   r   )rD   rG   r?   r>   )r      r      )rm   rn   rm   rn   )rm   rn   A.1r  FrK   r  r   rR   rS   rT   r*   rU   rW   r   rZ   rX   r[   s        r   test_duplicated_columns'TestExcelWriter.test_duplicated_columns-  s    	9i8/R
DW-	9-7H

 t1E
f/ l3=QR
DW-t1E<(2J
 	f/ 	DWE%HtElL9:
f/r   c                     [        / SQ/ SQS.5      nUR                  USSS/S9  [        R                  " USSS	9n[        R
                  " US   US   5        [        R
                  " US   US   5        g )
NrD   rD   rD   rG   rG   rG   rm   rn   r  rn   rm   r  r   r  )r   rR   rS   rT   r*   assert_series_equal)rW   r   write_frame
read_frames       r   test_swapped_columns$TestExcelWriter.test_swapped_columnsJ  sn    ii @ATgSzJ]]4GAF

{3/CA
{3/CAr   c                 @   [        / SQ/ SQS.5      n[        R                  " [        SS9   UR	                  USSS/S	9  S S S 5        [        R                  " [        S
S9   UR	                  USSS/S	9  S S S 5        g ! , (       d  f       ND= f! , (       d  f       g = f)Nr  r  r  zNot all names specifiedr   r  rn   rb  r  z.'passes columns are not ALL present dataframe'rc  )r   r   r   KeyErrorrR   )rW   r   r  s      r   test_invalid_columns$TestExcelWriter.test_invalid_columnsT  s    ii @A]]8+DE  'C: N F ]]L
   'C: N
 
 FE
 
s   A>!B>
B
Bz#to_excel_index,read_excel_index_col)Tr   )FNc                     [        / SQ/ SQ/ SQS.5      nUR                  USSS/US9  USS/   n[        R                  " USUS	9n[        R
                  " XV5        g )
Nr  r  )r?   r?   r?   r  col_subset_bugrm   rn   )rL   ri   rM   r   r  )rW   r   to_excel_indexread_excel_index_colr  rX   r  s          r   test_write_subset_columns)TestExcelWriter.test_write_subset_columns`  sm      iii PQ-Sz 	 	
 Sz*]]-9M

 	h3r   c                 (   [        / SQ/ SQS.5      nUR                  USS9  [        R                  " USSS9nS UR                  S'   S UR                  S	'   S UR                  S
'   [        R                  " USSSS9n[
        R                  " X45        g )Nonez#oner-  twor/  z#twor  test_cr   r   r   )rD   r   rD   rD   )rG   rD   #rL   commentrp   )r   rR   rS   rT   r   r*   rU   rW   r   rZ   result1result2s        r   test_comment_arg TestExcelWriter.test_comment_argu  s     3:PQR
DX. --QG!T!T!T--3RST
g/r   c                     [        / SQ/ SQS.5      nUR                  USS9  [        R                  " USS9n[        R                  " USS S9n[        R
                  " X45        g )Nr,  r.  r  r0  r   )rL   r4  r  r5  s        r   test_comment_default$TestExcelWriter.test_comment_default  sW    
 3:PQR
DX. --:--4H
g/r   c                     [        / SQ/ SQS.5      nUR                  USS9  [        / SQ/ SQS.5      n[        R                  " USSS	S
9n[        R
                  " XC5        g )Nr,  r.  r  r0  r   )r-  Nr-  )r/  NNr2  r   r3  r  r  s        r   test_comment_used!TestExcelWriter.test_comment_used  s[     3:PQR
DX. #7>QRSt#QRS
f/r   c                     [        SS/SS/S.5      nUR                  USS9  [        S/S	/S.5      n[        R                  " US
S9n[        R
                  " XC5        g )N1z#223)rf   rg   Fr   rD   rG   r2  )r4  r  r  s        r   test_comment_empty_line'TestExcelWriter.test_comment_empty_line  s^     c4[Sz:;
D& A3aS12tS1
f/r   c                 2   [        U5      n[        SSSSSS5      [        SSSSSS5      [        SSSSS	S
5      [        SSSSSS5      [        SSSSSS5      [        SSSSSS5      [        SSSSSS5      [        SSSSSS5      [        SSSSSS5      [        SSSSSS5      [        SSSSSS5      /n[        SU05      nUR                  USS 9  [        R
                  " USSS!9nUR                  S"U S#35      n[        R                  " US   US   5        g )$Ni  rD   ry  rG   r?   -   8   r>      1   r  *   r   9   #   rt  )   rx  r{            5      %   r      r  4   rm   r  r   r  r}  r~  )	r   r   r   rR   rS   rT   r<  r*   r  )rW   r   r.  	datetimesr  r  rX   s          r   test_datetimes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                    [        5        n[        [        R                  R	                  S5      R                  S5      5      n[        X!S9 nUR                  U5        S S S 5        UR                  S5        [        R                  " USS9n[        R                  " X55        S S S 5        g ! , (       d  f       NS= f! , (       d  f       g = f)NrG   r  r1   r   r   )r   r   r   r  r  r  r   rR   seekrS   rT   r*   rU   )rW   r1   biorZ   rs   	reread_dfs         r   test_bytes_ioTestExcelWriter.test_bytes_io  s    Y#299003CCGLMB S0FF# 1 HHQKcQ7I!!"0 Y 10	 Ys%   AB<B+AB<+
B9	5B<<
C
c                 v   [        SSS.SSS./5      nSSSS.n[        (       a
  S	US
'   S	US'   US
:X  a)  [        R                  R	                  U5      (       d  SUS
'   [
        R                  " [        [        R                  " XA   5      S9   UR                  UUSS0S9  S S S 5        g ! , (       d  f       g = f)NrD   rG   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   rc   rd   )r1   engine_kwargs)r   r	   osr   existsr   r   	TypeErrorreescaperR   )rW   r1   r   rZ   msgss        r   test_engine_kwargs"TestExcelWriter.test_engine_kwargs  s    aa(*:;<NP	
 5 O 
 O 
 Zt(<(< L  ]]9BIIdl,CDKK$en   EDDs   B**
B8c                 \   [        SSS/SSS.// SQ/ SQS	.5      nUR                  US
S9  [        R                  " US
SSS9nUR	                  5       nUR
                  R                  [        5      Ul        UR                  R                  S5      Ul        [        R                  " X45        g )Nrf   rg   r  erG   )r   f)rD   rG   g      @)applebananacherry)mixednumericr  r  r   r   r  r=  )r   rR   rS   rT   r   rq  r  r  rr  r<  r*   rU   rW   r   rZ   readrX   s        r   test_write_lists_dict%TestExcelWriter.test_write_lists_dict  s    Sz1+=>&4
 	DX.}}ThqAN779!--c2#++227;
d-r   c                     [        SS/SS/S.5      nUR                  USS9  [        R                  " USSS	9nUn[        R
                  " X45        g )
NrD   rG   r?   r>   )renderr  r  r   r   r   r  rs  s        r   test_render_as_column_name*TestExcelWriter.test_render_as_column_name  sN    1a&1a&9:
DX.}}T8q9
d-r   c                 @   [        SS//SS/[        S9n[        SS5         UR                  SSS	.5      R	                  S
5      nS S S 5        UR                  U5        [        R                  " US/S/SS9n[        R                  " UW5        g ! , (       d  f       NP= f)Nrc   rd   col1col2r  zfuture.no_silent_downcastingTF)rc   rd   r   r   )true_valuesfalse_valuesrp   )
r   r  r   replacer<  rR   rS   rT   r*   rU   )rW   r   rZ   rX   r  s        r   !test_true_and_false_value_options1TestExcelWriter.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                     [        SS/SS//SS/S9nUR                  USS	S
9  [        R                  " USS9n[        R
                  " X25        g )NrD   rG   r?   r>   r|  r}  rh   r  r1  )rL   freeze_panesr   r   r  )rW   r   rX   r[   s       r   test_freeze_panes!TestExcelWriter.test_freeze_panes  sS    q!fq!f-7GH$8&Itq1
f/r   c                    [        S[        R                  " S5      R                  S5      -  [	        [        S5      5      [	        [        S5       Vs/ s H  nSU 3PM
     sn[        S9S9n[        UR                  US	9n[        [        R                  S
S9n[        R                  " XVSU 3S9n[        R                  " Xt5        g s  snf )Nr   x   r  r>   r'  r  r  r9  r   r[  r   r   rc   r   )r   r   r  r  r   r   r   r  r   rR   rS   rT   r*   round_trip_pathlibrU   rW   r1   r,   r   rZ   rs   rt   r[   s           r   test_path_path_lib"TestExcelWriter.test_path_path_lib"  s    "))C.((11$v,'5959a2aS95VD

 V4!4&&vc#KH
f) 6s   Cc                    [        S[        R                  " S5      R                  S5      -  [	        [        S5      5      [	        [        S5       Vs/ s H  nSU 3PM
     sn5      S9n[        UR                  US9n[        [        R                  S	S
9n[        R                  " XVSU 3S9n[        R                  " Xt5        g s  snf )Nr   r  r  r'  r  r  r   r[  r   r   rc   r   )r   r   r  r  r   r   r   r   rR   rS   rT   r*   round_trip_localpathrU   r  s           r   test_path_local_path$TestExcelWriter.test_path_local_path.  s    "))C.((11$v,'5959a2aS956

 V4!4((C5kJ
f) 6s   Cc           	         [         R                  " [        R                  " S5      [        R                  " S5      4[        R                  " S5      [        R                  " S5      4/5      n[	        [
        R                  " SSS9US9nUR                  U5        [        R                  " USS	/SS
9nUR                  R                  UR                  S    Vs/ s H  n[        U5      PM     snUR                  S	    Vs/ s H  n[        U5      PM     sn/SS	/S9Ul	        [        R                  " XC5        g s  snf s  snf )N20182018Q12018Q2)rG   rG   r=  r9  rh   r   rD   r   )level)r   r  rS   Periodr   r   r   rR   rT   ri   
set_levelslevelsr  r*   rU   )rW   r   mirX   r[   r   s         r   test_merged_cell_custom_objects/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 
 	f/ ,-Ks   D;E 
r:  Nc                    Un[         R                  " SUS9n[        U/US9n[        R                  " [
        SS9   UR                  U5        S S S 5        UR                  5       n[        U/US9n[        R                  " [
        SS9   UR                  U5        S S S 5        g ! , (       d  f       N]= f! , (       d  f       g = f)N2019)tzr9  zExcel does not supportr   )rS   r   r   r   r   r   rR   to_pydatetime)rW   r:  tz_aware_fixturer   r  r  rZ   s          r    test_raise_when_saving_timezones0TestExcelWriter.test_raise_when_saving_timezonesL  s     ||Fr*vU+]]:-EFKK G !!#vU+]]:-EFKK GF GF
 GFs   B%
B6%
B36
Cc                     [        SS/SS/S.5      nUR                  U/ SQSS9  [        R                  " U5      n[        / S	Q/ S
Q// SQS9n[        R
                  " X45        g )Nr   rD   r    r{   r  )rm   rn   rm   Fr   )r   r    r   )rD   r{   rD   )rm   rn   r  rh   r  )rW   r   rZ   r[   rX   s        r   'test_excel_duplicate_columns_with_names7TestExcelWriter.test_excel_duplicate_columns_with_namesZ  sY    aV2r(34
D/?t$j*5?PQ
f/r   c                 
   Sn[         R                  " U5       n[        R                  " [        [
        R                  " U5      S9   [        USS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz7if_sheet_exists is only valid in append mode (mode='a')r   r  )if_sheet_exists)r*   r+   r   r   r   rf  rg  r   )rW   r,   r   rm  s       r   test_if_sheet_exists_raises+TestExcelWriter.test_if_sheet_exists_raisesc  sS    G__S!Qz3@Ay9 A "!@@ "!s#   .A4A#A4#
A1	-A44
Bc                 H   [         R                  " U5       n[        X1S9 n[        5       R	                  U5        S S S 5        [
        R                  " U5      n[        5       n[         R                  " XV5        S S S 5        g ! , (       d  f       NM= f! , (       d  f       g = fNr[  )r*   r+   r   r   rR   rS   rT   rU   )rW   r1   r,   r   rs   r[   rX   s          r   test_excel_writer_empty_frame-TestExcelWriter.test_excel_writer_empty_framek  sj    __S!TT1V$$V, 2]]4(F {H!!&3 "!11 "!s!   
BB>B
B	B
B!c                     [         R                  " U5       n[        5       R                  X1S9  [        R
                  " U5      n[        5       n[         R                  " XE5        S S S 5        g ! , (       d  f       g = fr  r   )rW   r1   r,   r   r[   rX   s         r   test_to_excel_empty_frame)TestExcelWriter.test_to_excel_empty_framet  sR    __S!TK   5]]4(F {H!!&3	 "!!s   AA..
A<r   )Gr   r   r   r   r   r  r  r  r#  r/  r2  r   r   r   r   int8int16int32r=  r@  float16float32float64rC  rH  rL  rS  r[  re  rk  rp  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r)  r8  r;  r>  rD  rX  r_  ri  ru  ry  r  r  r  r  r  r  r  r  r  r  r  r   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                       \ rS rSr\R
                  R                  S\R                  " \S\	R                  " S5      S9\R                  " \S\	R                  " S5      S9/5      S 5       rS rS	 rS
rg)TestExcelWriterEngineTestsi}  z	klass,extr4   r9   r7   r5   c           	      >   [         R                  " U5       n[        U5       nUS:X  a0  [        [	        SSS95      (       a  [        U[        5      (       d   eO[        XA5      (       d   eS S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr4   r9   ignore)errors)r*   r+   r   r   r
   
isinstancer   )rW   klassr,   r   rs   s        r   test_ExcelWriter_dispatch4TestExcelWriterEngineTests.test_ExcelWriter_dispatch~  s|     __S!TT"f'>d.|HM' ' &fk::::%f4444 # "!"" "!s#   BA	A=,B=
B	B
Bc                     [         R                  " [        SS9   [        S5        S S S 5        g ! , (       d  f       g = f)Nz	No enginer   nothing)r   r   r   r   rW   s    r    test_ExcelWriter_dispatch_raises;TestExcelWriterEngineTests.test_ExcelWriter_dispatch_raises  s$    ]]:[9	" :99s   /
=c                 v    " S S[         5      n[        U5        [        SS5         Sn[        R                  " U5       n[        U5       n[        XA5      (       d   e S S S 5        [        S/[        S/SS	9[        S
/SS	9S9nUR                  U5        S S S 5        UR                  5         S S S 5        [        R                  " S5       nWR                  USS9  S S S 5        UR                  5         g ! , (       d  f       N= f! , (       d  f       Nw= f! , (       d  f       Np= f! , (       d  f       NR= f)Nc                   Z    \ rS rSrSrSrSrSrSrS r	S r
S r\S 5       r\S	 5       rS
rg)CTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClassi  F)xlsxxlsr`  c                     g r%   r   r  s    r   bookHTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.book  s    r   c                 $    S[        U 5      l        g NT)typecalled_saver  s    r   _saveITestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass._save  s    )-T
&r   c                 $    S[        U 5      l        g r  )r  called_write_cells)rW   argskwargss      r   _write_cellsPTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass._write_cells  s    04T
-r   c                 $    S[        U 5      l        g r  )r  called_sheetsr  s    r   r   JTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.sheets  s    +/T
(r   c                     U R                   (       d   eU R                  (       d   eU R                  (       a   eSU l         SU l        g )NF)r  r  r  )clss    r   assert_called_and_reset[TestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.assert_called_and_reset  s;    &----,,,,"').&r   r   N)r   r   r   r   r  r  r  _supported_extensions_enginer  r  r  propertyr   classmethodr  r   r   r   r   
DummyClassr    sT    K!&!M$3!G.5 0 0 / /r   r  zio.excel.xlsx.writerr`  zsomething.xlsxrf   rg   rc   )ri  r  rd   r   zsomething.xlsr[  )
r   r   r   r*   r+   r  r   r   rR   r  )rW   r  r   filepathrs   rZ   s         r   test_register_writer/TestExcelWriterEngineTests.test_register_writer  s    	/ 	/8 	
#2G<#D&( *f%f9999 +E!3%e4E2
 H% ' ..0 = ___-KKK1 .**, +* '& =< .-sG   D DC7 7DDD*7
DD
D	D
D'*
D8r   N)r   r   r   r   r   r   r   r&   r   td
skip_if_nor   r  r  r  r   r   r   r   r  r  }  sg    [[LLgR]]<5PQLL'z9RS	
	5	5#.-r   r  c                   &    \ rS rSrS rS rS rSrg)
TestFSPathi  c                 ,   [         R                  " S5       n[        SSS/05      nUR                  U5        [	        U5       n[
        R                  " U5      nS S S 5        WU:X  d   e S S S 5        g ! , (       d  f       N = f! , (       d  f       g = f)Nfoo.xlsxrm   rD   rG   )r*   r+   r   rR   r   rc  fspath)rW   r   rZ   r  r[   s        r   test_excelfile_fspath TestFSPath.test_excelfile_fspath  sn    __Z(DC!Q=)BKK4B2 !T>!> )( ! )(s#   ,BA4B4
B	>B
Bc                     [         R                  " S5       n[        U5       n[        R                  " U5      [        U5      :X  d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr  )r*   r+   r   rc  r  r  )rW   r   rs   s      r   test_excelwriter_fspath"TestFSPath.test_excelwriter_fspath  sR    __Z(DT"fyy(CI555 # )("" )(s"   A,&A
A,
A)	%A,,
A:c                     [        S/ SQ05      nSn[        R                  " [        US9   [	        5       n[        U5      nUR                  US5        S S S 5        g ! , (       d  f       g = f)Nrf   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   rR   )rW   rZ   r   bufrs   s        r   "test_to_excel_pos_args_deprecation-TestFSPath.test_to_excel_pos_args_deprecation  sZ    Y'(E 	 ''SA)C %FKK/ BAAs   (A
A*r   N)r   r   r   r   r  r  r  r   r   r   r   r  r    s    "6

0r   r  r  c                    [        [        5       Vs1 s H  oR                  S5      (       a  M  UiM     nn[        U 5       Vs1 s H  oR                  S5      (       a  M  UiM     nnUR                  U5      (       a   eg s  snf s  snf )Nr   )dirr   
startswithsymmetric_difference)r  ri  
attrs_baseattrs_klasss       r   test_subclass_attrr     sl     $'{#3P#34??3;O$#3JP$'JKJDooc6J4JKK..{;;;;; QKs   BBB!B)<r   r   r   	functoolsr   ior   rc  rf  numpyr   r   pandas.compatr   pandas.compat._constantsr	   pandas.compat._optionalr
   pandas.util._test_decoratorsutil_test_decoratorsr  pandasrS   r   r   r   r   r   pandas._testing_testingr*   pandas.io.excelr   r   r   r   r   pandas.io.excel._utilr   r   
single_cpu
pytestmarkr  r   fixturer"   r(   r   r3   r   r&   r  r<   usefixturesr   r  r  valuesr   r   r   r   <module>r     s   
   	 	   - * > ) )     +''Js s    e}% &     	WR]]:%>f@U$VWWR]]:%>f@U$VWBMM,7v9NO	
 	V2==#78
@0 @0
@0F ==,bmmF.CD	

 	==,bmmF.CD	

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

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