
    d-7                     >   d dl 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mZ  ej        d          Zej                            ddg          Zd Zd	 Zej                            d
ddg          d             Zd Zej                            dddg          d             Zej                            dddgfdg dfg          d             Zej                            dddddgfddd gfd!dd dgfg          d"             Zej                            d#d d d$d%gd&d'gfd dd(d%gd$d'gfdd d(d$gd&d'gfddd(d%gd&d$gfg          d)             Zej                            d*g d+          d,             Zd- Zej                            d.ddg          d/             Zej                            d0d ej         d1ddd2gej         d3d4d5d6gej         d7d8d9d:gd;fdg d<g d=g d>d?fg          ej                            d@g dA          ej                            d.g dB          dC                                     Z!dD Z"ej                            d.g dB          dE             Z#ej                            d.g dB          dF             Z$dG Z%dH Z&dI Z'dS )J    N)Path)	DataFrame)ExcelWriter_OpenpyxlWriteropenpyxlextz.xlsxc                    ddl m} dddddddddd	d
dddddddidddd}|                    d          }|                    d|          }|                    |j        j                  }|                    ||||          }|                    dd	
          }|                    dd          }|	                    d|          }	d}
|
                    dd          }t          j        |          }|d         |k    sJ |d         |k    sJ |d         |k    sJ |d         |	k    sJ |d         |
k    sJ |d         |k    sJ d S )Nr   )styles00FF0000Tcolorboldthin)toprightbottomleftcenterr   )
horizontalverticalsolid006666FFg333333?)rgbtint)patternTypefgColorformat_codez0.00F)lockedhidden)fontborders	alignmentfillnumber_format
protection)r   r   )styler    borderr"   r#   r$   r%   )r   r
   ColorFontSider!   BORDER_THINBorder	AlignmentPatternFill
Protectionr   _convert_to_style_kwargs)r   r
   hstyle
