o
    _~#g{;                     @   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mZ d dl	Z
d dl	mZ d dlmZ d dlmZmZ d dlmZ edZe rFejjZejdd	 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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d0d1 Z#ejd2d d d3d4gd5d6gfd d-d7d4gd3d6gfd-d d7d3gd5d6gfd-d-d7d4gd5d3gfgd8d9 Z$ejd:g d;d<d= Z%d>d? Z&ejdddgd@dA Z'ejdBd ej(dCd-d)dDgej(dEdFdGdHgej(dIdJdKdLgdMfd)g dNg dOg dPdQfgejdRg dSejdg dTdUdV Z)dWdX Z*ejdg dTdYdZ Z+ejdg dTd[d\ Z,d]d^ Z-d_d` Z.dadb Z/dS )c    N)Path)is_platform_windows)	DataFrame)ExcelWriter_OpenpyxlWriter)OpenpyxlReaderopenpyxlc                   C   s   dS )Nz.xlsx r	   r	   r	   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/io/excel/test_openpyxl.pyext   s   r   c                  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   hstyle
font_colorr"   sider)   r$   
fill_colorr%   r&   r'   kwr	   r	   r
   test_to_excel_styleconverter   s0   
	
r8   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.excelr9   r   r2   tmensure_clean_write_cellssheetsr"   )r   r9   rG   sty_b1sty_a2initial_cells
sty_merged
sty_kwargsopenpyxl_sty_mergedmerge_cellspathwriterwksxcell_b1xcell_a2r	   r	   r
   test_write_cells_merge_styled@   s2   

"r[   	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 )Nr\   r   )engineengine_kwargs)rK   rL   r   bookr\   r   to_excel)r   r\   r^   frW   r	   r	   r
   test_engine_kwargs_writeb   s   "rb   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Sheet2rF   )
rK   rL   r   r`   pytestraises	TypeErrorreescaper   )r   ra   rW   r	   r	   r
   !test_engine_kwargs_append_invalidm   s&   "rs   zdata_only, expected)Tr   )F=1+1c              	   C   s   t | Q}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  tj|ddd|id
j	d |ksNJ W d    d S 1 sYw   Y  d S )Nrt   r   rg   	data_onlyrj   Sheet1B2rm   rF   )rG   r]   r^   )r   r<   )
rK   rL   r   r`   r   rN   valuepd
read_exceliloc)r   ru   expectedra   rW   r	   r	   r
   #test_engine_kwargs_append_data_only   s(   

"r}   
kwarg_name	read_onlyru   kwarg_valuec                 C   sb   | dddd| }t t|||id}t|j||ksJ W d    d S 1 s*w   Y  d S )Niodataexceltest1)r^   )
contextlibclosingr   getattrr_   )datapathr   r~   r   filenamereaderr	   r	   r
    test_engine_kwargs_append_reader   s   "r   zmode,expectedwbazrg   )foobarr   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<   r   columnsr   r   A1r   r   )r]   rk   FrG   indexc                 S   s   g | ]}|j qS r	   )title).0sheetr	   r	   r
   
<listcomp>   s    z*test_write_append_mode.<locals>.<listcomp>)r   rK   rL   r   Workbook
worksheetsr   rx   create_sheetsaver   r`   r   r   load_workbook	enumerate)r   rk   r|   dfra   wbrW   wb2resultr   
cell_valuer	   r	   r
   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 )Nri   r   r   r   r   r   Fr]   rG   r   rg   r]   rk   if_sheet_existsr   r   r]   r   r<   )r   rK   rL   r`   r   r   r   r   r   len
sheetnamesry   rz   listassert_frame_equal)
r   r   
num_sheetsr|   df1df2ra   rW   r   r   r	   r	   r
   !test_if_sheet_exists_append_modes   s.   
"r   z%startrow, startcol, greeting, goodbyepooprd   goodbyepeoplerc   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 )Nrc   rd   r   r   )greetingr   r   r   pooFr   rg   r   r   r<   )r   headerstartrowstartcolrG   rG   r]   )r   rK   rL   r`   r   ry   rz   r   )r   r   r   r   r   r   r   ra   rW   r   r|   r	   r	   r
   %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 )
Nri   r   re   r   r   r   rg   r   rF   )
r   rK   rL   rn   ro   
ValueErrorrq   rr   r`   r   )r   r   msgr   ra   rW   r	   r	   r
   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blackr	   )r@   r	   r	   r
   <lambda>$  s    z4test_to_excel_with_openpyxl_engine.<locals>.<lambda>r   r   )rK   rL   r   nplinspacery   concatr(   maphighlight_maxr`   )r   r   r   r   r   styledr	   r	   r
   "test_to_excel_with_openpyxl_engine  s   "r   c                 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 )Nr   r   r   r   r   r   r   )r   r   r   r   ry   rz   rK   r   )r   r   r   r   r   r   r|   r	   r	   r
   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   	ry   rz   r   r   r   r   r   rK   r   )
r   r   r   expected_datar   r   rV   r   r   r|   r	   r	   r
   test_read_with_bad_dimension6  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   rg   r   )rk   r]   r   s   docProps/app.xmlr<   )r   rK   rL   r`   r   r   
read_bytesfind)r   r   ra   rW   r   firstsecondthirdr	   r	   r
   test_append_mode_fileY  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   )ry   rz   r   r   r   r   r   r   nanrK   r   r   r   r   rV   r   r   r|   r	   r	   r
   "test_read_with_empty_trailing_rowso  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   r	   r	   r
   test_read_empty_with_blank_row  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   )rK   rL   r   rN   r_   r   )r   ra   rW   r   r	   r	   r
   test_book_and_sheets_consistent  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   )ry   rz   r   rangerK   r   r   r   rV   r   r|   r	   r	   r
   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  rI   )XXYYrH   )r  r  rw   )r   AAAAA)r   BBBBB)r   r   )	ry   rz   r   r   r   
MultiIndexfrom_tuplesrK   r   r   r	   r	   r
   *test_read_multiindex_header_no_index_names  s   r
  )0r   pathlibr   rq   numpyr   rn   pandas.compatr   rC   ry   r   pandas._testing_testingrK   pandas.io.excelr   r   pandas.io.excel._openpyxlr   importorskipr   mark
single_cpu
pytestmarkfixturer   r8   r[   parametrizerb   rs   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r
  r	   r	   r	   r
   <module>   s    

!"






	



	