
    A[g,                        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,                  j5                  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,                  j5                  dd	d
g      ej,                  j5                  dFe      dG               Zej,                  j5                  dd	d
g      ej,                  j5                  dFe      dH               Zg dIZej,                  j5                  dd	d
g      ej,                  j5                  dJe      dK               Z dL Z!ej,                  j.                  e
jD                  dM               Z#y)N    N)is_platform_windows)	DataFrame
read_excel)ExcelWriter)ExcelFormatterjinja2c                    | 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 y N)	alignment__dict__borderfillfontnumber_format
protection)cell1cell2s     [/var/www/html/bid-api/venv/lib/python3.12/site-packages/pandas/tests/io/excel/test_style.pyassert_equal_cell_stylesr      s    ??##u'?'????<<  ELL$9$9999::%**"5"5555::%**"5"5555%"5"5555$$(8(8(A(AAAA    engine
xlsxwriteropenpyxlc                 6   t        j                  |        t        t        j                  j                  d      j                  d            }t        j                  d      5 }t        ||       5 }|j                  |d       |j                  j                  |d       d d d        t        j                  d      }t        j                  |j                  |            5 }t        |d   j                   |d   j                         D ]Y  \  }}t#        |      t#        |      k(  sJ t        ||      D ],  \  }}	|j$                  |	j$                  k(  sJ t'        ||	       . [ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)	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   &   sC    	299((+;;FC	DB		!Tf-KK;K7HHf< . &&z2 6 6t <=!"[/"9"92j>;Q;QR
d4yCI---$'dOLE5 ;;%++555,UE: %4 S > 
"	!--
 >= 
"	!s>   "F01E7!AF"BF&F7F 	<FF	FF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                 Z   t        j                  |        t        t        j                  j                  d      j                  d            }|j                  j                  fd      }t        j                  d      5 }t        ||       5 }|j                  |d       |j                  |d       d d d        t        j                  d	      }t        j                  |j                  |            5 }	|	d   j!                  dd      |	d   j!                  dd      }}
d d d        |D ]  }t#        
|d       t#        |      }}
 t%        |t&              r

|
||    k7  sJ ||    k(  sJ 
|
|k7  sJ |k(  sJ d d d        y # 1 sw Y   xY w# 1 sw Y   txY w# 1 sw Y   y xY w)
Nr      rW   c                     S r
    xcsss    r   <lambda>z,test_styler_to_excel_basic.<locals>.<lambda>       Cr   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    	299((+;;FC	DBXX\\-(F		!Tf-KK;K7OOFxO8 . &&z2 6 6t <=  _11!Q7H9J9J1a9PFF > D$VT48'&$:OFF  h%>Vx/?%???Xf---->Vx%777X%%%% 
"	!--
 >= 
"	!s>   F!'F	6AF!7+F"AF!	F	F!F	F!!F*c                    t        j                  |        t        t        j                  j                  d      j                  d            }|j                  }|j                  fdd       |j                  fdd       |j                  }|j                  d        |j                  d	 d       |j                  d
 d       t        j                  d      5 }t        ||       5 }|j                  |d       |j                  |d       d d d        t        j                  d      }	t        j                  |	j!                  |            5 }
|
d   j#                  dd      |
d   j#                  dd      }}|
d   j#                  dd      |
d   j#                  dd      }}d d d        |D ]4  }t%        |d       t%        |      }}t%        |d       t%        |      }}6 t'        |t(              r,
|||    k7  sJ ||    k(  sJ 
|||    k7  sJ ||    k(  s"J ||k7  sJ |k(  sJ ||k7  sJ |k(  sJ d d d        y # 1 sw Y   >xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   rV   c                     S r
   rY   rZ   s    r   r]   z4test_styler_to_excel_basic_indexes.<locals>.<lambda>       sr   r   axisc                     S r
   rY   rZ   s    r   r]   z4test_styler_to_excel_basic_indexes.<locals>.<lambda>   ro   r   rW   c                      yNz