font_colorr    sider'   r"   
fill_colorr#   r$   r%   kws                _/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/io/excel/test_openpyxl.pytest_to_excel_styleconverterr7      s    %d33!FffUU$,%@@ 'JPS4T4TUU'0!%77 F j))J;;D
;33D;;V^7;88D]]t44]HHF  Hu EEI*377J':FFDM""$u"==J		1&	9	9Bf:h<6!!!!k?i''''f:o-////lz))))))    c                 H   ddl m} d}dddii}dddii} |ddd	|
           |ddd|
          g}ddddi}t          j        |          }|d         } |ddddd|          g}	t	          j        |           5 }
t          |
          5 }|                    ||           |                    |	|           |j        |         }d d d            n# 1 swxY w Y   |d         }|d         }|j        |k    sJ |j        |k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   )	ExcelCellmerge_styledr    r   r   0000FF00   *   )colrowvalr&   c   000000FFTr   pandas)r?   r@   rA   
mergestartmergeendr&   
sheet_nameB1A2)	pandas.io.formats.excelr:   r   r0   tmensure_clean_write_cellssheetsr    )r   r:   rH   sty_b1sty_a2initial_cells
sty_merged
sty_kwargsopenpyxl_sty_mergedmerge_cellspathwriterwksxcell_b1xcell_a2s                  r6   test_write_cells_merge_styledr\   7   s   111111Jw
+,Fw
+,F 		aQBf555	aQBf555M
 J==>J 9*EEJ$V,	qh1q
	
 	
 	
K 
		 	4T"" 	,f*EEE
CCC-
+C		, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,
 t9t9} 33333} 333333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s6   <D<CDC	DC	-DDD	iso_datesTFc                 "   d|i}t          j        |           5 }t          |d|          5 }|j        j        |k    sJ t                                          |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr]   r   )engineengine_kwargs)rL   rM   r   bookr]   r   to_excel)r   r]   r`   frX   s        r6   test_engine_kwargs_writerd   Y   s    !),M			 ):]KKK 	)v;(I5555KK  (((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s4   B4A, B,A0	0B3A0	4BBBc           	         t          j        |           5 }t          ddg                              |           t	          j        t          t          j        d                    5  t          |ddddi	          5 }t          d
g                              |d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NhelloworldzAload_workbook() got an unexpected keyword argument 'apple_banana'matchr   aapple_bananafruitr_   moder`   goodSheet2rG   )
rL   rM   r   rb   pytestraises	TypeErrorreescaper   )r   rc   rX   s      r6   !test_engine_kwargs_append_invalidrv   d   s    
		 J7G$%%..q111])S 
 
 
 
	J 
	J *3~w>W   J6(##,,V,III	J J J J J J J J J J J J J J J
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	J 
	JJ J J J J J J J J J J J J J J J J JsZ   AC'C=&B/#C/B33C6B37C:CC
	
CC
	CC"%C"zdata_only, expected)Tr   )F=1+1c                    t          j        |           5 }t          dg                              |           t	          |ddd|i          5 }|j        d         d         j        |k    sJ t                                          |d	           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )
Nrw   r   rj   	data_onlyrm   Sheet1B2rp   rG   )rL   rM   r   rb   r   rO   value)r   ry   expectedrc   rX   s        r6   #test_engine_kwargs_append_data_onlyr~   v   sF   
 
		 >6($$Q'''js;	:R
 
 
 	>=*406(BBBBKK  H ===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>> > > > > > > > > > > > > > > > > >s6   9B4ABB4B 	 B4#B 	$B44B8;B8zmode,expectedwbazrj   )foobarr   c                 6   t          dgdg          }t          j        |           5 }t                                          }d|j        d         _        d|j        d         d         _        |                    d           d|j        d         d         _        |	                    |           t          |d|	          5 }|                    |dd
           d d d            n# 1 swxY w Y   t          j        t                              |                    5 }d |j        D             }||k    sJ t          |          D ]#\  }	}
|j        |	         d         j        |
k    sJ $	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr=   r   columnsr   r   A1r   r   )r_   rn   FrH   indexc                     g | ]	}|j         
S  )title).0sheets     r6   
<listcomp>z*test_write_append_mode.<locals>.<listcomp>   s    >>>eek>>>r8   )r   rL   rM   r   Workbook
worksheetsr   r|   create_sheetsaver   rb   
contextlibclosingload_workbook	enumerate)r   rn   r}   dfrc   wbrX   wb2resultr   
cell_values              r6   test_write_append_moder      sv    
A3	(	(	(B			 G  !&a',a$
',a$



:D999 	?VKK5K>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?  6 6q 9 9:: 	Gc>>s~>>>FX%%%%%.x%8%8 G G!z~e,T28JFFFFFG		G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	GG G G G G G G G G G G G G G G G G Gs[   BF C%F%C)	)F,C)	-/FAE6*F6E:	:F=E:	>FFFz#if_sheet_exists,num_sheets,expectednew   applebananareplacer=   pearoverlayc                 F   t          dddgi          }t          ddgi          }t          j        |           5 }|                    |ddd           t	          |dd	|
          5 }|                    |dd           d d d            n# 1 swxY w Y   t          j        t                              |                    5 }t          |j
                  |k    sJ |j
        d         dk    sJ t          j        |dd          }	t          |	d                   |k    sJ t          |j
                  dk    r7t          j        ||j
        d         d          }	t          j        |	|           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nrl   r   r   r   r   r   Fr_   rH   r   rj   r_   rn   if_sheet_existsr   r   r_   r   r=   )r   rL   rM   rb   r   r   r   r   r   len
sheetnamespd
read_excellistassert_frame_equal)
r   r   
num_sheetsr}   df1df2rc   rX   r   r   s
             r6   !test_if_sheet_exists_append_modesr      sq    Ww12
3
3C
Wvh'
(
(C			 3Qze5IIIjsO
 
 
 	@LLEL???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@
  6 6q 9 9:: 	3br}%%3333=#u,,,,]2uZ@@@Fw((H44442=!!Q&&r2=+;JOOO%fc222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	33 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3sZ   -F'B FB	FB	/FB/E>2F>F	FF	FFFz%startrow, startcol, greeting, goodbyepooprg   goodbyepeoplerf   c           
         t          ddgddgd          }t          dg          }t          j        |           5 }|                    |ddd	
           t	          |ddd          5 }|                    |d	d	|dz   |d           d d d            n# 1 swxY w Y   t          j        |dd          }	t          ||d          }
