o
    d-7                     @   s  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m	Z	 d dl
mZ d dlmZmZ edZejddgZdd	 Zd
d Zejdddgdd Zdd Zejdddgdd Zejdddgfdg dfgdd Zejdd d!d"d#gfd$d%d&gfd'd%d&d#gfgd(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d0d1 Zejd2g d3d4d5 Zd6d7 Zejd8ddgd9d: Zejd;d ej d<d%d!d=gej d>d?d@dAgej dBdCdDdEgdFfd!g dGg dHg dIdJfgejdKg dLejd8g dMdNdO Z!dPdQ Z"ejd8g dMdRdS Z#ejd8g dMdTdU Z$dVdW Z%dXdY Z&dZd[ Z'dS )\    N)Path)	DataFrame)ExcelWriter_OpenpyxlWriteropenpyxlextz.xlsxc                 C   s.  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}|jd|d}|j|jjd}|j||||d}|jdd	d
}|jddd}|j	d|d}	d}
|j
ddd}t|}|d |ksmJ |d |ksuJ |d |ks}J |d |	ksJ |d |
ksJ |d |ksJ 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    r!   r"   r#   )r   r   ColorFontSider   BORDER_THINBorder	AlignmentPatternFill
Protectionr   _convert_to_style_kwargs)r   r   hstyle
font_colorr   sider%   r    
fill_colorr!   r"   r#   kw r4   h/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/io/excel/test_openpyxl.pytest_to_excel_styleconverter   s0   
	
r6   c              	   C   s(  ddl m} d}dddii}dddii}|ddd	|d
|ddd|d
g}ddddi}t|}|d }|ddddd|dg}	t| F}
t|
}|j||d |j|	|d |j| }W d    n1 sgw   Y  |d }|d }|j|ks{J |j|ksJ W d    d S 1 sw   Y  d S )Nr   )	ExcelCellmerge_styledr   r   r	   0000FF00   *   )colrowvalr$   c   000000FFTr
   pandas)r<   r=   r>   
mergestartmergeendr$   
sheet_nameB1A2)	pandas.io.formats.excelr7   r   r.   tmensure_clean_write_cellssheetsr   )r   r7   rE   sty_b1sty_a2initial_cells
sty_merged
sty_kwargsopenpyxl_sty_mergedmerge_cellspathwriterwksxcell_b1xcell_a2r4   r4   r5   test_write_cells_merge_styled7   s2   

"rY   	iso_datesTFc              	   C   s   d|i}t | 6}t|d|d}|jj|ksJ t | W d    n1 s*w   Y  W d    d S W d    d S 1 sBw   Y  d S )NrZ   r   )engineengine_kwargs)rI   rJ   r   bookrZ   r   to_excel)r   rZ   r\   frU   r4   r4   r5   test_engine_kwargs_writeY   s   "r`   c              
   C   s   t | X}tddg| tjttdd, t	|ddddid	}td
gj|dd W d    n1 s9w   Y  W d    n1 sHw   Y  W d    d S W d    d S 1 s`w   Y  d S )NhelloworldzAload_workbook() got an unexpected keyword argument 'apple_banana'matchr   aapple_bananafruitr[   moder\   goodSheet2rD   )
rI   rJ   r   r^   pytestraises	TypeErrorreescaper   )r   r_   rU   r4   r4   r5   !test_engine_kwargs_append_invalidd   s&   "rq   zdata_only, expected)Tr   )F=1+1c              	   C   s   t | G}tdg| t|ddd|id}|jd d j|ks%J t j|dd	 W d    n1 s7w   Y  W d    d S W d    d S 1 sOw   Y  d S )
Nrr   r   re   	data_onlyrh   Sheet1B2rk   rD   )rI   rJ   r   r^   r   rL   value)r   rs   expectedr_   rU   r4   r4   r5   #test_engine_kwargs_append_data_onlyv   s   "rx   zmode,expectedwbazre   )foobarrz   c              	   C   sL  t dgdgd}t| }t }d|jd _d|jd d _|d d|jd d _|	| t
|d|d	}|j|dd
d W d    n1 sLw   Y  tt|+}dd |jD }||kshJ t|D ]\}	}
|j|	 d j|
ks|J qlW d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr:   rz   columnsr{   r   A1r|   r   )r[   ri   FrE   indexc                 S   s   g | ]}|j qS r4   )title).0sheetr4   r4   r5   
<listcomp>   s    z*test_write_append_mode.<locals>.<listcomp>)r   rI   rJ   r   Workbook
worksheetsr   rv   create_sheetsaver   r^   
contextlibclosingload_workbook	enumerate)r   ri   rw   dfr_   wbrU   wb2resultr   
cell_valuer4   r4   r5   test_write_append_mode   s*   

"r   z#if_sheet_exists,num_sheets,expectednew   applebananareplacer:   pearoverlayc           
   	   C   sX  t dddgi}t ddgi}t| }|j|dddd t|dd	|d
}|j|ddd W d    n1 s9w   Y  tt|D}t	|j
|ksPJ |j
d dksYJ tj|ddd}	t|	d |kskJ t	|j
dkrtj||j
d dd}	t|	| W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nrg   r   r   r   r   r{   Fr[   rE   r   re   r[   ri   if_sheet_existsr   r   r[   r   r:   )r   rI   rJ   r^   r   r   r   r   r   len
sheetnamespd
read_excellistassert_frame_equal)
r   r   
num_sheetsrw   df1df2r_   rU   r   r   r4   r4   r5   !test_if_sheet_exists_append_modes   s.   
"r   z%startrow, startcol, greeting, goodbyepooprb   goodbyepeoplera   c              
   C   s   t ddgddgd}t dg}t| L}|j|ddd	d
 t|dddd}|j|d	d	|d |dd W d    n1 s?w   Y  tj|ddd}	t ||d}
