
    A>i`9                        S SK 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r	S SKJ
r
  S SKJr  S SKJrJr  S SKJr  \R&                  " S5      r\R*                  S 5       r\R*                  S 5       rS	 rS
 r\R4                  R7                  SSS/5      S 5       rS r\R4                  R7                  SSS/5      S 5       r\R4                  R7                  SSS/5      \R4                  R7                  SSS/5      S 5       5       r\R4                  R7                  SSS/4S/ SQ4/5      S 5       r \R4                  R7                  SS S!S"S#/4S$S%S&/4S'S%S&S#/4/5      S( 5       r!\R4                  R7                  S)S S S*S+/S,S-/4S S%S.S+/S*S-/4S%S S.S*/S,S-/4S%S%S.S+/S,S*/4/5      S/ 5       r"\R4                  R7                  S0/ S1Q5      S2 5       r#S3 r$\R4                  R7                  SSS/5      S4 5       r%\R4                  R7                  S5S \RL                  S6S%S!S7/\RL                  S8S9S:S;/\RL                  S<S=S>S?/S@.4S!/ SAQ/ SBQ/ SCQSD.4/5      \R4                  R7                  SE/ SFQ5      \R4                  R7                  S/ SGQ5      SH 5       5       5       r'SI r(\R4                  R7                  S/ SGQ5      SJ 5       r)\R4                  R7                  S/ SGQ5      SK 5       r*SL r+SM r,SN r-g)O    N)Path)	DataFrame)ExcelWriter_OpenpyxlWriter)OpenpyxlReaderopenpyxlc                      g)Nz.xlsx r
       b/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/io/excel/test_openpyxl.pyextr      s    r   c                 p    U[         R                  " 5        U  3-  nUR                  5         [        U5      $ )N)uuiduuid4touchstr)r   tmp_pathtmps      r   	tmp_excelr      s-    


~cU+
+CIIKs8Or   c                  *   SSK Jn   SSS.SSSSS.SS	S
.SSSS.S.SS0SSS.S.nU R                  S5      nU R                  SUS9nU R	                  U R
                  R                  S9nU R                  XDXDS9nU R                  SS	S
9nU R                  SSS9nU R                  SUS9nSn	U R                  SSS9n
[        R                  " U5      nUS   U:X  d   eUS   U:X  d   eUS   U:X  d   eUS   U:X  d   eUS   U	:X  d   eUS   U
:X  d   eg )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   "   sj    %d3!FffU$,%@ 'JPS4TU'0!%7F j)J;;D
;3D;;V^^77;8D]]t]HF  Hu EI*37J':FDM""$u"=J		1	1&	9Bf:h<6!!!k?i'''f:o-///lz)))r   c           	         SSK Jn  SnSSS00nSSS00nU" SSS	US
9U" SSSUS
9/nSSSS.0n[        R                  " U5      nUS   nU" SSSSSUS9/n	[        U 5       n
U
R	                  XRS9  U
R	                  XS9  U
R
                  U   nS S S 5        WS   nUS   nUR                  U:X  d   eUR                  U:X  d   eg ! , (       d  f       N== f)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Jw
+,Fw
+,F 	aQBf5aQBf5M
 J=>J 99*EJ$V,qh1q
	
K 
	#vMAK?mmJ'	 
$
 4yH4yH==////==//// 
$	#s    .C
C	iso_datesTFc                     SU0n[        U SUS9 nUR                  R                  U:X  d   e[        5       R	                  U5        S S S 5        g ! , (       d  f       g = f)Nre   r   )engineengine_kwargs)r   bookre   r   to_excel)r   re   rh   r`   s       r   test_engine_kwargs_writerk   d   sX     !),M	*M
	{{$$	111V$
 
 
s   6A
Ac                 N   [        SS/5      R                  U 5        [        R                  " [        [
        R                  " S5      S9   [        U SSSS0S	9 n[        S
/5      R                  USS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)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   s     w !**95	iiO

 )73	

 vh((H(E

 

 

 
s$   
BB4B
B	B
B$zdata_only, expected)Tr   )F=1+1c                 V   [        S/5      R                  U 5        [        U SSSU0S9 nUR                  S   S   R                  U:X  d   e[        5       R                  USS	9  S S S 5        [
        R                  " U SSSU0S
9R                  S   U:X  d   eg ! , (       d  f       N;= f)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,22h>>>V9
 	&	2		

 $t	 		
 
s   ;B
B(
kwarg_name	read_onlyr   kwarg_valuec                     U " SSSSU-   5      n[         R                  " [        XBU0S95       n[        UR                  U5      U:X  d   e S S S 5        g ! , (       d  f       g = f)Niodataexceltest1)rh   )
contextlibclosingr   getattrri   )datapathr   r   r   filenamereaders         r    test_engine_kwargs_append_readerr      s_     fgw}=H			xK/HI
	v{{J/;>>>
 
 
s   A
A#zmode,expectedwbazrq   )foobarr   c                    [        S/S/S9n[        R                  5       nSUR                  S   l        SUR                  S   S   l        UR                  S5        SUR                  S   S   l        UR                  U 5        [        U SUS	9 nUR                  USS
S9  S S S 5        [        R                  " [        R                  U 5      5       nUR                   Vs/ s H  owR                  PM     nnX:X  d   e[        U5       H'  u  pUR                  U	   S   R
                  U
:X  a  M'   e   S S S 5        g ! , (       d  f       N= fs  snf ! , (       d  f       g = f)NrH   r   columnsr   r   A1r   r   )rg   ru   FrS   index)r   r   Workbook
worksheetstitler   create_sheetsaver   rj   r   r   load_workbook	enumerate)r   ru   r   dfwbr`   wb2sheetresultr   
cell_values              r   test_write_append_moder      s1    
A3	(B				B"BMM!#(BMM!T OOE#(BMM!T GGI	Yz	=
FuE: 
> 
		H229=	>#+.>>:>%++>:!!!!*8!4E>>%(.44
BBB "5	 
?	> 
>	= ; 
?	>s0   D?E"E77E2E?
EE
E#z#if_sheet_exists,num_sheets,expectednew   applebananareplacerH   pearoverlayc                    [        SSS/05      n[        SS/05      nUR                  U SSSS9  [        U SS	US
9 nUR                  USSS9  S S S 5        [        R                  " [
        R                  U 5      5       n[        UR                  5      U:X  d   eUR                  S   S:X  d   e[        R                  " USSS9n[        US   5      U:X  d   e[        UR                  5      S:X  a8  [        R                  " XwR                  S   SS9n[        R                  " X5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)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      s0    Ww12
3C
Wvh'
(CLL:%uLM	*3
	VU;

 
		H229=	>"2==!Z///}}Q5(((r5<F7O$000r}}"]]2}}Q'7
KF!!&. 
?	>
 

 
?	>s   D4?B,E4
E
Ez%startrow, startcol, greeting, goodbyepooprn   goodbyepeoplerm   c           
      P   [        SS/SS/S.5      n[        S/5      nUR                  U SSS	S
9  [        U SSSS9 nUR                  US	S	US-   USS9  S S S 5        [        R                  " U SSS9n[        X4S.5      n	[
        R                  " X5        g ! , (       d  f       NH= f)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      s     '7!3H@UV
WC
VH
CLL:%uLM	*3	
	\ 	 	
	
 ]]9zJFhCDH&+
 
s   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                 <   [        SS/05      nUR                  U SSS9  [        R                  " [        [
        R                  " U5      S9   [        U SSUS9 nUR                  USS	9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)
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     s    ( 
GfX&	'BKK	eJK?	z3	8jsO
KK5K1
 
9	8
 
 
9	8s$   BA<+B<
B
	B
Bc                 0   [        S[        R                  " SSS5      05      n[        S[        R                  " SSS5      05      n[        R                  " X/SS9nUR
                  R                  S 5      R                  5       nUR                  U SS	9  g )
NArH   
   B   )axisc                      SU S:  a  S 3$ S 3$ )Nzcolor: r   redblackr
   )rL   s    r   <lambda>4test_to_excel_with_openpyxl_engine.<locals>.<lambda>%  s    gsQwe<=G<=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1
2C
S"++aR01
2C	C:A	&BXX\\=mo  OOIjO1r   c                 &   U " SSSSU-   5      n[         R                  " [        R                  X2S95       n[        R
                  " USS9nS S S 5        [        R
                  " U5      n[        R                  " WU5        g ! , (       d  f       N<= f)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   +  sz     fgw}=H			x=
	r*5
 }}X&H&(+
 
s   B
B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   U " SSSU U 35      nUc  [         R                  " XbS9nOF[        R                  " [        R                  XeS95       n[         R                  " USUS9nS S S 5        [        U5      n	[        R                  " WU	5        g ! , (       d  f       N1= f)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    . D&'hZu+=>Dt3""4"=
]]2jHF
 'H&(+
 
s   B
Bc                 j   [        5       nUR                  U SS9  [        U SSSS9 nUR                  U5        S S S 5        [        U 5      R	                  5       nUR                  S5      nUR                  SUS-   5      nUR                  SUS-   5      nUS:w  a  US:X  d   eg ! , (       d  f       Nq= f)	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6FII)6A:6ER<ERK''K
 
s   B$$
B2c           	         U " SSSSU 35      nUc  [         R                  " U5      nOE[        R                  " [        R                  X2S95       n[         R                  " USS9nS S S 5        [        [        R                  SS	S
S/[        R                  SSSS/[        R                  SSSS/S.5      n[        R                  " WU5        g ! , (       d  f       Nn= f)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     D&'-@+FGDt$""4"=
]]2j9F
 ffc1a+6631a06631a0	
H &(+
 
s   C
Cc                 B   U " SSSSU 35      nUc  [         R                  " U5      nOE[        R                  " [        R                  X2S95       n[         R                  " USS9nS S S 5        [        5       n[        R                  " WU5        g ! , (       d  f       N0= f)Nr   r   r   empty_with_blank_rowr   r   r   r   r	  s          r   test_read_empty_with_blank_rowr    s     D&'-A#+GHDt$""4"=
]]2j9F
 {H&(+
 
s   B
Bc                     [        U SS9 nUR                  0 :X  d   eUR                  R                  SS5      nUR                  SU0:X  d   e S S S 5        g ! , (       d  f       g = f)Nr   r   	test_namer   )r   rX   ri   r   )r   r`   r   s      r   test_book_and_sheets_consistentr    sY    	Yz	2f}}"""((a8}}e 4444 
3	2	2s   AA
A&c                     U " SSSSU 35      n[         R                  " U5      n[        [        SS5      S/S9n[        R
                  " X45        g )	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    sJ    D&'-Gu+MND]]4 Fq"s3H&+r   c                    U " SSSSU 35      n[         R                  " U/ SQ/ SQS9n[        [        R                  SSS/S[        R                  [        R                  [        R                  //[         R
                  R                  / SQ5      [         R
                  R                  S	S
/5      S9n[        R                  " X45        g )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    D&'-Fse+LMD]]49YGF
&&#sC	 3"?@))X
 mm'');=O(P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>r0     s     	       5z*    *B0B tUm4% 5%F( .O0LM N2 ['ABu6? 7 C? sUGns,A&B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 tUm4, 5,  &&#q!Q/!vvsAq!4!vvsAq!4	
 
)))<=
 K &9:, ;	&, (* &9:, ;,* &9:, ;,5,,r   