U
    ¾mœdÀ»  ã                   @   s4  d dl mZm Z mZ d dlm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  mZ d dlZd dlmZmZmZmZ d dlmZ d dlmZmZmZmZmZ d dlm Z  ej!dd	„ ƒZ"ej!d
d„ ƒZ#ej$ %dej&de 'd¡e 'd¡gd�ej&de 'd¡e 'd¡gd�ej&de 'd¡e 'd¡gd�ej&de 'd¡d�g¡G dd„ dƒƒZ(ej$ %dej&dde 'd¡e 'd¡gd�ej&dde 'd¡e 'd¡gd�ej&dde 'd¡e 'd¡gd�ej&dde 'd¡d�g¡ej$ )d¡G dd„ dƒƒƒZ*G dd„ dƒZ+e 'd¡e 'd¡G dd„ dƒƒƒZ,ej$ %de  -¡ ¡dd „ ƒZ.dS )!é    )ÚdateÚdatetimeÚ	timedelta)Úpartial)ÚBytesION)Ú	DataFrameÚIndexÚ
MultiIndexÚoption_context)Ú	ExcelFileÚExcelWriterÚ_OpenpyxlWriterÚ_XlsxWriterÚregister_writer)Ú_writersc              	   c   s    t  | ¡�}|V  W 5 Q R X dS )z9
    Fixture to open file for use in each test case.
    N)ÚtmÚensure_clean)ÚextÚ	file_path© r   ú[/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/io/excel/test_writers.pyÚpath#   s    r   c              	   c   s2   d|  d¡› d�}t|| ƒ� dV  W 5 Q R X dS )aM  
    Fixture to set engine for use in each test case.

    Rather than requiring `engine=...` to be provided explicitly as an
    argument in each test, this fixture sets a global option to dictate
    which engine should be used to write Excel files. After executing
    the test it rolls back said change to the global option.
    z	io.excel.Ú.z.writerN)Ústripr
   )Úenginer   Zoption_namer   r   r   Ú
set_engine,   s    
r   r   ú.xlsxÚopenpyxlZxlrd©Zmarksz.xlsmÚ
xlsxwriterz.odsZodfc                	   @   s  e Zd Zej ddeejgd ƒfdedejgd iƒfg¡dd„ ƒZ	ej ddedgejgd  ƒfdeejgd ƒfg¡d	d
„ ƒZ
dd„ Zdd„ Zdd„ Zej dddg¡ej dddg¡ej dddg¡ej dddg¡dd„ ƒƒƒƒZdd„ Zdd„ ZdS )ÚTestRoundTripzheader,expectedNé   r   z
Unnamed: 0é   c              	   C   sx   d}t dddgdddgdddgdd	d
ggƒ}t |¡�,}|j||ddd� tj||dg|d�}W 5 Q R X t ||¡ d S )NZ	no_headerÚ é   éd   é   éÈ   r"   é,  r!   é�  F©ÚindexÚheaderr   ©Ú
sheet_nameZusecolsr,   ©r   r   r   Úto_excelÚpdÚ
read_excelÚassert_frame_equal©Úselfr   r,   ÚexpectedÚfilenameÚdfr   Úresultr   r   r   Ú!test_read_one_empty_col_no_headerG   s    (   ÿz/TestRoundTrip.test_read_one_empty_col_no_headerc              	   C   sx   d}t dddgdddgdddgdd	d
ggƒ}t |¡�,}|j|dddd� tj||dg|d�}W 5 Q R X t ||¡ d S )NZwith_headerr#   r$   r%   r&   r'   r"   r(   r!   r)   FTr*   r   r-   r/   r4   r   r   r   Ú#test_read_one_empty_col_with_headerX   s    (   ÿz1TestRoundTrip.test_read_one_empty_col_with_headerc              
   C   sÔ   t ddgddgddggddgd	�}t |¡�ž}t|ƒ�(}|j|d
ddd� |j|ddd� W 5 Q R X ddg|_t|ƒ�2}tj|d
d ddgd�}tj|dd ddgd�}W 5 Q R X t 	||¡ t 	||¡ W 5 Q R X d S )Nr$   Úfoor&   Úbarr"   ZbazÚaÚb©ÚcolumnsZData_no_headF)r,   r+   ZData_with_head©r+   ÚAÚB)r.   r,   Únames)r.   Ú	index_colrE   )
r   r   r   r   r0   rA   r   r1   r2   r3   )r5   r   ZrefdfÚpthÚwriterÚreaderZxlsdf_no_headZxlsdf_with_headr   r   r   Ú"test_set_column_names_in_parameterh   s*    "


   ÿüz0TestRoundTrip.test_set_column_names_in_parameterc           
   
      s¬   dd„ ‰ dddg}‡ fdd„|D ƒ}t t||ƒƒ}t |¡�f}t|ƒ�$}| ¡ D ]\}}| ||¡ qPW 5 Q R X tj||dd	�}|D ]}	t 	||	 ||	 ¡ q„W 5 Q R X d S )
Nc                 S   s&   dddgdddg }}t ||| gd�S )Né   é   é!   r$   r&   r"   r@   )r   )Zcol_sheet_nameÚdÚir   r   r   Útdf‡   s    zDTestRoundTrip.test_creating_and_reading_multiple_sheets.<locals>.tdfZAAAZBBBZCCCc                    s   g | ]}ˆ |ƒ‘qS r   r   )Ú.0Ús©rP   r   r   Ú
<listcomp>�   s     zKTestRoundTrip.test_creating_and_reading_multiple_sheets.<locals>.<listcomp>r   ©r.   rF   )
ÚdictÚzipr   r   r   Úitemsr0   r1   r2   r3   )
r5   r   ÚsheetsÚdfsrG   ÚewZ	sheetnamer8   Zdfs_returnedrR   r   rS   r   Ú)test_creating_and_reading_multiple_sheets‚   s    

