a
    é´«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ƒ rŒe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	   úb/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/io/excel/test_openpyxl.pyÚext   s    r   c                  C   s4  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sÚJ ‚|d |ksêJ ‚|d |ksúJ ‚|d |k�sJ ‚|d |	k�sJ ‚|d |
k�s0J ‚d S )Nr   )ÚstylesÚ00FF0000T©ÚcolorÚboldZthin)ÚtopÚrightÚbottomÚleftÚcenterr   )Ú
horizontalÚverticalZsolidZ006666FFg333333Ó?)ÚrgbZtint)ZpatternTypeZfgColorZformat_codez0.00F)ÚlockedÚhidden)ÚfontÚbordersÚ	alignmentÚfillÚnumber_formatÚ
protection)r   r   )Ústyler   Úborderr   r   r   r    )r   r   ÚColorZFontZSider   ZBORDER_THINZBorderZ	AlignmentZPatternFillZ
Protectionr   Ú_convert_to_style_kwargs)r   ZhstyleZ
font_colorr   Zsider"   r   Z
fill_colorr   r   r    Úkwr	   r	   r
   Útest_to_excel_styleconverter   s0    ú	

r&   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 | ¡�Œ}
t|
ƒ�6}|j||d� |j|	|d� |j| }W d   ƒ n1 sÎ0    Y  |d }|d }|j|ksöJ ‚|j|k�sJ ‚W d   ƒ n1 �s0    Y  d S )Nr   )Ú	ExcelCellZmerge_styledr   r   r   Z0000FF00é   é*   )ÚcolÚrowÚvalr!   éc   Z000000FFTr   Úpandas)r*   r+   r,   Z
mergestartZmergeendr!   ©Ú
sheet_nameÚB1ÚA2)	Zpandas.io.formats.excelr'   r   r$   ÚtmÚensure_cleanZ_write_cellsÚsheetsr   )r   r'   r0   Zsty_b1Zsty_a2Zinitial_cellsZ
sty_mergedZ
sty_kwargsZopenpyxl_sty_mergedZmerge_cellsÚpathÚwriterZwksZxcell_b1Zxcell_a2r	   r	   r
   Útest_write_cells_merge_styled@   s.    þ
ÿÿ
(r8   Ú	iso_datesTFc              	   C   s€   d|i}t  | ¡�Z}t|d|d��,}|jj|ks4J ‚tƒ  |¡ W d   ƒ n1 sT0    Y  W d   ƒ n1 sr0    Y  d S )Nr9   r   )ÚengineÚengine_kwargs)r3   r4   r   Úbookr9   r   Úto_excel)r   r9   r;   Úfr7   r	   r	   r
   Útest_engine_kwargs_writeb   s
    r?   c              
   C   s¼   t  | ¡�ž}tddgƒ |¡ tjtt d¡d��X t	|ddddid	��$}td
gƒj|dd� W d   ƒ n1 sr0    Y  W d   ƒ n1 s�0    Y  W d   ƒ n1 s®0    Y  d S )NÚhelloÚworldzAload_workbook() got an unexpected keyword argument 'apple_banana'©Úmatchr   ÚaZapple_bananaÚfruit©r:   Úmoder;   ZgoodÚSheet2r/   )
r3   r4   r   r=   ÚpytestÚraisesÚ	TypeErrorÚreÚescaper   )r   r>   r7   r	   r	   r
   Ú!test_engine_kwargs_append_invalidm   s    ÿþÿrN   zdata_only, expected)Tr   )Fú=1+1c              	   C   s¾   t  | ¡� }tdgƒ |¡ t|ddd|id��8}|jd d j|ksJJ ‚tƒ j|dd	� W d   ƒ n1 sn0    Y  tj|ddd|id
�j	d |ksœJ ‚W d   ƒ n1 s°0    Y  d S )NrO   r   rD   Ú	data_onlyrF   ZSheet1ÚB2rH   r/   )r0   r:   r;   )r   r(   )
r3   r4   r   r=   r   r5   ÚvalueÚpdÚ
read_excelZiloc)r   rP   Úexpectedr>   r7   r	   r	   r
   Ú#test_engine_kwargs_append_data_only   s&    ÿ.üûúÿrV   Ú