t|	|
 W d    d S 1 sdw   Y  d S )Nra   rb   r   r   )greetingr   r   r   pooFr   re   r   r   r:   )r   headerstartrowstartcolrE   )rE   r[   )r   rI   rJ   r^   r   r   r   r   )r   r   r   r   r   r   r   r_   rU   r   rw   r4   r4   r5   %test_append_overlay_startrow_startcol   s*   

"r   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              
   C   s   t ddgi}t| R}tjtt|d/ |j|ddd t	|dd|d}|j|dd	 W d    n1 s:w   Y  W d    n1 sIw   Y  W d    d S W d    d S 1 saw   Y  d S )
Nrg   r   rc   r{   r   r   re   r   rD   )
r   rI   rJ   rl   rm   
ValueErrorro   rp   r^   r   )r   r   msgr   r_   rU   r4   r4   r5   test_if_sheet_exists_raises   s   "r   c                 C   s   t | 9}tdtdddi}tdtdddi}tj||gdd}|jdd 	 }|j
|d	d
 W d    d S 1 sAw   Y  d S )NAr:   
   B   )axisc                 S   s   d| dk r	d S d S )Nzcolor: r   redblackr4   )r>   r4   r4   r5   <lambda>  s    z4test_to_excel_with_openpyxl_engine.<locals>.<lambda>r   r   )rI   rJ   r   nplinspacer   concatr$   applymaphighlight_maxr^   )r   filenamer   r   r   styledr4   r4   r5   "test_to_excel_with_openpyxl_engine   s   "r   	read_onlyc                 C   sn   | dddd| }t tj||d}tj|dd}W d    n1 s%w   Y  t|}t|| d S )Niodataexceltest1r   r   r   )r   r   r   r   r   r   rI   r   )datapathr   r   r   r   r   rw   r4   r4   r5   test_read_workbook  s   
r   zheader, expected_datar      r            C      	   Titlez
Unnamed: 1z
Unnamed: 2)r:   r   r   )r   r   r   )r   r   r   )r   r   r   r   )dimension_missingdimension_smalldimension_large)TFNc           
      C   s   | ddd| | }|d u rt j||d}n"ttj||d}t j|d|d}W d    n1 s4w   Y  t|}	t||	 d S )Nr   r   r   )r   r   r   )r[   r   	r   r   r   r   r   r   r   rI   r   )
r   r   r   expected_datar   r   rT   r   r   rw   r4   r4   r5   test_read_with_bad_dimension  s   r   c              	   C   s   t  }t| R}|j|dd t|dddd}|| W d    n1 s(w   Y  t| }|d}|d|d }|d|d }|dkrP|dksRJ W d    d S 1 s]w   Y  d S )	Nr   r   re   r   )ri   r[   r   s   docProps/app.xmlr:   )r   rI   rJ   r^   r   r   
read_bytesfind)r   r   r_   rU   r   firstsecondthirdr4   r4   r5   test_append_mode_file7  s   
"r   c                 C   s   | dddd| }|d u rt |}n!ttj||d}t j|dd}W d    n1 s0w   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	
|| d S )Nr   r   r   empty_trailing_rowsr   r   r   r   r:   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   nanrI   r   r   r   r   rT   r   r   rw   r4   r4   r5   "test_read_with_empty_trailing_rowsM  s    r   c                 C   s   | dddd| }|d u rt |}n!ttj||d}t j|dd}W d    n1 s0w   Y  t }t|| d S )Nr   r   r   empty_with_blank_rowr   r   r   r   r   r4   r4   r5   test_read_empty_with_blank_rowc  s   r   c              	   C   s   t | >}t|dd}|ji ksJ |jdd}|jd|iks$J W d    n1 s.w   Y  W d    d S W d    d S 1 sFw   Y  d S )Nr   r   	test_namer   )rI   rJ   r   rL   r]   r   )r   r_   rU   r   r4   r4   r5   test_book_and_sheets_consistentr  s   "r   c                 C   sB   | dddd| }t |}ttdddgd}t|| d S )	Nr   r   r   ints_spelled_with_decimalsr      r:   r}   )r   r   r   rangerI   r   r   r   rT   r   rw   r4   r4   r5   test_ints_spelled_with_decimals{  s   
r   c                 C   s~   | dddd| }t j|g dg d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d}t|| d S )Nr   r   r   multiindex_no_index_names)r   r:   r   )	index_colr   x))XYr   )r   r   rG   )XXYYrF   )r   r   ru   )r   AAAAA)r   BBBBB)r~   r   )	r   r   r   r   r   
MultiIndexfrom_tuplesrI   r   r   r4   r4   r5   *test_read_multiindex_header_no_index_names  s   r  )(r   pathlibr   ro   numpyr   rl   rA   r   r   pandas._testing_testingrI   pandas.io.excelr   r   importorskipr   markparametrize
pytestmarkr6   rY   r`   rq   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r4   r4   r4   r5   <module>   s    
!"






	



	