z7TestRoundTrip.test_creating_and_reading_multiple_sheetsc              	   C   sö   t  |¡�â}tddiddiddiddidœƒ}tddiddiddiddidœƒ}| |¡ tj|ddgdd�}t  ||¡ tddiddiddiddidœƒ}tddiddiddiddid	œƒ}| |¡ tj|ddgdd�}t  ||¡ W 5 Q R X d S )
Nr   r$   r"   é   )©ZOneÚx©ÚTwoÚX©ra   ÚY)ÚZeror#   )r^   r`   rc   )re   zUnnamed: 4_level_1©r,   rF   ))ÚBegr#   ©ZMiddler_   ©ÚTailrb   ©rj   rd   ))rg   zUnnamed: 1_level_1rh   ri   rk   ©r   r   r   r0   r1   r2   r3   )r5   r   r   r8   r6   Úactualr   r   r   Ú&test_read_excel_multiindex_empty_levelš   sF    üÿ	üÿ	
üÿ	üÿ	
z4TestRoundTrip.test_read_excel_multiindex_empty_levelÚc_idx_namesTFÚr_idx_namesÚc_idx_levelsr$   Úr_idx_levelsc              	   C   sD  t  |¡��.}|dkr@|r@|dkr&|r@tjjdd�}|j |¡ |pJ|dk}	t  dd||||¡}
|
 |¡ t	j
|tt|ƒƒtt|ƒƒd�}t j|
||	d� tj|
jdd d …f< |
 |¡ t	j
|tt|ƒƒtt|ƒƒd�}t j|
||	d� tj|
jd	d d …f< |
 |¡ t	j
|tt|ƒƒtt|ƒƒd�}t j|
||	d� W 5 Q R X d S )
Nr$   r"   z?Column index name cannot be serialized unless it's a MultiIndex)Úreasoné   )rF   r,   )Úcheck_namesr   éÿÿÿÿ)r   r   ÚpytestÚmarkZxfailÚnodeZ
add_markerÚmakeCustomDataframer0   r1   r2   ÚlistÚranger3   ÚnpÚnanÚiloc)r5   r   ro   rp   rq   rr   ÚrequestrG   rx   ru   r8   Zactr   r   r   Útest_excel_multindex_roundtripÉ   sT    ÿÿÿ     ÿ


ý


ý


ýz,TestRoundTrip.test_excel_multindex_roundtripc              
   C   sø   t dddgtjddd�dœƒ}| ¡ }|d j d¡|d< t |¡�ª}| |¡ tj	|d	d
�}t 
||¡ tj	|dgd	d�}t 
||¡ dd„ }tjtdd�� tj	|dg|d	d�}W 5 Q R X t 
||¡ tj	|dgdd	d�}t 
||¡ W 5 Q R X d S )Nr$   r&   r"   z
2012-01-01)Úperiods)ÚcolÚdate_stringsr„   ú%m/%d/%Yr   ©rF   )Úparse_datesrF   c                 S   s   t  | d¡S )Nr…   )r   Ústrptime©r_   r   r   r   Ú<lambda>  ó    z;TestRoundTrip.test_read_excel_parse_dates.<locals>.<lambda>zuse 'date_format' instead©Úmatch)r‡   Údate_parserrF   )r‡   Údate_formatrF   )r   r1   Z
date_rangeÚcopyÚdtÚstrftimer   r   r0   r2   r3   Zassert_produces_warningÚFutureWarning)r5   r   r8   Zdf2rG   ÚresrŽ   r   r   r   Útest_read_excel_parse_datesþ   s<    ÿ
 ÿü   ÿz)TestRoundTrip.test_read_excel_parse_datesc              	   C   sš   t  tdƒtjt d¡ddd�g¡}ttdƒ|d�}t |¡�"}| 	|¡ tj
