
    Pi`9                        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Z	d dlm
Z
 d dlmZ d dlmZmZ d dlmZ  ej        d          Zej        d             Zej        d             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          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                            d0g d1          d2             Z#d3 Z$ej                            dddg          d4             Z%ej                            d5d ej&        d6d%d!d7gej&        d8d9d:d;gej&        d<d=d>d?gd@fd!g dAg dBg dCdDfg          ej                            dEg dF          ej                            dg dG          dH                                     Z'dI Z(ej                            dg dG          dJ             Z)ej                            dg dG          dK             Z*dL Z+dM Z,dN Z-dS )O    N)Path)	DataFrame)ExcelWriter_OpenpyxlWriter)OpenpyxlReaderopenpyxlc                      dS )Nz.xlsx r
       w/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/io/excel/test_openpyxl.pyextr      s    7r   c                 |    |t          j                     |  z  }|                                 t          |          S )N)uuiduuid4touchstr)r   tmp_pathtmps      r   	tmp_excelr      s5    

+c++
+CIIKKKs88Or   c                     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/   r0   r1   r2   )r   r   ColorFontSider.   BORDER_THINBorder	AlignmentPatternFill
Protectionr   _convert_to_style_kwargs)r   hstyle
font_colorr-   sider4   r/   
fill_colorr0   r1   r2   kws               r   test_to_excel_styleconverterrC   "   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))))))r   c                    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          |           5 }
|
                    ||           |
                    |	|           |
j        |         }d d d            n# 1 swxY w Y   |d         }|d         }|j        |k    sJ |j        |k    sJ d S )Nr   )	ExcelCellmerge_styledr-   r   r   0000FF00   *   )colrowvalr3   c   000000FFTr   pandas)rJ   rK   rL   
mergestartmergeendr3   
sheet_nameB1A2)pandas.io.formats.excelrE   r   r=   _write_cellssheetsr-   )r   rE   rS   sty_b1sty_a2initial_cells
sty_merged
sty_kwargsopenpyxl_sty_mergedmerge_cellswriterwksxcell_b1xcell_a2s                 r   test_write_cells_merge_styledrd   C   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 
	#	# (vMjAAAKJ???mJ'	( ( ( ( ( ( ( ( ( ( ( ( ( ( (
 4yH4yH=/////=///////s   7<B??CC	iso_datesTFc                     d|i}t          | d|          5 }|j        j        |k    sJ t                                          |           d d d            d S # 1 swxY w Y   d S )Nre   r   )engineengine_kwargs)r   bookre   r   to_excel)r   re   rh   r`   s       r   test_engine_kwargs_writerk   d   s     !),M	*M
 
 
 %	{$	1111V$$$% % % % % % % % % % % % % % % % % %s   4AAAc                 ~   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            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rg   moderh   goodSheet2rR   )r   rj   pytestraises	TypeErrorreescaper   )r   r`   s     r   !test_engine_kwargs_append_invalidr}   p   sy    w !!**9555	iO
 

 
 
 F F )73	
 
 
 	F
 vh((H(EEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	FF F F F F F F F F F F F F F F F F Fs6   B2(&BB2B	B2!B	"B22B69B6zdata_only, expected)Tr   )F=1+1c                 ~   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   t          j        | ddd|i
          j        d         |k    sJ d S )Nr~   r   rq   	data_onlyrt   Sheet1B2rw   rR   )rS   rg   rh   )r   rH   )r   rj   r   rX   valuepd
read_exceliloc)r   r   expectedr`   s       r   #test_engine_kwargs_append_data_onlyr      s+   
 vh  +++	*3{I>V
 
 
 :	}X&t,2h>>>>V999: : : : : : : : : : : : : : : 	&	2		
 	
 	

 t	 	 	 	 	 	 	s   ABBB
kwarg_name	read_onlyr   kwarg_valuec                      | dddd|z             }t          j        t          |||i                    5 }t          |j        |          |k    sJ 	 d d d            d S # 1 swxY w Y   d S )Niodataexceltest1)rh   )
contextlibclosingr   getattrri   )datapathr   r   r   filenamereaders         r    test_engine_kwargs_append_readerr      s     xfgw}==H		x
K/HIII
 
 ?	v{J//;>>>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s   A!!A%(A%zmode,expectedwbazrq   )foobarr   c                    t          dgdg          }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            d S # 1 swxY w Y   d S )NrH   r   columnsr   r   A1r   r   )rg   ru   FrS   indexc                     g | ]	}|j         
S r
   )title).0sheets     r   
