
    o[we+                     P   d dl Z d dlZd dlZd dlZd dlmc mZ d dl	m
Z
mZ d dlmZ d dlmZ d dlmZ  ej        d           d Zej                            ddd	g          d
             Zdg ddddfdg ddddfdddgdfdddgdfdddgdfdddgdfddgd fd!d"d#gd$fd%d"d&gdd'dfd(d"d&gd)fd*g d+d,fd-g d+d.fd/g d+d0fd1g d+d2fd3g d+d4fd5g d+d6fd7g d+d8fd9g d:dddfd;g d<d6fd=g d>dddfd;g d?d6fd=g d@dddfd;g dAd6fd=g dBdddfd;g d+d6fd=g d:dddfdCg d+dDfgZej                            ddd	g          ej                            dEe          dF                         Zej                            ddd	g          ej                            dEe          dG                         Zg dHZej                            ddd	g          ej                            dIe          dJ                         ZdK Zej        j        ej        dL                         Z dS )M    N)	DataFrame
read_excel)ExcelWriter)ExcelFormatterjinja2c                 B   | j         j        |j         j        k    sJ | j        j        |j        j        k    sJ | j        j        |j        j        k    sJ | j        j        |j        j        k    sJ | j        |j        k    sJ | j        j        |j        j        k    sJ d S N)	alignment__dict__borderfillfontnumber_format
protection)cell1cell2s     @lib/python3.11/site-packages/pandas/tests/io/excel/test_style.pyassert_equal_cell_stylesr      s    ?#u'?????< EL$99999:%*"55555:%*"55555%"55555$(8(AAAAAAA    engine
xlsxwriteropenpyxlc                 r   t          j        |            t          t          j                            d                              d                    }t          j        d          5 }t          ||           5 }|
                    |d           |j        
                    |d           d d d            n# 1 swxY w Y   t          j        d          }t          j        |                    |                    5 }t          |d         j        |d         j                  D ]_\  }}t#          |          t#          |          k    sJ t          ||          D ]'\  }}	|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 )	N   )r   r   .xlsxr   	dataframe
sheet_nameunstyledr   )pytestimportorskipr   nprandomdefault_rngstandard_normaltmensure_cleanr   to_excelstyle
contextlibclosingload_workbookzipcolumnslenvaluer   )
r   dfpathwriterr   wbcol1col2r   r   s
             r   test_styler_to_excel_unstyledr8   "   s_    	29((++;;FCC	D	DB		!	! ;Tf--- 	=KK;K777Hf<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= &z22 6 6t < <== 	;!"[/"92j>;QRR ; ;
d4yyCII----$'dOO ; ;LE5 ;%+5555,UE::::;;	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s[   (F,:4B:.F,:B>	>F,B>	>F, BFF,F	F,F	F,,F03F0zbackground-color: #111222)r   fgColorrgbFF11122200111222)r   r   zcolor: #111222)r   colorr1   zfont-family: Arial;r   namearialzfont-weight: bold;bTzfont-style: italic;iztext-decoration: underline;usingleznumber-format: $??,???.00;r   z
$??,???.00ztext-align: left;r
   
horizontalleftzvertical-align: bottom;verticalbottomzvertical-align: middle;centerzborder-left: 2pt solid redr   rE   r*   mediumzborder-left: 1pt dotted reddottedzborder-left: 2pt dotted redmediumDashDotDotzborder-left: 1pt dashed reddashedzborder-left: 2pt dashed redmediumDashedzborder-left: 1pt solid redthinzborder-left: 3pt solid redthickzborder-left: 2pt solid #111222)r   rE   r=   r:   zborder: 1pt solid red)r   topr*   zborder: 1pt solid #111222)r   rQ   r=   r:   )r   rightr*   )r   rR   r=   r:   )r   rG   r*   )r   rG   r=   r:   z1border-left-style: hair; border-left-color: blackhairzcss, attrs, expectedc                    t          j        |            t          t          j                            d                              d                    }|j                            fd          }t          j
        d          5 }t          ||           5 }|                    |d           |                    |d           d d d            n# 1 swxY w Y   t          j        d	          }t          j        |                    |                    5 }	|	d                             dd          |	d                             dd          }}