|ddgd�}W 5 Q R X ttdƒt  tdƒd	d
ddgg¡ƒ}t ||¡ d S )Nr!   z
2020-01-01Z6M)Ústartr‚   ÚfreqrB   r   r$   r†   z(2020-01-31, 2020-07-31]z(2020-07-31, 2021-01-31]z(2021-01-31, 2021-07-31]z(2021-07-31, 2022-01-31])r	   Úfrom_arraysr|   r1   Zinterval_rangeÚ	Timestampr   r   r   r0   r2   r3   )r5   r   Zmidxr8   rG   r9   r6   r   r   r   Ú"test_multiindex_interval_datetimes  s4      ÿþÿ
üþÿþz0TestRoundTrip.test_multiindex_interval_datetimes)Ú__name__Ú
__module__Ú__qualname__rw   rx   Úparametrizer   r}   r~   r:   r;   rJ   r\   rn   r�   r•   rš   r   r   r   r   r    ;   s(   *þ
,þ
/1!r    z
engine,extc                   @   sJ  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	e
j dejejejejg¡dd„ ƒZe
j dejejejg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Z d(d)„ Z!d*d+„ Z"d,d-„ Z#d.d/„ Z$d0d1„ Z%d2d3„ Z&d4d5„ Z'd6d7„ Z(d8d9„ Z)d:d;„ Z*d<d=„ Z+e
j d>d?d@g¡e
j dAdBdCdDg¡e
j dEdBdCdDg¡dFdG„ ƒƒƒZ,dHdI„ Z-dJdK„ Z.dLdM„ Z/e
j dNdOdPg¡dQdR„ ƒZ0dSdT„ Z1dUdV„ Z2dWdX„ Z3dYdZ„ Z4d[d\„ Z5d]d^„ Z6d_d`„ Z7dadb„ Z8dcdd„ Z9dedf„ Z:dgdh„ Z;didj„ Z<dkdl„ Z=e
j dmdne>g¡dodp„ ƒZ?dqdr„ Z@dsdt„ ZAdudv„ ZBdwdx„ ZCdnS )yÚTestExcelWriterc           	   	   C   sˆ   d}d}t j|dfd�}t jd|fd�}t|ƒ}t|ƒ}d}tjt|d�� | |¡ W 5 Q R X tjt|d�� | |¡ W 5 Q R X d S )Ni  i@  r$   )Úshapezsheet is too largerŒ   )r}   Zzerosr   rw   ÚraisesÚ
ValueErrorr0   )	r5   r   Zbreaking_row_countZbreaking_col_countZrow_arrZcol_arrZrow_dfZcol_dfÚmsgr   r   r   Útest_excel_sheet_sizeU  s    z%TestExcelWriter.test_excel_sheet_sizec              	   C   sz   t tj dd¡ƒ}| |¡ t|ƒ�}tj|ddd�}W 5 Q R X t 	||¡ d}t
jt|d�� t |d¡ W 5 Q R X d S )Né
   r&   r   rU   zWorksheet named '0' not foundrŒ   Ú0)r   r}   ÚrandomÚrandnr0   r   r1   r2   r   r3   rw   r¡   r¢   )r5   r   ÚgtÚxlr8   r£   r   r   r   Útest_excel_sheet_by_name_raisef  s    

z.TestExcelWriter.test_excel_sheet_by_name_raisec              	   C   s–   t |ƒ�8}| |d¡ | ¡ }|jd d d… |_| |d¡ W 5 Q R X t|ƒ�>}tj|ddd�}tj|ddd�}t ||¡ t ||¡ W 5 Q R X d S )NZData1rv   ZData2r   rU   )	r   r0   r�   rA   r   r1   r2   r   r3   )r5   Úframer   rH   Úframe2rI   Zfound_dfZ	found_df2r   r   r   Ú!test_excel_writer_context_managers  s    

z1TestExcelWriter.test_excel_writer_context_managerc                 C   sÒ  |  ¡ }tj|jd d…|j d¡f< | |d¡ |j|dddgd� |j|ddd� |j|ddd� | |d¡ tj|dd	d
�}t	 
||¡ |j|ddd� tj|dd d
�}|j|_t	 
||¡ |j|ddd� tj|dd	dgd�}t	 
||¡ |j|ddd� tj|dd	dgd�}t	 
||¡ |j|ddd� tj|dd	ddgd�}t	 
||¡ | |d¡ tj|d	d�}t	 
||¡ | |d¡ tj|d	d�}t	 
||¡ |d }| |¡ tj|d	d�}t	 
| ¡ |¡ d S )Nrt   rC   Útest1rD   r@   F©r,   rB   r   rU   ZNA)Zna_rep)r.   rF   Z	na_valuesZ88éX   g      V@ÚSheet1r†   r¦   )r�   r}   r~   r   rA   Úget_locr0   r1   r2   r   r3   r+   Zto_frame)r5   r¬   r   ÚreconsrR   r   r   r   Útest_roundtrip�  sJ       ÿ
zTestExcelWriter.test_roundtripc              	   C   sP   |  ¡ }d|d< | |d¡ t|ƒ�}tj|ddd�}W 5 Q R X t ||¡ d S )Nr=   r<   r¯   r   rU   )r�   r0   r   r1   r2   r   r3   )r5   r¬   r   Zmixed_framerI   r´   r   r   r   Ú
test_mixed²  s    
zTestExcelWriter.test_mixedc              	   C   s`   |}t jt |j¡d d�}||_| |d¡ t|ƒ�}t j|ddd�}W 5 Q R X t 	||¡ d S )N©r—   r¯   r   rU   )
r1   ÚDatetimeIndexr}   Úasarrayr+   r0   r   r2   r   r3   )r5   Útsframer   r8   r+   rI   r´   r   r   r   Útest_ts_frame»  s    
zTestExcelWriter.test_ts_framec                 C   sh   |  ¡ }tj|jd d…|j d¡f< | |d¡ |j|dddgd� |j|ddd� |j|ddd� d S )	Nrt   rC   r¯   rD   r@   Fr°   rB   )r�   r}   r~   r   rA   r³   r0   )r5   r¬   r   r   r   r   Útest_basics_with_nanÇ  s    z$TestExcelWriter.test_basics_with_nanÚnp_typec              	   C   s‚   t tjjdddd�|d�}| |d¡ t|ƒ�}tj|ddd�}W 5 Q R X | tj	¡}t
 ||¡ tj|ddd�}t
 ||¡ d S )	Néöÿÿÿr¥   )r¥   r&   ©Úsize©Údtyper¯   r   rU   )r   r}   r§   Úrandintr0   r   r1   r2   ÚastypeÚint64r   r3   )r5   r½   r   r8   rI   r´   Z	int_frameZrecons2r   r   r   Útest_int_typesÏ  s    
zTestExcelWriter.test_int_typesc              	   C   sZ   t tj d¡|d�}| |d¡ t|ƒ�}tj|ddd� |¡}W 5 Q R X t	 
||¡ d S )Nr¥   rÁ   r¯   r   rU   )r   r}   r§   Zrandom_sampler0   r   r1   r2   rÄ   r   r3   )r5   r½   r   r8   rI   r´   r   r   r   Útest_float_typesß  s    
ÿz TestExcelWriter.test_float_typesc              	   C   s^   t ddddgtjd�}| |d¡ t|ƒ�}tj|ddd� tj¡}W 5 Q R X t 	||¡ d S )Nr$   r   TFrÁ   r¯   rU   )
r   r}   Zbool_r0   r   r1   r2   rÄ   r   r3   ©r5   r   r8   rI   r´   r   r   r   Útest_bool_typesì  s    
ÿzTestExcelWriter.test_bool_typesc              	   C   s\   t dtjfddtj fgƒ}| |d¡ t|ƒ�}tj|ddd�}W 5 Q R X t ||¡ d S )Nr$   )r&   r"   rt   r¯   r   rU   )	r   r}   Úinfr0   r   r1   r2   r   r3   rÈ   r   r   r   Útest_inf_roundtripø  s
    
z"TestExcelWriter.test_inf_roundtripc              	   C   s8  t jt |j¡d d�}||_| ¡ }tj|jd d…|j 	d¡f< | 
|d¡ |j
|dddgd� |j
|ddd� |j
|ddd	� t|ƒ�}| 
|d¡ | 
|d
¡ W 5 Q R X t|ƒ�>}t j|ddd�}t ||¡ t j|d
dd�}t ||¡ W 5 Q R X dt|jƒk�st‚d|jd k�s t‚d
|jd k�s4t‚d S )Nr·   rt   rC   r¯   rD   r@   Fr°   rB   Ztest2r   rU   r&   r$   )r1   r¸   r}   r¹   r+   r�   r~   r   rA   r³   r0   r   r   r2   r   r3   ÚlenÚsheet_namesÚAssertionError)r5   r¬   rº   r   r+   rH   rI   r´   r   r   r   Útest_sheets  s&    