kwarg_nameÚ	read_onlyrP   Úkwarg_valuec                 C   s`   | dddd| ƒ}t  t|||id�¡�$}t|j|ƒ|ks>J ‚W d   ƒ n1 sR0    Y  d S )NÚioÚdataÚexcelÚtest1)r;   )Ú
contextlibÚclosingr   Úgetattrr<   )Údatapathr   rW   rY   ÚfilenameÚreaderr	   r	   r
   Ú test_engine_kwargs_append_readerš   s    ÿrd   zmode,expectedÚwÚbazrD   )ÚfooÚbarrf   c              	   C   s@  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 sš0    Y  t t |¡¡�V}dd„ |jD ƒ}||ksÒJ ‚t|ƒD ] \}	}
|j|	 d j|
ksÚJ ‚qÚW d   ƒ n1 �s0    Y  W d   ƒ n1 �s20    Y  d S )Nr(   rf   ©Úcolumnsrg   r   ÚA1rh   r   )r:   rG   F©r0   Úindexc                 S   s   g | ]
}|j ‘qS r	   )Útitle)Ú.0Úsheetr	   r	   r
   Ú
<listcomp>¹   ó    z*test_write_append_mode.<locals>.<listcomp>)r   r3   r4   r   ZWorkbookZ
worksheetsrn   rR   Úcreate_sheetÚsaver   r=   r^   r_   Úload_workbookÚ	enumerate)r   rG   rU   Údfr>   Úwbr7   Zwb2Úresultrm   Z
cell_valuer	   r	   r
   Útest_write_append_mode§   s    

.rz   z#if_sheet_exists,num_sheets,expectedÚnewé   ÚappleÚbananaÚreplacer(   ÚpearÚoverlayc           
   	   C   sN  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 st0    Y  t t |¡¡�Š}t	|j
ƒ|ks¢J ‚|j
d dks´J ‚tj|ddd�}	t|	d ƒ|ksØJ ‚t	|j
ƒdk�r
tj||j
d dd�}	t |	|¡ W d   ƒ n1 �s 0    Y  W d   ƒ n1 �s@0    Y  d S )NrE   r}   r~   r€   r   rg   F©r:   r0   rm   rD   ©r:   rG   Úif_sheet_existsrl   r   ©r:   r|   r(   )r   r3   r4   r=   r   r^   r_   r   ru   ÚlenZ
sheetnamesrS   rT   ÚlistÚassert_frame_equal)
r   r„   Z
num_sheetsrU   Údf1Údf2r>   r7   rx   ry   r	   r	   r
   Ú!test_if_sheet_exists_append_modesÀ   s"    
ÿ.r‹   z%startrow, startcol, greeting, goodbyeÚpooprA   ÚgoodbyeÚpeopler@   c              
   C   sÔ   t ddgddgdœƒ}t dgƒ}t | ¡�–}|j|ddd	d
� t|dddd��*}|j|d	d	|d |dd� W d   ƒ n1 s~0    Y  tj|ddd�}	t ||dœƒ}
t |	|
¡ W d   ƒ n1 sÆ0    Y  d S )Nr@   rA   r�   rŽ   )Úgreetingr�   rŒ   r   ZpooFr‚   rD   r�   rƒ   r(   )rm   ÚheaderÚstartrowÚstartcolr0   ©r0   r:   )r   r3   r4   r=   r   rS   rT   rˆ   )r   r‘   r’   r�   r�   r‰   rŠ   r>   r7   ry   rU   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 | ¡�’}tjtt |¡d��^ |j|ddd� t	|dd|d��}|j|dd	� W d   ƒ n1 st0    Y  W d   ƒ n1 s’0    Y  W d   ƒ n1 s°0    Y  d S )
NrE   r€   rB   rg   r   r“   rD   rƒ   r/   )
r   r3   r4   rI   rJ   Ú
ValueErrorrL   rM   r=   r   )r   r„   Úmsgrw   r>   r7   r	   r	   r
   Útest_if_sheet_exists_raisesÿ   s    ÿrš   c                 C   sŽ   t  | ¡�p}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   ƒ n1 s€0    Y  d S )NÚAr(   é
   ÚBé   )Zaxisc                 S   s   d| dk rdnd› �S )Nzcolor: r   ÚredÚblackr	   )r,   r	   r	   r
   Ú<lambda>$  rr   z4test_to_excel_with_openpyxl_engine.<locals>.<lambda>r   r…   )r3   r4   r   ÚnpZlinspacerS   Úconcatr!   ÚmapZhighlight_maxr=   )r   rb   r‰   rŠ   rw   Ú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 sJ0    Y  t |¡}t ||¡ d S )NrZ   r[   r\   r]   ©rX   r   r…   )r^   r_   r   ru   rS   rT   r3   rˆ   )ra   r   rX   rb   rx   ry   rU   r	   r	   r
   Útest_read_workbook*  s    ÿ,
r¨   zheader, expected_datar›   é   r�   é   é   é   ÚCé   é   é	   ©ZTitlez
Unnamed: 1z
Unnamed: 2)r(   r|   r©   )rª   r«   r¬   )r®   r¯   r°   )r›   r�   r­   rb   )Zdimension_missingZdimension_smallZdimension_large)TFNc           
      C   sŠ   | ddd|› |› �ƒ}|d u r.t j||d�}nDt tj||d�¡� }t j|d|d�}W d   ƒ n1 sh0    Y  t|ƒ}	t ||	¡ d S )NrZ   r[   r\   )r�   r§   r   )r:   r�   ©	rS   rT   r^   r_   r   ru   r   r3   rˆ   )
ra   r   r�   Zexpected_datarb   rX   r6   ry   rx   rU   r	   r	   r
   Útest_read_with_bad_dimension6  s    ÿ.r³   c              	   C   sÆ   t ƒ }t | ¡�¢}|j|dd� t|dddd��}| |¡ W d   ƒ n1 sP0    Y  t|ƒ ¡ }| d¡}| d|d ¡}| d|d ¡}|dkr |dks¤J ‚W d   ƒ n1 s¸0    Y  d S )	Nr   r…   rD   r{   )rG   r:   r„   s   docProps/app.xmlr(   éÿÿÿÿ)r   r3   r4   r=   r   r   Ú
read_bytesÚfind)r   rw   r>   r7   r[   ÚfirstÚsecondÚthirdr	   r	   r
   Útest_append_mode_fileY  s    ÿ(
rº   c                 C   s®   | dddd|› �ƒ}|d u r(t  |¡}nBt tj||d�¡�}t j|dd�}W d   ƒ n1 s`0    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 )NrZ   r[   r\   Zempty_trailing_rowsr§   r   r…   r›   r(   r|   r©   r�   rª   r«   r¬   r­   r®   r¯   r°   r±   )rS   rT   r^   r_   r   ru   r   r¢   Únanr3   rˆ   ©ra   r   rX   r6   ry   rx   rU   r	   r	   r
   Ú"test_read_with_empty_trailing_rowso  s    ÿ,ýÿr½   c                 C   s€   | dddd|› �ƒ}|d u r(t  |¡}nBt tj||d�¡�}t j|dd�}W d   ƒ n1 s`0    Y  tƒ }t ||¡ d S )NrZ   r[   r\   Zempty_with_blank_rowr§   r   r…   r²   r¼   r	   r	   r
   Útest_read_empty_with_blank_row…  s    ÿ,r¾   c              	   C   sˆ   t  | ¡�j}t|dd��>}|ji ks(J ‚|j dd¡}|jd|iksHJ ‚W d   ƒ n1 s\0    Y  W d   ƒ n1 sz0    Y  d S )Nr   r…   Z	test_namer   )r3   r4   r   r5   r<   rs   )r   r>   r7   rp   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 )	NrZ   r[   r\   Zints_spelled_with_decimalsr|   é   r(   ri   )rS   rT   r   Úranger3   rˆ   ©ra   r   r6   ry   rU   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 )NrZ   r[   r\   Zmultiindex_no_index_names)r   r(   r|   )Z	index_colr�   Úx))ÚXÚYrk   )rÅ   rÆ   r2   )ÚXXÚYYr1   )rÇ   rÈ   rQ   )r›   ZAAZAAA)r›   ÚBBZBBB)rj   rm   )	rS   rT   r   r¢   r»   Z
MultiIndexÚfrom_tuplesr3   rˆ   rÂ   r	   r	   r
   Ú*test_read_multiindex_header_no_index_names¥  s    ÿûrË   )0r^   Úpathlibr   rL   Únumpyr¢   rI   Zpandas.compatr   r.   rS   r   Zpandas._testingZ_testingr3   Zpandas.io.excelr   r   Zpandas.io.excel._openpyxlr   Zimportorskipr   ÚmarkZ
single_cpuZ
pytestmarkZfixturer   r&   r8   Zparametrizer?   rN   rV   rd   rz   r‹   r”   rš   r¦   r¨   r»   r³   rº   r½   r¾   r¿   rÃ   rË   r	   r	   r	   r
   Ú<module>   sœ   

!"


ÿ

ýþ
üþ	
þ

ýþ÷þÿ

	