t          j        |	|
           d d d            d S # 1 swxY w Y   d S )Nrf   rg   r   r   )greetingr   r   r   pooFr   rj   r   r   r=   )r   headerstartrowstartcolrH   )rH   r_   )r   rL   rM   rb   r   r   r   r   )r   r   r   r   r   r   r   rc   rX   r   r}   s              r6   %test_append_overlay_startrow_startcolr      s    '7!3H@UVV
W
WC
VH

C			 0Qze5IIIjsI
 
 
 	LL!A!     		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 qU:FFF(wGGHH
fh///#0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s6   -C)(BC)B	C)B	AC))C-0C-zif_sheet_exists,msg))invalidzf'invalid' is not valid for if_sheet_exists. Valid options are 'error', 'new', 'replace' and 'overlay'.)errorASheet 'foo' already exists and if_sheet_exists is set to 'error'.)Nr   c                    t          ddgi          }t          j        |           5 }t          j        t
          t          j        |                    5  |                    |dd           t          |dd|          5 }|                    |d	           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )
Nrl   r   rh   r   r   r   rj   r   rG   )
r   rL   rM   rq   rr   
ValueErrorrt   ru   rb   r   )r   r   msgr   rc   rX   s         r6   test_if_sheet_exists_raisesr      s   ( 
GfX&	'	'B			 6]:RYs^^<<< 	6 	6KK5K444*3   6Fu5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	66 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6sY   .C,B<B%B<%B))B<,B)-B<0C<C 	 CC 	CCCc           	         t          j        |           5 }t          dt          j        ddd          i          }t          dt          j        ddd          i          }t          j        ||gd          }|j                            d           	                                }|
                    |d	           d d d            d S # 1 swxY w Y   d S )
NAr=   
   B   )axisc                     d| dk     rdnd S )Nzcolor: r   redblackr   )rA   s    r6   <lambda>z4test_to_excel_with_openpyxl_engine.<locals>.<lambda>  s    A377%%AA r8   r   r   )rL   rM   r   nplinspacer   concatr&   applymaphighlight_maxrb   )r   filenamer   r   r   styleds         r6   "test_to_excel_with_openpyxl_enginer      s   			 5bk!R44566bk!R44566YSz***""AA
 

-// 	 	4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s   B'C		CC	read_onlyc                 2    | dddd|z             }t          j        t                              ||                    5 }t	          j        |d          }d d d            n# 1 swxY w Y   t	          j        |          }t          j        ||           d S )Niodataexceltest1r   r   r   )r   r   r   r   r   r   rL   r   )datapathr   r   r   r   r   r}   s          r6   test_read_workbookr     s     xfgw}==H		x9==
 
 6	r*5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 }X&&H&(+++++s    A##A'*A'zheader, expected_datar      r            C      	   Titlez
Unnamed: 1z
Unnamed: 2)r=   r   r   )r   r   r   )r   r   r   )r   r   r   r   )dimension_missingdimension_smalldimension_large)TFNc                 ^    | ddd| |           }|t          j        ||          }n]t          j        t                              ||                    5 }t          j        |d|          }d d d            n# 1 swxY w Y   t          |          }	t          j        ||	           d S )Nr   r   r   )r   r   r   )r_   r   	r   r   r   r   r   r   r   rL   r   )
r   r   r   expected_datar   r   rW   r   r   r}   s
             r6   test_read_with_bad_dimensionr     s
   . 8D&'h+=+=+=>>DtF333""49"==
 
 	I]2jHHHF	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I ''H&(+++++s   A>>BBc                    t                      }t          j        |           5 }|                    |d           t	          |ddd          5 }|                    |           d d d            n# 1 swxY w Y   t          |                                          }|                    d          }|                    d|dz             }|                    d|dz             }|dk    r|dk    sJ 	 d d d            d S # 1 swxY w Y   d S )	Nr   r   rj   r   )rn   r_   r   s   docProps/app.xmlr=   )r   rL   rM   rb   r   r   