zTestExcelWriter.test_sheetsc              	   C   sÆ   |  ¡ }tj|jd d…|j d¡f< | |d¡ |j|dddgd� |j|ddd� |j|ddd� td	d
ddgƒ}|j|d|d� t|ƒ�}t	j
|ddd�}W 5 Q R X |  ¡ }||_t ||¡ d S )Nrt   rC   r¯   rD   r@   Fr°   rB   ZAArb   rd   ÚZr   rU   )r�   r}   r~   r   rA   r³   r0   r   r   r1   r2   r   r3   )r5   r¬   r   Zcol_aliasesrI   ÚrsÚxpr   r   r   Útest_colaliases  s    
zTestExcelWriter.test_colaliasesc              	   C   s,  |  ¡ }tj|jd d…|j d¡f< | |d¡ |j|dddgd� |j|ddd� |j|ddd� ttj 	d	d
¡ƒdk}|j|ddg|d� t
|ƒ�}tj|ddd� tj¡}W 5 Q R X dg|j_|jj|jjksØt‚ttj 	d	d
¡ƒdk}|j|ddddg|d� t
|ƒ�}tj|ddd� tj¡}W 5 Q R X dg|j_|jj|jjk�sRt‚ttj 	d	d
¡ƒdk}|j|dd|d� t
|ƒ�}tj|ddd� tj¡}W 5 Q R X dg|j_t || t¡¡ |j|dddddgd|d� |  ¡ }| ddg¡}t
|ƒ�}tj|dddgd�}W 5 Q R X t ||¡ d S )Nrt   rC   r¯   rD   r@   Fr°   rB   r¥   r&   r   Útest)Zindex_labelÚmerge_cellsrU   ÚdummyZdummy2ÚCÚD)rA   r+   rÕ   r$   )r�   r}   r~   r   rA   r³   r0   r   r§   r¨   r   r1   r2   rÄ   rÅ   r+   rE   rÎ   r   r3   ÚboolÚ	set_index)r5   rÕ   r¬   r   r8   rI   r´   r   r   r   Útest_roundtrip_indexlabels-  s^    
ÿ
ü
ÿ

ÿ

û
z*TestExcelWriter.test_roundtrip_indexlabelsc              	   C   sr   t tj dd¡ƒ}d|j_|j||d� t|ƒ�}tj	||j
d dd�}W 5 Q R X t ||¡ |jjdksnt‚d S )Nr¥   r!   r<   ©rÕ   r   rU   )r   r}   r§   r¨   r+   Únamer0   r   r1   r2   rÍ   r   r3   rÎ   )r5   rÕ   r   r8   Úxfr9   r   r   r   Útest_excel_roundtrip_indexnamef  s    
 z.TestExcelWriter.test_excel_roundtrip_indexnamec              	   C   sz   t jt |j¡d d�}||_| ¡ }dd„ |jD ƒ|_|j|d|d� t|ƒ�}t j|ddd�}W 5 Q R X t	 
||¡ d S )Nr·   c                 S   s   g | ]}|  ¡ ‘qS r   )r   )rQ   r_   r   r   r   rT   {  s     zATestExcelWriter.test_excel_roundtrip_datetime.<locals>.<listcomp>r¯   rÜ   r   rU   )r1   r¸   r}   r¹   r+   r�   r0   r   r2   r   r3   )r5   rÕ   rº   r   r+   ZtsfrI   r´   r   r   r   Útest_excel_roundtrip_datetimer  s    
z-TestExcelWriter.test_excel_roundtrip_datetimec              
   C   s\  t tdddƒtdddƒgtddd	d
ddƒtddddddƒggddgddgd�}t tdddƒtdddƒgtddd	d
ddƒtddddddƒggddgddgd�}t |¡�”}t|ƒ�}| |d¡ W 5 Q R X t|ddd��}| |d¡ W 5 Q R X t|ƒ�}tj	|ddd�}	W 5 Q R X t|ƒ�}
tj	|
ddd�}W 5 Q R X W 5 Q R X t 
|	|¡ t 
||¡ d S )NiÞ  r$   é   iÏ  é	   é   iÎ  rt   é   é   rM   r!   r&   é   é   ZDATEZDATETIMErb   rd   ©r+   rA   r¯   z
DD.MM.YYYYzDD.MM.YYYY HH-MM-SS)r�   Zdatetime_formatr   rU   )r   r   r   r   r   r   r0   r   r1   r2   r3   )r5   r   r   r8   Zdf_expectedÚ	filename2Zwriter1Zwriter2Zreader1Zrs1Zreader2Zrs2r   r   r   Útest_excel_date_datetime_formatƒ  s<    "þú"þú	
ý

$z/TestExcelWriter.test_excel_date_datetime_formatc              	   C   s’   t tjjdddd�tjd�}| ¡ }t |d d¡|d< t |d d¡ t	¡|d< | 
|d¡ t|ƒ�}tj|ddd	�}W 5 Q R X t ||¡ d S )
Nr¾   r¥   ©é   r$   r¿   rÁ   r   Únewr¯   rU   )r   r}   r§   rÃ   rÅ   r�   r1   ÚcutrÄ   Ústrr0   r   r2   r   r3   ©r5   r   r8   r6   rI   r´   r   r   r   Ú test_to_excel_interval_no_labels¯  s    
z0TestExcelWriter.test_to_excel_interval_no_labelsc                 C   s¦   t tjjdddd�tjd�}| ¡ }tj|d dddd	d
ddddddg
d�}||d< t t	|ƒ¡|d< | 
|d¡ t|ƒ�}tj|ddd�}W 5 Q R X t ||¡ d S )Nr¾   r¥   rë   r¿   rÁ   r   rC   rD   r×   rØ   ÚEÚFÚGÚHÚIÚJ)Úlabelsrí   r¯   rU   )r   r}   r§   rÃ   rÅ   r�   r1   rî   ZSeriesr{   r0   r   r2   r   r3   )r5   r   r8   r6   Z	intervalsrI   r´   r   r   r   Útest_to_excel_interval_labels¾  s      ÿ
z-TestExcelWriter.test_to_excel_interval_labelsc              	   C   s”   t tjjdddd�dgtjd�}| ¡ }|d  dd„ ¡|d	< |d  d
d„ ¡|d	< | |d¡ t|ƒ�}t	j
|ddd�}W 5 Q R X t ||¡ d S )Nr¾   r¥   rë   r¿   rC   )rA   rÂ   c                 S   s
   t | d�S )N©Úseconds)r   r‰   r   r   r   rŠ   Ø  r‹   z9TestExcelWriter.test_to_excel_timedelta.<locals>.<lambda>rí   c                 S   s   t | d� ¡ d S )Nrú   i€Q )r   Útotal_secondsr‰   r   r   r   rŠ   Ú  r‹   r¯   r   rU   )r   r}   r§   rÃ   rÅ   r�   Úapplyr0   r   r1   r2   r   r3   rð   r   r   r   Útest_to_excel_timedeltaÏ  s      ÿÿ