null: css;rY   r[   s    r   r]   z4test_styler_to_excel_basic_indexes.<locals>.<lambda>   s    lr   c                      yrt   rY   ru   s    r   r]   z4test_styler_to_excel_basic_indexes.<locals>.<lambda>       Lr   c                      y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      ss    	299((+;;FC	DBXXF
]+
]+((KOO*+0q90q9		!Tf-  M BOOFxO8 . &&z2 6 6t <=  "-055a;R\=N=NqRS=TWG!-055a;R\=N=NqRS=TWG	 >
 D&wd;WWd=SWG&wd;WWd=SWG  h%?g&1A&AAAhv....?g&1A&AAAhv....?g&999h&&&?g&999h&&&1 
"	!--
 >= 
"	!s?   !I+/'IAI+AI,BI+I	I+I(	$I++I4)
rN   mediumDashDot
dashDotDotrT   rL   rM   doubledashDotslantDashDotrO   border_stylec                 r   d| dg d}|}t        j                  |        t        t        j                  j                  d      j                  d            }|j                  j                  fd      }t        j                  d      5 }t        ||       5 }|j                  |d	
       |j                  |d
       d d d        t        j                  d      }t        j                  |j                  |            5 }	|	d	   j!                  dd      |	d   j!                  dd      }}
d d d        |D ]  }t#        
|d       t#        |      }}
 t%        |t&              r

|
||    k7  sJ ||    k(  sJ 
|
|k7  sJ |k(  sJ d d d        y # 1 sw Y   xY w# 1 sw Y   txY w# 1 sw Y   y xY w)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    ,{
3C'EH
	299((+;;FC	DBXX\\-(F		!Tf-KK;K7OOFxO8 . &&z2 6 6t <=  _11!Q7H9J9J1a9PFF > D$VT48'&$:OFF  h%>Vx/?%???Xf---->Vx%777X%%%% 
"	!--
 >= 
"	!s>   F-'FAF-+F!.AF-F	F-!F*	&F--F6c                     t        j                  d      } d }t        t        j                  j                  d      j                  d            }|j                  j                  d       }t        j                  d      5 }t        |d      5 }t        ||      j                  |d	
       d d d        t        j                  | j!                  |            5 }|d	   j#                  dd      j$                  j&                  j(                  dk(  sJ 	 d d d        d d d        y # 1 sw Y   xxY w# 1 sw Y   xY w# 1 sw Y   y xY w)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                      y)Nzcolor: #888999rY   ru   s    r   r]   z.test_styler_custom_converter.<locals>.<lambda>  s    $4r   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     s   "":.H6 
299((+;;FC	DBXX\\45F		!Tj1V63CDJJ8 K  2
  6 6t <=h<$$Q*//55;;zIII > 
"	!11
 >= 
"	!s<   D=D%.,D=9D1D=%D.	*D=1D:	6D==Ec                    | j                   d}}t        g dg dd      }|j                  j                  d      }|j	                  d| d| |	       d
}	 |d | j
                  j                         D        v ry t        j                  d       |dz  }|dkD  sJ d       t        d| d| d|      }t        j                  ||       u)Nz	test.xlsx)rW   r      )r         )r[   yindexrp   zs3:///)storage_options   c              3   4   K   | ]  }|j                     y wr
   )key).0objs     r   	<genexpr>z$test_styler_to_s3.<locals>.<genexpr>"  s     M.Ls377.Ls   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$9;k	3	4BXX  g .F
OOe,-Q{m<dOSG
M.>.F.F.J.J.LMM

33{JJJ{$%Q{m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      sJ       - ) )  ' 2   H 
 ''JB :;	;( 	$"!z: 	"!z:
 VV,g6FC=$/VSM40"VSM8<!O#4lC;5v>!	j!2
 j 98D!#>I"$?J"$?AST"$?J"$?P!#>G!#>H 	)*!z:
 8&A#)!z:
 :FC#+!z:
 ;VD#,!z:
 96B#*!z: 	<#}C L : /1DE& F	
&4 : /1DE%' F	
%'V " : )<=& >	
&<J$ *  *r   