d d d            n# 1 swxY w Y   |D ]#}t#          |
|d           t#          ||          }}
$t%          |t&                    r|
|
||          k    sJ |||          k    sJ n|
|
|k    sJ ||k    sJ d d d            d S # 1 swxY w Y   d S )
Nr      rV   c                     S r	    xcsss    r   <lambda>z,test_styler_to_excel_basic.<locals>.<lambda>       C r   r   r   r   r   styledr   r!   r"   r   r#   r$   r%   r&   r*   mapr'   r(   r   r)   r+   r,   r-   cellgetattr
isinstancedict)r   r[   attrsexpectedr2   stylerr3   r4   r   r5   u_cells_cellattrs    `           r   test_styler_to_excel_basicrk   ~   s    	29((++;;FCC	D	DBX\\----((F		!	! &Tf--- 	9KK;K777OOFxO888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 &z22 6 6t < <== 	Q  _11!Q77H9J9J1a9P9PFF	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q  	P 	PD$VT488'&$:O:OFFFh%% 	&>Vx/?%?%?%?%?Xf------>Vx%7%7%7%7X%%%%%& & & & & & & & & & & & & & & & & &s[   G"/CG"C	G"C	>G"9EG"E"	"G"%E"	&A/G""G&)G&c                    t          j        |            t          t          j                            d                              d                    }|j        }|                    fdd           |                    fdd           |j        }|	                    d            |                    d	 d           |                    d
 d           t          j        d          5 }t          ||           5 }|                    |d           |                    |d           d d d            n# 1 swxY w Y   t          j        d          }	t          j        |	                    |                    5 }
|
d                             dd          |
d                             dd          }}|
d                             dd          |
d                             dd          }}d d d            n# 1 swxY w Y   |D ]D}t%          ||d           t%          ||          }}t%          ||d           t%          ||          }}Et'          |t(                    r=||||          k    sJ |||          k    sJ ||||          k    sJ |||          k    sJ n$|||k    sJ ||k    sJ |||k    sJ ||k    sJ d d d            d S # 1 swxY w Y   d S )Nr   rU   c                     S r	   rX   rY   s    r   r\   z4test_styler_to_excel_basic_indexes.<locals>.<lambda>       s r   r   axisc                     S r	   rX   rY   s    r   r\   z4test_styler_to_excel_basic_indexes.<locals>.<lambda>   rn   r   rV   c                     dS Nz
null: css;rX   rZ   s    r   r\   z4test_styler_to_excel_basic_indexes.<locals>.<lambda>   s    l r   c                     dS rs   rX   rt   s    r   r\   z4test_styler_to_excel_basic_indexes.<locals>.<lambda>       L r   c                     dS rs   rX   rt   s    r   r\   z4test_styler_to_excel_basic_indexes.<locals>.<lambda>   rv   r   r   r   null_styledr   r^   r   )r!   r"   r   r#   r$   r%   r&   r*   	map_indexr`   r'   r(   r   r)   r+   r,   r-   ra   rb   rc   rd   )r   r[   re   rf   r2   rg   null_stylerr3   r4   r   r5   ui_cellsi_celluc_cellsc_cellrj   s    `              r   "test_styler_to_excel_basic_indexesr      s    	29((++;;FCC	D	DBXF
]]]]+++
]]]]+++(KOO**+++00q99900q999		!	! 'Tf--- 	9  M BBBOOFxO888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 &z22 6 6t < <== 	U  "-055a;;R\=N=NqRS=T=TWG!-055a;;R\=N=NqRS=T=TWG		U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U
  	T 	TD&wd;;WWd=S=SWG&wd;;WWd=S=SWGGh%% 		'?g&1A&A&A&A&Ahv.....?g&1A&A&A&A&Ahv......?g&9&9&9&9h&&&&?g&9&9&9&9h&&&&1' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's\   1K/D>2K>E	KE	>KA1H5KH	KH		C KKK)
rM   mediumDashDot
dashDotDotrS   rK   rL   doubledashDotslantDashDotrN   border_stylec                    d| dg d}|}t          j        |            t          t          j                            d                              d                    }|j                            fd          }t          j
        d          5 }t          ||           5 }|                    |d	
           |                    |d
           d d d            n# 1 swxY w Y   t          j        d          }t          j        |                    |                    5 }	|	d	                             dd          |	d                             dd          }}