z'TestExcelWriter.test_to_excel_timedeltac              	   C   sX   |j ddd� ¡ }| |d¡ t|ƒ�}tj|ddd�}W 5 Q R X t || d¡¡ d S )NÚMZperiod)ÚkindZsht1r   rU   )	ZresampleZmeanr0   r   r1   r2   r   r3   Z	to_period)r5   rº   r   rÒ   rI   rÑ   r   r   r   Útest_to_excel_periodindexâ  s
    
z)TestExcelWriter.test_to_excel_periodindexc              	   C   s¦   t jt|jƒd t jd� dd¡}tj|ddgd�}||_|j|ddd	� |j|dd
dgd� |j|d|d� t	|ƒ�}t
j|dddgd�}W 5 Q R X t ||¡ d S )Nr&   rÁ   rv   ÚfirstÚsecond©rE   r¯   Fr°   rC   rD   r@   rÜ   r   r$   rU   )r}   ÚarangerÌ   r+   rÅ   Úreshaper	   r˜   r0   r   r1   r2   r   r3   )r5   rÕ   r¬   r   ÚarraysÚ	new_indexrI   r8   r   r   r   Útest_to_excel_multiindexë  s    "
z(TestExcelWriter.test_to_excel_multiindexc                 C   sb   t d ddgdddgtj d¡dœƒ}| ddg¡}|j||d	� tj|d
dgd�}t 	||¡ d S )Nr&   r"   r¥   rì   é   ©rC   rD   r×   rC   rD   rÜ   r   r$   r†   )
r   r}   r§   ÚsamplerÚ   r0   r1   r2   r   r3   )r5   rÕ   r   r8   Zdf1r   r   r   Ú"test_to_excel_multiindex_nan_labelú  s
    $z2TestExcelWriter.test_to_excel_multiindex_nan_labelc              	   C   sÖ   t jt|jƒd t jd� dd¡}tj|ddgd�}||_t ddd	d
g¡}||_	ddg}|sbd}|j
|d|d� t|ƒ�}tj|d|ddgd�}	W 5 Q R X |sÆ|j	jdddd�}
dd„ t|
Ž D ƒ|_	t ||	¡ d S )Nr&   rÁ   rv   r  r  r  )é(   r$   )r  r&   )é2   r$   )r  r&   r   r$   r¯   rÜ   ©r.   r,   rF   F)ZsparsifyZadjoinrE   c                 S   s   g | ]}d   tt|ƒ¡‘qS )r   )ÚjoinÚmaprï   )rQ   Úqr   r   r   rT     s     zATestExcelWriter.test_to_excel_multiindex_cols.<locals>.<listcomp>)r}   r  rÌ   r+   rÅ   r  r	   r˜   Úfrom_tuplesrA   r0   r   r1   r2   ÚformatrW   r   r3   )r5   rÕ   r¬   r   r  r  Znew_cols_indexr,   rI   r8   Úfmr   r   r   Útest_to_excel_multiindex_cols  s(    "
   ÿz-TestExcelWriter.test_to_excel_multiindex_colsc              	   C   sŒ   |j tjt|j ƒtjd�g}t |¡|_ ddg|j _|j|d|d� t	|ƒ�}t
j|dddgd�}W 5 Q R X t ||¡ |j jd	ksˆt‚d S )
NrÁ   Útimer<   r¯   rÜ   r   r$   rU   )r  r<   )r+   r}   r  rÌ   rÅ   r	   r˜   rE   r0   r   r1   r2   r   r3   rÎ   )r5   rÕ   rº   r   r  rI   r´   r   r   r   Útest_to_excel_multiindex_dates  s    
z.TestExcelWriter.test_to_excel_multiindex_datesc              	   C   sz   t ddgddgddgdœƒ}| ¡ }t dd	g¡}||_|j|d
dd� t|ƒ�}tj|d
d�}W 5 Q R X t	 
||¡ d S )Nr¥   rì   r
  r  r  é<   )r>   r?   Úc)éF   éP   )éZ   r%   r¯   FrB   ©r.   )r   r�   r	   r  r+   r0   r   r1   r2   r   r3   )r5   r   Zframe1r­   Zmulti_indexrI   Zframe3r   r   r   Ú'test_to_excel_multiindex_no_write_index(  s    
z7TestExcelWriter.test_to_excel_multiindex_no_write_indexc              	   C   st   t g dddgd�}t g tjg ddgd�dgd�}| |d¡ t|ƒ�}tj|dd�}W 5 Q R X tj||d	d	d
� d S )Nr   r$   r&   r@   r  rè   r¯   r  F)Zcheck_index_typeZcheck_dtype)	r   r	   r  r0   r   r1   r2   r   r3   )r5   r   r6   r8   rI   r9   r   r   r   Útest_to_excel_empty_multiindex=  s    
   ÿz.TestExcelWriter.test_to_excel_empty_multiindexc              	   C   s”   t dddgdddggddgd	d
dgd�}|j|ddd� t|ƒ�}tj|ddd�}W 5 Q R X t dddgdddggddgd	d
dgd�}t ||¡ d S )Nç¿¶~úÏš¿?ç9DÜœJÎ?ç>éD‚)â?çÜ.4×i¤(@ç33333þ@çÍÌÌÌ¤œArC   rD   rb   rd   rÐ   rè   r¯   ú%.2f©Zfloat_formatr   rU   ç¸…ëQ¸¾?çq=
×£pÍ?ç=
×£p=â?ç¤p=
×£(@)r   r0   r   r1   r2   r   r3   )r5   r   r8   rI   r9   r6   r   r   r   Útest_to_excel_float_formatJ  s    ý
ýz*TestExcelWriter.test_to_excel_float_formatc              	   C   sp   t dddgdddggddgd	d
dgd�}t d| ¡�0}|j|dd� tj|ddd�}t ||¡ W 5 Q R X d S )Nu   Æ’u   Æ“u   Æ”u   Æ•u   Æ–u   Æ—u   AÆ’rD   u   XÆ“rd   rÐ   rè   z__tmp_to_excel_float_format__.Z	TestSheetr  r   rU   r/   )r5   r   r8   r7   r9   r   r   r   Útest_to_excel_output_encoding\  s    ýz-TestExcelWriter.test_to_excel_output_encodingc              
   C   sè   t  d| ¡�œ}zt|dƒ� W 5 Q R X W n tk