<listcomp>z*test_write_append_mode.<locals>.<listcomp>   s    :::%%+:::r   )r   r   Workbook
worksheetsr   r   create_sheetsaver   rj   r   r   load_workbook	enumerate)
r   ru   r   dfwbr`   wb2resultr   
cell_values
             r   test_write_append_moder      s    
A3	(	(	(B					B"BM!#(BM!T OOE#(BM!T GGI	Yz	=	=	= ;
FuE:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 
	H229==	>	> C#::3>:::!!!!!*8!4!4 	C 	CE:>%(.4
BBBBB	C	C C C C C C C C C C C C C C C C C Cs%   +CCCAE""E&)E&z#if_sheet_exists,num_sheets,expectednew   applebananareplacerH   pearoverlayc                    t          dddgi          }t          ddgi          }|                    | 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            d S # 1 swxY w Y   d S )Nrs   r   r   r   r   r   Frg   rS   r   rq   rg   ru   if_sheet_existsr   r   rg   r   rH   )r   rj   r   r   r   r   r   len
sheetnamesr   r   listtmassert_frame_equal)	r   r   
num_sheetsr   df1df2r`   r   r   s	            r   !test_if_sheet_exists_append_modesr      s    Ww12
3
3C
Wvh'
(
(CLL:%uLMMM	*3
 
 
 <	VU;;;< < < < < < < < < < < < < < <
 
	H229==	>	> /"2=!!Z////}Q5((((r5<<<F7O$$0000r}""]2r}Q'7
KKKF!&#.../ / / / / / / / / / / / / / / / / /s%   A77A;>A;.B/E**E.1E.z%startrow, startcol, greeting, goodbyepooprn   goodbyepeoplerm   c           	         t          ddgddgd          }t          dg          }|                    | 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 S )Nrm   rn   r   r   )greetingr   r   r   pooFr   rq   r   r   rH   )r   headerstartrowstartcolrS   rS   rg   )r   rj   r   r   r   r   r   )
r   r   r   r   r   r   r   r`   r   r   s
             r   %test_append_overlay_startrow_startcolr      s4    '7!3H@UVV
W
WC
VH

CLL:%uLMMM	*3	
 
 
 
	\ 	 	
 	
 	
	
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ]9zJJJFh7CCDDH&(+++++s   A>>BB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                 j   t          ddgi          }|                    | dd           t          j        t          t          j        |                    5  t          | dd|          5 }|                    |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 )
Nrs   r   r   r   r   ro   rq   r   rR   )r   rj   rx   ry   
ValueErrorr{   r|   r   )r   r   msgr   r`   s        r   test_if_sheet_exists_raisesr     s8   ( 
GfX&	'	'BKK	eJK???	z3	8	8	8 2 2jsO
 
 
 	2KK5K111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s6   B(,BB(B	B(B	B((B,/B,c                 R   t          dt          j        ddd          i          }t          dt          j        ddd          i          }t          j        ||gd          }|j                            d                                           }|                    | d	           d S )
NArH   
   B   )axisc                     d| dk     rdnd S )Nzcolor: r   redblackr
   )rL   s    r   <lambda>z4test_to_excel_with_openpyxl_engine.<locals>.<lambda>%  s    =sQwweeG== r   r   r   )	r   nplinspacer   concatr3   maphighlight_maxrj   )r   r   r   r   styleds        r   "test_to_excel_with_openpyxl_enginer     s    
S"+aR001
2
2C
S"+aR001
2
2C	C:A	&	&	&BX\\== moo  OOIjO11111r   c                 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 )Nr   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   s          r   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)rH   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   )rg   r   	r   r   r   r   r   r   r   r   r   )
r   r   r   expected_datar   r   pathr   r   r   s
             r   test_read_with_bad_dimensionr   7  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                      }|                    | 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 S )	Nr   r   rq   r   )ru   rg   r   s   docProps/app.xmlrH   )r   rj   r   r   
read_bytesfind)r   r   r`   r   firstsecondthirds          r   test_append_mode_filer  Z  s   	BKK	*K---	J
 
 
 	
F               	??%%''DII)**EYY*EAI66FII)6A:66ER<<ERKKK'KKs   AA"A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   rH   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   nanr   r   r   r   r   r   r   r   r   s          r   "test_read_with_empty_trailing_rowsr  o  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          r   test_read_empty_with_blank_rowr    s     8D&'+G#+G+GHHDt$$""49"==
 
 	:]2j999F	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: {{H&(+++++r  c                     t          | d          5 }|j        i k    sJ |j                            dd          }|j        d|ik    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   r   	test_namer   )r   rX   ri   r   )r   r`   r   s      r   test_book_and_sheets_consistentr    s    	Yz	2	2	2 5f}""""((a88}e 4444445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s   8AAAc                      | dddd|           }t          j        |          }t          t          dd          dg          }t	          j        ||           d S )	Nr   r   r   ints_spelled_with_decimalsr      rH   r   )r   r   r   ranger   r   r   r   r   r   r   s        r   test_ints_spelled_with_decimalsr    sd    8D&'+M+M+MNND]4  Fq"s333H&(+++++r   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   rH   r   )	index_colr   x))XYr   )r  r  rU   )XXYYrT   )r   r!  r   )r   AAAAA)r   BBBBB)r   r   )	r   r   r   r   r
  
MultiIndexfrom_tuplesr   r   r  s        r   *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 &(+++++r   ).r   pathlibr   r{   r   numpyr   rx   rO   r   r   pandas._testing_testingr   pandas.io.excelr   r   pandas.io.excel._openpyxlr   importorskipr   fixturer   r   rC   rd   markparametrizerk   r}   r   r   r   r   r   r   r   r   r
  r   r  r  r  r  r  r(  r
   r   r   <module>r3     sS             				                              5 4 4 4 4 46z**      * * *B0 0 0B tUm44% % 54%F F F( .O0LMM  NM2 ['ABBu66? ? 76 CB? sUGns,A,A,A&BC C C C* )	GX&'	Ax 	A)* / / /* +	
A 9h"78	
A!FH#56	
A 9h"78	
A!Iv#67	 , , ,2    $2 2% $2	2 	2 	2 tUm44, , 54,  &#q!Q/!vsAq!4!vsAq!4 	
 
)))))))))<<=
  KKK  &9&9&9::, , ;:	  &, ( ( (* &9&9&9::, , ;:,* &9&9&9::, , ;:,5 5 5, , ,, , , , ,r   