d d d            n# 1 swxY w Y   |D ]#}t#          |
|d           t#          ||          }}
$t%          |t&                    r|
|
||          k    sJ |||          k    sJ n|
|
|k    sJ ||k    sJ d d d            d S # 1 swxY w Y   d S )Nzborder-left: z black thinrI   r   rU   c                     S r	   rX   rY   s    r   r\   z3test_styler_to_excel_border_style.<locals>.<lambda>   r]   r   r   r   r   r   r^   r   r_   )r   r   re   rf   r2   rg   r3   r4   r   r5   rh   ri   rj   r[   s                @r   !test_styler_to_excel_border_styler      s    4,
3
3
3C'''EH
	29((++;;FCC	D	DBX\\----((F		!	! &Tf--- 	9KK;K777OOFxO888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 &z22 6 6t < <== 	Q  _11!Q77H9J9J1a9P9PFF	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q  	P 	PD$VT488'&$:O:OFFFh%% 	&>Vx/?%?%?%?%?Xf------>Vx%7%7%7%7X%%%%%& & & & & & & & & & & & & & & & & &s[   G.$/CG.C#	#G.&C#	'>G.%9E*G.*E.	.G.1E.	2A/G..G25G2c                     t          j        d          } d }t          t          j                            d                              d                    }|j                            d           }t          j
        d          5 }t          |d          5 }t          ||                              |d	
           d d d            n# 1 swxY w Y   t          j        |                     |                    5 }|d	                             dd          j        j        j        d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   c                     ddddiiiS )Nr   r=   r:   111222rX   )r[   s    r   custom_converterz6test_styler_custom_converter.<locals>.custom_converter  s    5("3455r   r   rU   c                     dS )Nzcolor: #888999rX   rt   s    r   r\   z.test_styler_custom_converter.<locals>.<lambda>  s    $4 r   r   r   )style_convertercustomr   r<   )r!   r"   r   r#   r$   r%   r&   r*   r`   r'   r(   r   r   writer+   r,   r-   ra   r   r=   r1   )r   r   r2   rg   r3   r4   r5   s          r   test_styler_custom_converterr     s3   ":..H6 6 6 
29((++;;FCC	D	DBX\\4455F		!	! JTj111 	V63CDDDJJ8 K   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
  6 6t < <== 	Jh<$$Q**/5;zII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sZ   E'C?EC	EC	*E=2D<0E<E 	 EE 	EEEc                    | j         d}}t          g dg dd          }|j                            d          }|                    d| d| |	           d
}	 |d | j                                        D             v rd S t          j        d           |dz  }|dk    s
J d            t          d| d| d|          }t          j        ||           ~)Nz	test.xlsx)rV   r      )r         )rZ   yindexro   zs3:///)storage_options   Tc              3   $   K   | ]}|j         V  d S r	   )key).0objs     r   	<genexpr>z$test_styler_to_s3.<locals>.<genexpr>  s$      MMs37MMMMMMr   g?r   z,Timed out waiting for file to appear on moto)	index_colr   )r>   r   r*   
set_stickyr)   objectsalltimesleepr   r'   assert_frame_equal)s3_public_buckets3somock_bucket_nametarget_filer2   rg   timeoutresults           r   test_styler_to_s3r     s   
 %5$9;k	33	4	4BX  g ..F
OO<,<<{<<dOSSSG	*MM.>.F.J.J.L.LMMMMME
33{{{J{{{4$44{44SW
 
 
 	fb)))	*r   )!r+   r   numpyr#   r!   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   pandas._testing_testingr'   pandas.io.excelr   pandas.io.formats.excelr   r"   r   markparametrizer8   shared_style_paramsrk   r   excel_border_stylesr   r   
single_cpuskip_if_not_us_localer   rX   r   r   <module>r      s             ) ) ) ) ) ) ) ) )              ' ' ' ' ' ' 2 2 2 2 2 2  H   B B B : ; ;	 ;( 	$"""!z:: 	"""!z::
 VV,g6FC=$/VSM40"VSM8<!O#4lC;5v>!	j!22
 j 98D!#>#>#>I"$?$?$?J"$?$?$?AST"$?$?$?J"$?$?$?P!#>#>#>G!#>#>#>H 	)***!z::
 888&A#)))!z::
 :::FC#+++!z::
 ;;;VD#,,,!z::
 9996B#***!z:: 	<###}C L :  /1DEE& & FE	 
&4 :  /1DEE%' %' FE	 
%'V   " :  )<==& & >=	 
&<J J J$ * *  * * *r   