rH   t d¡ Y nX tdddgddd	ggd
dgdddgd�}|j|ddd� t|ƒ�}t	j
|ddd�}W 5 Q R X W 5 Q R X tdddgddd	ggd
dgdddgd�}t  ||¡ d S )Nu   Æ’u.Úwbz$No unicode file names on this systemr"  r#  r$  r%  r&  r'  rC   rD   rb   rd   rÐ   rè   r¯   r(  r)  r   rU   r*  r+  r,  r-  )r   r   ÚopenÚUnicodeEncodeErrorrw   Úskipr   r0   r   r1   r2   r3   )r5   r   r7   r8   rI   r9   r6   r   r   r   Útest_to_excel_unicode_filenamei  s(    ý
$ýz.TestExcelWriter.test_to_excel_unicode_filenameÚuse_headersTFÚr_idx_nlevelsr$   r&   r"   Úc_idx_nlevelsc              	      s(  d‡ ‡fdd„	}|rdnd }|t dgƒ||ƒ}|jdks<t‚|jd tjk	sPt‚d}	d}
tj|	|
||d	�}|d
kr d}tj	t
|d�� |||dd� W 5 Q R X n„|||ƒ}|rÆ|j|	|
| fksàt‚n|j|	d
 |
| fksàt‚tt|jƒƒD ]4}tt|jƒƒD ] }|j||f tjk	�s t‚�q qîd S )NTr   c              
      sH   | j ˆ|ˆ |d� tˆƒ�$}tj||jd |d�W  5 Q R £ S Q R X d S )N)r,   rÕ   r+   r   ©r.   r,   )r0   r   r1   r2   rÍ   )Údatar,   Z
parser_hdrr+   rÞ   ©rÕ   r   r   r   Ú	roundtripˆ  s    
  ÿz;TestExcelWriter.test_excel_010_hemstring.<locals>.roundtrip)r$   r&   )r   r   rt   r"   )r6  r7  r$   z_Writing to Excel with MultiIndex columns and no index \('index'=False\) is not yet implemented.rŒ   FrB   )Tr   T)r   r    rÎ   r   r}   r~   r   rz   rw   r¡   ÚNotImplementedErrorr|   rÌ   r+   rA   )r5   rÕ   r7  r6  r5  r   r;  Zparser_headerr”   ZnrowsZncolsr8   r£   Úrr  r   r:  r   Útest_excel_010_hemstring‚  s2    	   ÿÿ
z(TestExcelWriter.test_excel_010_hemstringc                 C   sB  t dddgdddgdddggdddgd�}| |d¡ t dddgdddgdddggdddgd�}tj|dd	d
�}t ||¡ t ddddgddddggddddgd�}| |d¡ tj|dd	d
�}t ddddgddddggddddgd�}t ||¡ |j|dddd� tj|dd d�}t ddddgddddggƒ}t ||¡ d S )Nr$   r&   r"   rC   rD   r@   r¯   zB.1r   rU   r!   rt   é   r]   é   úA.1Fr*   r8  ©r   r0   r1   r2   r   r3   ©r5   r   r8   r6   r9   r   r   r   Útest_duplicated_columns¹  s(    * ÿ( 
ÿz'TestExcelWriter.test_duplicated_columnsc                 C   sj   t dddgdddgdœƒ}|j|dddgd� tj|ddd	�}t |d |d ¡ t |d |d ¡ d S )
Nr$   r&   ©rC   rD   r¯   rD   rC   r@   r   r8  )r   r0   r1   r2   r   Úassert_series_equal)r5   r   Úwrite_frameÚ
read_framer   r   r   Útest_swapped_columnsÖ  s
    z$TestExcelWriter.test_swapped_columnsc              	   C   sz   t dddgdddgdœƒ}tjtdd�� |j|dddgd	� W 5 Q R X tjtd
d�� |j|dddgd	� W 5 Q R X d S )Nr$   r&   rE  zNot all names specifiedrŒ   r¯   rD   r×   r@   z.'passes columns are not ALL present dataframe'rØ   )r   rw   r¡   ÚKeyErrorr0   )r5   r   rG  r   r   r   Útest_invalid_columnsà  s     ÿz$TestExcelWriter.test_invalid_columnsz#to_excel_index,read_excel_index_col)Tr   )FNc                 C   sd   t dddgdddgdddgdœƒ}|j|dddg|d� |ddg }tj|d|d	�}t ||¡ d S )
Nr$   r&   r"   r  Zcol_subset_bugrC   rD   ©rA   r+   rU   rB  )r5   r   Zto_excel_indexZread_excel_index_colrG  r6   rH  r   r   r   Útest_write_subset_columnsì  s    	"   ÿ  ÿz)TestExcelWriter.test_write_subset_columnsc                 C   sv   t dddgdddgdœƒ}| |d¡ tj|ddd�}d |jd	< d |jd
< d |jd< tj|dddd�}t ||¡ d S )NÚoneú#oneÚtwoú#tworE  Útest_cr   rU   )r$   r   ©r$   r$   )r&   r$   ú#©r.   ÚcommentrF   )r   r0   r1   r2   r   r   r3   ©r5   r   r8   Zresult1Zresult2r   r   r   Útest_comment_arg  s    


z TestExcelWriter.test_comment_argc                 C   sT   t dddgdddgdœƒ}| |d¡ tj|dd�}tj|dd d�}t ||¡ d S )	NrN  rO  rP  rQ  rE  rR  r  )r.   rV  rB  rW  r   r   r   Útest_comment_default  s
    z$TestExcelWriter.test_comment_defaultc                 C   sb   t dddgdddgdœƒ}| |d¡ t dd dgdd d gdœƒ}tj|dddd	�}t ||¡ d S )
NrN  rO  rP  rQ  rE  rR  rT  r   rU  rB  rC  r   r   r   Útest_comment_used!  s
    z!TestExcelWriter.test_comment_usedc                 C   sT   t ddgddgdœƒ}|j|dd� t dgd	gdœƒ}tj|d
d�}t ||¡ d S )NÚ1z#2Ú2Ú3)r>   r?   FrB   r$   r&   rT  )rV  rB  rC  r   r   r   Útest_comment_empty_line/  s
    z'TestExcelWriter.test_comment_empty_linec                 C   sô   t ddddddƒt ddddddƒt ddddd	d
