
    bMh,                        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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            e            rej        j        Z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d0g d,d1fd2g d,d3fd4g d,d5fd6g d,d7fd8g d,d9fd:g d;dddfd<g d=d7fd>g d?dddfd<g d@d7fd>g dAdddfd<g dBd7fd>g dCdddfd<g d,d7fd>g d;dddfdDg d,dEfgZej                            dd	d
g          ej                            dFe          dG                         Zej                            dd	d
g          ej                            dFe          dH                         Zg dIZej                            dd	d
g          ej                            dJe          dK                         Z dL Z!ej        j        e
j"        dM                         Z#dS )N    N)is_platform_windows)	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     `/var/www/html/test/jupyter/venv/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_unstyledr9   &   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   colorr2   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   rF   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   rF   r>   r;   zborder: 1pt solid red)r   topr+   zborder: 1pt solid #111222)r   rR   r>   r;   )r   rightr+   )r   rS   r>   r;   )r   rH   r+   )r   rH   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      rW   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expectedr3   stylerr4   r5   r   r6   u_cells_cellattrs    `           r   test_styler_to_excel_basicrl      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   rV   c                     S r
   rY   rZ   s    r   r]   z4test_styler_to_excel_basic_indexes.<locals>.<lambda>       s r   r   axisc                     S r
   rY   rZ   s    r   r]   z4test_styler_to_excel_basic_indexes.<locals>.<lambda>   ro   r   rW   c                     dS Nz
null: css;rY   r[   s    r   r]   z4test_styler_to_excel_basic_indexes.<locals>.<lambda>   s    l r   c                     dS rt   rY   ru   s    r   r]   z4test_styler_to_excel_basic_indexes.<locals>.<lambda>       L r   c                     dS rt   rY   ru   s    r   r]   z4test_styler_to_excel_basic_indexes.<locals>.<lambda>   rw   r   r   r   null_styledr   r_   r   )r"   r#   r   r$   r%   r&   r'   r+   	map_indexra   r(   r)   r   r*   r,   r-   r.   rb   rc   rd   re   )r   r\   rf   rg   r3   rh   null_stylerr4   r5   r   r6   ui_cellsi_celluc_cellsc_cellrk   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)
rN   mediumDashDot
dashDotDotrT   rL   rM   doubledashDotslantDashDotrO   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 thinrJ   r   rV   c                     S r
   rY   rZ   s    r   r]   z3test_styler_to_excel_border_style.<locals>.<lambda>   r^   r   r   r   r   r   r_   r   r`   )r   r   rf   rg   r3   rh   r4   r5   r   r6   ri   rj   rk   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;   111222rY   )r\   s    r   custom_converterz6test_styler_custom_converter.<locals>.custom_converter  s    5("3455r   r   rV   c                     dS )Nzcolor: #888999rY   ru   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+   ra   r(   r)   r   r   writer,   r-   r.   rb   r   r>   r2   )r   r   r3   rh   r4   r5   r6   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)rW   r      )r         )r[   yindexrp   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_filer3   rh   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.compatr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   pandas._testing_testingr(   pandas.io.excelr   pandas.io.formats.excelr   r#   mark
single_cpu
pytestmarkr   parametrizer9   shared_style_paramsrl   r   excel_border_stylesr   r   skip_if_not_us_localer   rY   r   r   <module>r      s             - - - - - - ) ) ) ) ) ) ) ) )              ' ' ' ' ' ' 2 2 2 2 2 2  H   
  ('J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   