a
    nÝEb–3  ã                   @   s”  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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/d0gfd d'd1d.gd-d0gfd'd d1d-gd/d0gfd'd'd1d.gd/d-gfg¡d2d3„ ƒZej d4g d5¢¡d6d7„ ƒZd8d9„ Zej d:ddg¡d;d<„ ƒZej d=d ej d>d'd#d?gej d@dAdBdCgej dDdEdFdGgdHœfd#g dI¢g dJ¢g dK¢dLœfg¡ej dMg dN¢¡ej d:g dO¢¡dPdQ„ ƒƒƒZ!dRdS„ Z"ej d:g dO¢¡dTdU„ ƒZ#ej d:g dO¢¡dVdW„ ƒZ$dS )Xé    )ÚPathN)Ú	DataFrame)ÚExcelWriterÚ_OpenpyxlWriterÚopenpyxlÚextz.xlsxc                 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   r   ZhstyleZ
font_colorr   Zsider   r   Z
fill_colorr   r   r   Úkw© r"   úc/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/io/excel/test_openpyxl.pyÚ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_nameZB1ÚA2)	Zpandas.io.formats.excelr%   r   r    ÚtmÚensure_cleanZwrite_cellsÚsheetsr   )r   r%   r.   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_styled6   s.    þ
ÿÿ
(r5   Ú	iso_datesTFc              
   C   s¾   d|i}t  | ¡�˜}t d¡}t jt|d��` t|fddi|¤Ž�,}|jj|ksTJ ‚t	ƒ  
|¡ W d   ƒ n1 st0    Y  W d   ƒ n1 s’0    Y  W d   ƒ n1 s°0    Y  d S )Nr6   zUse of **kwargs is deprecated©ÚmatchÚenginer   )r0   r1   ÚreÚescapeZassert_produces_warningÚFutureWarningr   Úbookr6   r   Úto_excel)r   r6   ÚkwargsÚfÚmsgr4   r"   r"   r#   Útest_kwargsX   s    
rB   c              	   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 )Nr6   r   )r9   Úengine_kwargs)r0   r1   r   r=   r6   r   r>   )r   r6   rC   r@   r4   r"   r"   r#   Útest_engine_kwargs_writee   s
    rD   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'r7   r   ÚaZapple_bananaÚfruit©r9   ÚmoderC   ZgoodÚSheet2r-   )
r0   r1   r   r>   ÚpytestÚraisesÚ	TypeErrorr:   r;   r   )r   r@   r4   r"   r"   r#   Ú!test_engine_kwargs_append_invalidp   s    ÿþÿrO   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  W d   ƒ n1 sŒ0    Y  d S )
NrP   r   rG   Ú	data_onlyrI   ZSheet1ZB2rK   r-   )r0   r1   r   r>   r   r2   Úvalue)r   rQ   Úexpectedr@   r4   r"   r"   r#   Ú#test_engine_kwargs_append_data_only‚   s    ÿrT   zmode,expectedÚwÚbazrG   )ÚfooÚbarrV   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 |¡}dd„ |jD ƒ}||ksÈJ ‚t|ƒD ] \}	}
|j|	 d j|
ksÐJ ‚qÐW d   ƒ n1 �s0    Y  d S )Nr&   rV   )ÚcolumnsrW   r   ÚA1rX   r   )r9   rJ   F©r.   Úindexc                 S   s   g | ]
}|j ‘qS r"   )Útitle)Ú.0Zsheetr"   r"   r#   Ú
<listcomp>£   ó    z*test_write_append_mode.<locals>.<listcomp>)r   r0   r1   r   ZWorkbookZ
worksheetsr]   rR   Zcreate_sheetÚsaver   r>   Úload_workbookÚ	enumerate)r   rJ   rS   Údfr@   Úwbr4   Zwb2Úresultr\   Z
cell_valuer"   r"   r#   Útest_write_append_mode‘   s    

.
rg   z#if_sheet_exists,num_sheets,expectedÚnewé   ÚappleÚbananaÚreplacer&   ÚpearÚoverlayc           
   	   C   s*  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 sr0    Y  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  d S )NrH   rj   rk   rm   r   rW   F©r9   r.   r\   rG   ©r9   rJ   Úif_sheet_existsr[   r   ©r9   ri   r&   )r   r0   r1   r>   r   r   rb   ÚlenZ
sheetnamesÚpdÚ
read_excelÚlistÚassert_frame_equalÚclose)
r   rq   Z
num_sheetsrS   Údf1Údf2r@   r4   re   rf   r"   r"   r#   Ú!test_if_sheet_exists_append_modesª   s$    
ÿ.
r{   z%startrow, startcol, greeting, goodbyeÚpooprF   ÚgoodbyeÚpeoplerE   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 )NrE   rF   r}   r~   )Úgreetingr}   r|   r   ZpooFro   rG   rn   rp   r&   )r\   ÚheaderÚstartrowÚstartcolr.   )r.   r9   )r   r0   r1   r>   r   rt   ru   rw   )r   r�   r‚   r   r}   ry   rz   r@   r4   rf   rS   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 )
NrH   rm   r7   rW   r   rr   rG   rp   r-   )
r   r0   r1   rL   rM   Ú
ValueErrorr:   r;   r>   r   )r   rq   rA   rd   r@   r4   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: %sr   ÚredÚblackr"   )r*   r"   r"   r#   Ú<lambda>  r`   z4test_to_excel_with_openpyxl_engine.<locals>.<lambda>r   rr   )r0   r1   r   ÚnpZlinspacert   Úconcatr   ZapplymapZhighlight_maxr>   )r   Úfilenamery   rz   rd   Ústyledr"   r"   r#   Ú"test_to_excel_with_openpyxl_engine  s    ÿr”   Ú	read_onlyc                 C   sP   | dddd| ƒ}t j||d�}tj|dd�}| ¡  t |¡}t ||¡ d S )NÚioÚdataÚexcelZtest1©r•   r   rr   )r   rb   rt   ru   rx   r0   rw   )Údatapathr   r•   r’   re   rf   rS   r"   r"   r#   Útest_read_workbook  s    
r›   zheader, expected_datar‰   é   r‹   é   é   é   ÚCé   é   é	   ©ZTitlez
Unnamed: 1z
Unnamed: 2)r&   ri   rœ   )r�   rž   rŸ   )r¡   r¢   r£   )r‰   r‹   r    r’   )Zdimension_missingZdimension_smallZdimension_large)TFNc                 C   sl   | ddd|› |› �ƒ}|d u r.t j||d�}n&tj||d�}	t j|	d|d�}|	 ¡  t|ƒ}
t ||
¡ d S )Nr–   r—   r˜   )r€   r™   r   )r9   r€   ©rt   ru   r   rb   rx   r   r0   rw   )rš   r   r€   Zexpected_datar’   r•   Úrequestr3   rf   re   rS   r"   r"   r#   Útest_read_with_bad_dimension!  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   rr   rG   rh   )rJ   r9   rq   s   docProps/app.xmlr&   éÿÿÿÿ)r   r0   r1   r>   r   r   Ú
read_bytesÚfind)r   rd   r@   r4   r—   ÚfirstÚsecondÚthirdr"   r"   r#   Útest_append_mode_fileC  s    ÿ(
r®   c                 C   s�   | dddd|› �ƒ}|d u r(t  |¡}n$tj||d�}t j|dd�}| ¡  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˜   Zempty_trailing_rowsr™   r   rr   r‰   r&   ri   rœ   r‹   r�   rž   rŸ   r    r¡   r¢   r£   r¤   )
rt   ru   r   rb   rx   r   r�   Únanr0   rw   )rš   r   r•   r¦   r3   rf   re   rS   r"   r"   r#   Ú"test_read_with_empty_trailing_rowsY  s    ýÿr°   c                 C   sb   | dddd|› �ƒ}|d u r(t  |¡}n$tj||d�}t j|dd�}| ¡  tƒ }t ||¡ d S )Nr–   r—   r˜   Zempty_with_blank_rowr™   r   rr   r¥   )rš   r   r•   r3   rf   re   rS   r"   r"   r#   Útest_read_empty_with_blank_rown  s    r±   )%Úpathlibr   r:   Únumpyr�   rL   r,   rt   r   Zpandas._testingZ_testingr0   Zpandas.io.excelr   r   Zimportorskipr   ÚmarkZparametrizeZ
pytestmarkr$   r5   rB   rD   rO   rT   rg   r{   rƒ   rˆ   r”   r›   r¯   r§   r®   r°   r±   r"   r"   r"   r#   Ú<module>   sˆ   
!"



ÿ

ýþ
üþ	
þ


ýþ÷þÿ