ƒt ddddddƒt ddddddƒt ddddddƒt ddddddƒt ddddddƒt ddddddƒt ddddddƒt ddddddƒg}td|iƒ}| |d¡ tj|ddd �}t |d |d ¡ d S )!NiÝ  r$   rç   r&   r"   é-   é8   r!   é   é1   r?  é*   r]   é9   é#   râ   é)   ræ   rK   é   é   é   é5   é   é%   r   é   rì   é4   rC   r²   r8  )r   r   r0   r1   r2   r   rF  )r5   r   Z	datetimesrG  rH  r   r   r   Útest_datetimes;  s     õzTestExcelWriter.test_datetimesc              
   C   sn   t ƒ �^}ttj dd¡ƒ}t||d��}| |¡ W 5 Q R X | d¡ tj	|dd�}t
 ||¡ W 5 Q R X d S )Nr¥   r&   ©r   r   r†   )r   r   r}   r§   r¨   r   r0   Úseekr1   r2   r   r3   )r5   r   Zbior8   rH   Z	reread_dfr   r   r   Útest_bytes_ioQ  s    
zTestExcelWriter.test_bytes_ioc                 C   s~   t dddgdddœgdddgd	d
dgdœƒ}| |d¡ tj|dddd�}| ¡ }|j t¡|_|j 	d¡|_t
 ||¡ d S )Nr>   r?   r  Úer&   )rN   Úfr$   g      @ÚappleÚbananaZcherry)ÚmixedÚnumericrï   r²   r   r  rÅ   )r   r0   r1   r2   r�   rw  rý   rï   rx  rÄ   r   r3   ©r5   r   r8   Úreadr6   r   r   r   Útest_write_lists_dict^  s    ýÿz%TestExcelWriter.test_write_lists_dictc                 C   sF   t ddgddgdœƒ}| |d¡ tj|ddd�}|}t ||¡ d S )	Nr$   r&   r"   r!   )Úrenderr9  r²   r   r†   rB  ry  r   r   r   Útest_render_as_column_namep  s
    z*TestExcelWriter.test_render_as_column_namec                 C   sV   t ddggddgd�}| dddœ¡}| |¡ tj|dgdgd	d
�}t ||¡ d S )Nr<   r=   Úcol1Úcol2r@   TF)r<   r=   r   )Ztrue_valuesZfalse_valuesrF   )r   Úreplacer0   r1   r2   r   r3   )r5   r   r8   r6   rH  r   r   r   Ú!test_true_and_false_value_optionsx  s    
   ÿz1TestExcelWriter.test_true_and_false_value_optionsc                 C   sJ   t ddgddggddgd�}|j|dd	d
� tj|dd�}t ||¡ d S )Nr$   r&   r"   r!   r~  r  r@   r²   rS  )Zfreeze_panesr   r†   rB  )r5   r   r6   r9   r   r   r   Útest_freeze_panesƒ  s    z!TestExcelWriter.test_freeze_panesc                 C   sJ   t  ¡ }t|j|d�}ttjdd�}t j||d|› �d�}t  ||¡ d S ©Nrp  r   r†   r<   )r   )r   ÚmakeDataFramer   r0   r1   r2   Zround_trip_pathlibr3   ©r5   r   r   r8   rH   rI   r9   r   r   r   Útest_path_path_lib‹  s
    z"TestExcelWriter.test_path_path_libc                 C   sJ   t  ¡ }t|j|d�}ttjdd�}t j||d|› �d�}t  ||¡ d S rƒ  )r   r„  r   r0   r1   r2   Zround_trip_localpathr3   r…  r   r   r   Útest_path_local_path“  s
    z$TestExcelWriter.test_path_local_pathc                 C   s¬   t  t d¡t d¡ft d¡t d¡fg¡}ttjddd�|d�}| |¡ tj|dd	gdd
�}|j	j
dd„ |jd D ƒdd„ |jd	 D ƒgdd	gd�|_	t ||¡ d S )NZ2018Z2018Q1Z2018Q2)r&   r&   rÅ   rÁ   r@   r   r$   rf   c                 S   s   g | ]}t |ƒ‘qS r   )rï   )rQ   rO   r   r   r   rT   ¨  s     zCTestExcelWriter.test_merged_cell_custom_objects.<locals>.<listcomp>)Úlevel)r	   r  r1   ZPeriodr   r}   Zonesr0   r2   rA   Z
set_levelsZlevelsr   r3   )r5   r   Úmir6   r9   r   r   r   Útest_merged_cell_custom_objects›  s    þÿ
&þz/TestExcelWriter.test_merged_cell_custom_objectsrÂ   Nc              	   C   s‚   |}t jd|d�}t|g|d�}tjtdd�� | |¡ W 5 Q R X | ¡ }t|g|d�}tjtdd�� | |¡ W 5 Q R X d S )NZ2019)ÚtzrÁ   zExcel does not supportrŒ   )r1   r™   r   rw   r¡   r¢   r0   Zto_pydatetime)r5   rÂ   Ztz_aware_fixturer   r‹  r9  r8   r   r   r   Ú test_raise_when_saving_timezones­  s    z0TestExcelWriter.test_raise_when_saving_timezonesc                 C   sh   t ddgddgdœƒ}|j|dddgdd	� t |¡}t dddgdddggddd
gd�}t ||¡ d S )Nr   r$   r¥   rK   rE  rC   rD   FrL  rA  r@   rB  )r5   r   r8   r9   r6   r   r   r   Ú'test_excel_duplicate_columns_with_names»  s
    
"z7TestExcelWriter.test_excel_duplicate_columns_with_namesc              
   C   sJ   d}t  |¡�2}tjtt |¡d�� t|dd� W 5 Q R X W 5 Q R X d S )Nz7if_sheet_exists is only valid in append mode (mode='a')rŒ   r€  )Zif_sheet_exists)r   r   rw   r¡   r¢   ÚreÚescaper   )r5   r   r£   rt  r   r   r   Útest_if_sheet_exists_raisesÄ  s    z+TestExcelWriter.test_if_sheet_exists_raisesc              
   C   sZ   t  |¡�F}t||d��}tƒ  |¡ W 5 Q R X t |¡}tƒ }t  ||¡ W 5 Q R X d S ©Nrp  )r   r   r   r   r0   r1   r2   r3   )r5   r   r   r   rH   r9   r6   r   r   r   Útest_excel_writer_empty_frameÌ  s    