read_bytesfind)r   r   rc   rX   r   firstsecondthirds           r6   test_append_mode_filer   7  s   	B			 ,
Aj)))C
E
 
 
 	 KK	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  Aww!!##		-...	::		-vz::||, , , , , , , , , , , , , , , , , ,s6   +C?A0$C?0A4	4C?7A4	8A9C??DDc           	          | dddd|           }|t          j        |          }n\t          j        t                              ||                    5 }t          j        |d          }d d d            n# 1 swxY w Y   t          t          j        dd	d
dgt          j        ddddgt          j        ddddgd          }t          j
        ||           d S )Nr   r   r   empty_trailing_rowsr   r   r   r   r=   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   nanrL   r   r   r   r   rW   r   r   r}   s          r6   "test_read_with_empty_trailing_rowsr   M  s/    8D&'+F+F+FGGDt$$""49"==
 
 	:]2j999F	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: fc1a+631a0631a0	
 	
 H &(+++++   A::A>A>c                 T    | dddd|           }|t          j        |          }n\t          j        t                              ||                    5 }t          j        |d          }d d d            n# 1 swxY w Y   t                      }t          j        ||           d S )Nr   r   r   empty_with_blank_rowr   r   r   r   r   s          r6   test_read_empty_with_blank_rowr   c  s     8D&'+G#+G+GHHDt$$""49"==
 
 	:]2j999F	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: {{H&(+++++r   c                 "   t          j        |           5 }t          |d          5 }|j        i k    sJ |j                            dd          }|j        d|ik    sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r   	test_namer   )rL   rM   r   rO   ra   r   )r   rc   rX   r   s       r6   test_book_and_sheets_consistentr  r  s   			 9:... 	9&=B&&&&K,,[!<<E=[%$888888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	99 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s4   B8A, B,A0	0B3A0	4BBBc                      | dddd|           }t          j        |          }t          t          dd          dg          }t	          j        ||           d S )	Nr   r   r   ints_spelled_with_decimalsr      r=   r   )r   r   r   rangerL   r   r   r   rW   r   r}   s        r6   test_ints_spelled_with_decimalsr	  {  sd    8D&'+M+M+MNND]4  Fq"s333H&(+++++r8   c                     | dddd|           }t          j        |g dg d          }t          t          j        dddgdt          j        t          j        t          j        ggt           j                            g d          t           j                            d	d
g                    }t          j        ||           d S )Nr   r   r   multiindex_no_index_names)r   r=   r   )	index_colr   x))XYr   )r  r  rJ   )XXYYrI   )r  r  r{   )r   AAAAA)r   BBBBB)r   r   )	r   r   r   r   r   
MultiIndexfrom_tuplesrL   r   r  s        r6   *test_read_multiindex_header_no_index_namesr    s    8D&'+Ls+L+LMMD]4999YYYGGGF
&#sC	 3"?@))XXX
 
 m'');=O(PQQ  H &(+++++r8   )(r   pathlibr   rt   numpyr   rq   rD   r   r   pandas._testing_testingrL   pandas.io.excelr   r   importorskipr   markparametrize
pytestmarkr7   r\   rd   rv   r~   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r   r8   r6   <module>r"     s             				                            
 6z**[$$UWI66
* * *B4 4 4D tUm44) ) 54)J J J$ .O0LMM> > NM> sUGns,A,A,A&BC G G G, )	GX&'	Ax 	A)* 3 3 3, +	
A 9h"78	
A!FH#56	
A 9h"78	
A!Iv#67	 0 0 00    $	6 	6% $	6
5 
5 
5 tUm44, , 54,  &#q!Q/!vsAq!4!vsAq!4 	
 
)))))))))<<=
  KKK  &9&9&9::, , ;:	  &, , , ,, &9&9&9::, , ;:,* &9&9&9::, , ;:,9 9 9, , ,, , , , ,r8   