o
    Û­j{;  ã                   @   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/html/CropPilot/venv/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s…J ‚|d |	ks�J ‚|d |
ks•J ‚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s‚J ‚W d   ƒ d S 1 s�w   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 s‡w   Y  W d   ƒ d S W d   ƒ d S 1 sŸw   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rƒtj||j
d dd�}	t |	|¡ W d   ƒ n1 s�w   Y  W d   ƒ d S W d   ƒ d S 1 s¥w   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'.)ÚerrorúASheet '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ž    

!"


ÿ

ýþ
üþ
	þ

ýþ÷þÿ

	