z-TestExcelWriter.test_excel_writer_empty_framec              	   C   sF   t  |¡�2}tƒ j||d� t |¡}tƒ }t  ||¡ W 5 Q R X d S r‘  rl   )r5   r   r   r   r9   r6   r   r   r   Útest_to_excel_empty_frameÕ  s
    
z)TestExcelWriter.test_to_excel_empty_frame)Dr›   rœ   r�   r¤   r«   r®   rµ   r¶   r»   r¼   rw   rx   rž   r}   Zint8Zint16Zint32rÅ   rÆ   Zfloat16Zfloat32Zfloat64rÇ   rÉ   rË   rÏ   rÓ   rÛ   rß   rà   rê   rñ   rù   rþ   r  r	  r  r  r  r   r!  r.  r/  r4  r>  rD  rI  rK  rM  rX  rY  rZ  r^  ro  rr  r{  r}  r�  r‚  r†  r‡  rŠ  ÚobjectrŒ  r�  r�  r’  r“  r   r   r   r   rŸ   >  s‚   1	

	9,	4
þþ

		rŸ   c                
   @   sZ   e Zd Zej dejede 	d¡d�eje
de 	d¡d�g¡dd„ ƒZdd	„ Zd
d„ ZdS )ÚTestExcelWriterEngineTestsz	klass,extr   r   r   r   c              
   C   s^   t  |¡�J}t|ƒ�6}|dkr8t d¡r8t|tƒsFt‚nt||ƒsFt‚W 5 Q R X W 5 Q R X d S )Nr   r   )r   r   r   ÚtdZsafe_importÚ
isinstancer   rÎ   )r5   Úklassr   r   rH   r   r   r   Útest_ExcelWriter_dispatchß  s
    
z4TestExcelWriterEngineTests.test_ExcelWriter_dispatchc              	   C   s&   t jtdd�� tdƒ W 5 Q R X d S )Nz	No enginerŒ   Znothing)rw   r¡   r¢   r   ©r5   r   r   r   Ú test_ExcelWriter_dispatch_raisesï  s    z;TestExcelWriterEngineTests.test_ExcelWriter_dispatch_raisesc                 C   s¸   G dd„ dt ƒ}t|ƒ tddƒ�` d}t |¡�>}t |ƒ�}t||ƒsLt‚W 5 Q R X t dd¡}| |¡ W 5 Q R X | 	¡  W 5 Q R X t d¡�}|j|dd� W 5 Q R X | 	¡  d S )	Nc                   @   sP   e Zd ZdZdZdZdZdZdd„ Zdd„ Z	dd	„ Z
ed
d„ ƒZedd„ ƒZdS )zCTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClassF)ZxlsxZxlsrÖ   c                 S   s   d S )Nr   rš  r   r   r   Úbookû  s    zHTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.bookc                 S   s   dt | ƒ_d S ©NT)ÚtypeÚcalled_saverš  r   r   r   Ú_saveþ  s    zITestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass._savec                 _   s   dt | ƒ_d S r�  )rž  Úcalled_write_cells)r5   ÚargsÚkwargsr   r   r   Ú_write_cells  s    zPTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass._write_cellsc                 S   s   dt | ƒ_d S r�  )rž  Úcalled_sheetsrš  r   r   r   rY     s    zJTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.sheetsc                 S   s.   | j s
t‚| jst‚| jrt‚d| _ d| _d S )NF)rŸ  rÎ   r¡  r¥  )Úclsr   r   r   Úassert_called_and_reset  s
    


z[TestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.assert_called_and_resetN)r›   rœ   r�   rŸ  r¡  r¥  Z_supported_extensionsZ_enginerœ  r   r¤  ÚpropertyrY   Úclassmethodr§  r   r   r   r   Ú
DummyClassô  s   
rª  zio.excel.xlsx.writerrÖ   zsomething.xlsxr$   zsomething.xlsrp  )
r   r   r
   r   r   r—  rÎ   rz   r0   r§  )r5   rª  r   ÚfilepathrH   r8   r   r   r   Útest_register_writeró  s    
z/TestExcelWriterEngineTests.test_register_writerN)r›   rœ   r�   rw   rx   rž   Úparamr   r–  Ú
skip_if_nor   r™  r›  r¬  r   r   r   r   r•  Þ  s   þþ
	r•  c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú
TestFSPathc              
   C   s^   t  d¡�J}tdddgiƒ}| |¡ t|ƒ�}t |¡}W 5 Q R X ||ksPt‚W 5 Q R X d S )Núfoo.xlsxrC   r$   r&   )r   r   r   r0   r   ÚosÚfspathrÎ   )r5   r   r8   rª   r9   r   r   r   Útest_excelfile_fspath#  s    

z TestFSPath.test_excelfile_fspathc              
   C   sD   t  d¡�0}t|ƒ�}t |¡t|ƒks,t‚W 5 Q R X W 5 Q R X d S )Nr°  )r   r   r   r±  r²  rï   rÎ   )r5   r   rH   r   r   r   Útest_excelwriter_fspath+  s    
z"TestFSPath.test_excelwriter_fspathN)r›   rœ   r�   r³  r´  r   r   r   r   r¯     s   r¯  r˜  c                 C   s6   dd„ t tƒD ƒ}dd„ t | ƒD ƒ}| |¡r2t‚d S )Nc                 S   s   h | ]}|  d ¡s|’qS ©Ú_©Ú
startswith©rQ   rÝ   r   r   r   Ú	<setcomp>4  s     
 z%test_subclass_attr.<locals>.<setcomp>c                 S   s   h | ]}|  d ¡s|’qS rµ  r·  r¹  r   r   r   rº  5  s     
 )Údirr   Úsymmetric_differencerÎ   )r˜  Z
attrs_baseZattrs_klassr   r   r   Útest_subclass_attr1  s    r½  )/r   r   r   Ú	functoolsr   Úior   r±  rŽ  Únumpyr}   rw   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr–  Zpandasr1   r   r   r	   r
   Zpandas._testingZ_testingr   Zpandas.io.excelr   r   r   r   r   Zpandas.io.excel._utilr   Zfixturer   r   rx   rž   r­  r®  r    ZusefixturesrŸ   r•  r¯  Úvaluesr½  r   r   r   r   Ú<module>   s€   

 ÿúþ yýýýðþ
       B