a
    é´«j¼Ö  ã                   @   s   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Z d dlmZ d dlmZ d dlm  mZ d dlZd dlmZ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ƒ rèej(j)Z*e+e+dœdd„Z,ej-dd„ ƒZ.ej-ddgd�dd„ ƒZ/ej-dd„ ƒZ0ej-dd„ ƒZ1ej( 2dej3de 4d¡e 4d¡gd�ej3de 4d¡e 4d¡gd�ej3de 4d¡e 4d¡gd�ej3d e 4d!¡d�g¡G d"d#„ d#ƒƒZ5ej( 2d$ej3dde 4d¡e 4d¡gd�ej3dde 4d¡e 4d¡gd�ej3dde 4d¡e 4d¡gd�ej3d!d e 4d!¡d�g¡ej( 6d¡G d%d&„ d&ƒƒƒZ7G d'd(„ d(ƒZ8e 4d¡e 4d¡G d)d*„ d*ƒƒƒZ9ej( 2d+e' :¡ ¡d,d-„ ƒZ;dS ).é    )ÚdateÚdatetimeÚ	timedelta)Úpartial)ÚBytesION)Úis_platform_windows)ÚPY310)Úimport_optional_dependency)Ú	DataFrameÚIndexÚ
MultiIndexÚ
date_rangeÚoption_context)Ú	ExcelFileÚExcelWriterÚ_OpenpyxlWriterÚ_XlsxWriterÚregister_writer)Ú_writers)ÚpathÚreturnc                 C   s   dS )NÚns© ©r   r   r   úa/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/io/excel/test_writers.pyÚget_exp_unit*   s    r   c                 C   s   | dd… S )z?
    Returns the first ten items in fixture "float_frame".
    Né
   r   )Zfloat_framer   r   r   Úframe.   s    r   TF)Úparamsc                 C   s   | j S ©N)Úparam)Úrequestr   r   r   Úmerge_cells6   s    r"   c                 c   s4   t  | ¡�}|V  W d  ƒ n1 s&0    Y  dS )z9
    Fixture to open file for use in each test case.
    N)ÚtmÚensure_clean)ÚextÚ	file_pathr   r   r   r   ;   s    r   c                 c   sF   d|  d¡› d�}t|| ƒ� dV  W d  ƒ n1 s80    Y  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_engineD   s    
r*   r%   ú.xlsxÚopenpyxlZxlrd©Zmarksz.xlsmÚ
xlsxwriterz.odsÚ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   s„   d}t g d¢g d¢g d¢g d¢gƒ}t |¡�6}|j||ddd� tj||dg|d	�}W d   ƒ n1 sj0    Y  t ||¡ d S )
NZ	no_header©Ú é   éd   ©r4   é   éÈ   ©r4   r2   i,  ©r4   r1   i�  F©Ú
sheet_nameÚindexÚheaderr   ©r=   Z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_header_   s     
ÿ$z/TestRoundTrip.test_read_one_empty_col_no_headerc                 C   s„   d}t g d¢g d¢g d¢g d¢gƒ}t |¡�6}|j|dddd� tj||d	g|d
�}W d   ƒ n1 sj0    Y  t ||¡ d S )NZwith_headerr3   r7   r:   r;   FTr<   r   r@   rA   rF   r   r   r   Ú#test_read_one_empty_col_with_headerp   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|ƒ�2}|j|d
ddd� |j|ddd� W d   ƒ n1 sn0    Y  ddg|_t|ƒ�<}tj|d
d ddgd�}tj|dd ddgd�}W d   ƒ n1 sÌ0    Y  t 	||¡ t 	||¡ W d   ƒ n1 �s0    Y  d S )Nr5   Úfoor8   Úbarr2   ZbazÚaÚb©ÚcolumnsZData_no_headF)r=   r?   r>   ZData_with_head©r=   r>   ÚAÚB)r=   r?   Únames)r=   Ú	index_colrW   )
r
   r#   r$   r   rB   rS   r   rC   rD   rE   )rG   r%   ZrefdfÚpthÚwriterÚreaderZxlsdf_no_headZxlsdf_with_headr   r   r   Ú"test_set_column_names_in_parameter€   s(    "
ÿ.

ÿü$z0TestRoundTrip.test_set_column_names_in_parameterc           
   	      sÔ   dd„ ‰ g d¢}‡ fdd„|D ƒ}t t||ƒƒ}t |¡�†}t|ƒ�0}| ¡ D ]\}}|j||d� qNW d   ƒ n1 sz0    Y  tj||dd�}|D ]}	t 	||	 ||	 ¡ q˜W d   ƒ n1 sÆ0    Y  d S )	Nc                 S   s"   g d¢g d¢ }}t ||| gd�S )N)é   é   é!   ©r5   r8   r2   rR   )r
   )Zcol_sheet_nameÚdÚir   r   r   Útdf¡   s    zDTestRoundTrip.test_creating_and_reading_multiple_sheets.<locals>.tdf)ZAAAZBBBZCCCc                    s   g | ]}ˆ |ƒ‘qS r   r   )Ú.0Ús©rc   r   r   Ú
<listcomp>§   ó    zKTestRoundTrip.test_creating_and_reading_multiple_sheets.<locals>.<listcomp>©r=   r   ©r=   rX   )
ÚdictÚzipr#   r$   r   ÚitemsrB   rC   rD   rE   )
rG   r%   ÚsheetsÚdfsrY   ÚewZ	sheetnamerJ   Zdfs_returnedre   r   rf   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 d   ƒ n1 sü0    Y  d S )
Nr   r5   r2   é   )©ZOneÚx©ÚTwoÚX©rv   ÚY)ÚZeror4   )rs   ru   rx   )rz   zUnnamed: 4_level_1©r?   rX   ))ÚBegr4   ©ZMiddlert   ©ÚTailrw   ©r   ry   ))r|   zUnnamed: 1_level_1r}   r~   r€   ©r#   r$   r
   rB   rC   rD   rE   )rG   r%   r   rJ   rH   Úactualr   r   r   Ú&test_read_excel_multiindex_empty_level´   sF    üÿ	üÿ	
üÿ	üÿ	
z4TestRoundTrip.test_read_excel_multiindex_empty_levelÚc_idx_namesrP   Úr_idx_namesrQ   Úc_idx_levelsr5   Úr_idx_levelsc                    s¸  t  |¡��–}tˆƒp|dk}|dkr4ttdƒƒ}	n.tjdd„ t|ƒD ƒ‡ fdd„t|ƒD ƒd�}	|dkrxttdƒƒ}
n.tjdd„ t|ƒD ƒ‡fd	d„t|ƒD ƒd�}
td
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 d   ƒ n1 �sª0    Y  d S )Nr5   Zabcdec                 S   s   g | ]}t d ƒ‘qS ©é   ©Úrange©rd   Ú_r   r   r   rg   ô   rh   z@TestRoundTrip.test_excel_multindex_roundtrip.<locals>.<listcomp>c                    s   g | ]}ˆ › d |› �‘qS ©ú-r   ©rd   rb   )r„   r   r   rg   õ   rh   ©rW   Zghijkc                 S   s   g | ]}t d ƒ‘qS rˆ   rŠ   rŒ   r   r   r   rg   û   rh   c                    s   g | ]}ˆ › d |› �‘qS rŽ   r   r�   )r…   r   r   rg   ü   rh   çš™™™™™ñ?)r‰   r‰   ©rS   r>   )rX   r?   )Úcheck_namesr   éÿÿÿÿ)r#   r$   Úboolr   Úlistr   Úfrom_arraysr‹   r
   ÚnpÚonesrB   rC   rD   rE   ÚnanÚiloc)rG   r%   r„   r…   r†   r‡   r!   rY   r”   rS   r>   rJ   Zactr   )r„   r…   r   Útest_excel_multindex_roundtripã   sT    þþý


ý


ý


ýz,TestRoundTrip.test_excel_multindex_roundtripc              	   C   s   t g d¢t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d��$ tj	|dg|dd�}W d   ƒ n1 sÆ0    Y  t 
||¡ tj	|dgddd�}t 
||¡ W d   ƒ n1 �s0    Y  d S )Nr`   z
2012-01-01r2   )Úperiods)ÚcolÚdate_stringsr    ú%m/%d/%Yr   ©rX   )Úparse_datesrX   c                 S   s   t  | d¡S )Nr¡   )r   Ústrptime©rt   r   r   r   Ú<lambda>0  rh   z;TestRoundTrip.test_read_excel_parse_dates.<locals>.<lambda>zuse 'date_format' insteadF)ÚmatchZraise_on_extra_warnings)r£   Údate_parserrX   )r£   Údate_formatrX   )r
   r   ÚcopyÚdtÚstrftimer#   r$   rB   rC   rD   rE   Úassert_produces_warningÚFutureWarning)rG   r%   rJ   Zdf2rY   Úresr¨   r   r   r   Útest_read_excel_parse_dates  s8    ÿ
ýü$
ÿ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 d   ƒ n1 sp0    Y  ttdƒt  tdƒg d	¢g¡ƒ}t ||¡ d S )
Nr1   z
2020-01-01Z6ME)Ústartrž   Úfreq©r>   r   r5   r¢   )z*(2020-01-31 00:00:00, 2020-07-31 00:00:00]z*(2020-07-31 00:00:00, 2021-01-31 00:00:00]z*(2021-01-31 00:00:00, 2021-07-31 00:00:00]z*(2021-07-31 00:00:00, 2022-01-31 00:00:00])r   r˜   r‹   rC   Zinterval_rangeÚ	Timestampr
   r#   r$   rB   rD   rE   )rG   r%   ZmidxrJ   rY   rK   rH   r   r   r   Ú"test_multiindex_interval_datetimesB  s(    ÿþÿ
0þÿþz0TestRoundTrip.test_multiindex_interval_datetimes)Ú__name__Ú
__module__Ú__qualname__ÚpytestÚmarkÚparametrizer
   r™   r›   rL   rM   r\   rq   rƒ   r�   r°   rµ   r   r   r   r   r0   S   s(   *þ
,þ
/8#r0   z
engine,extc                   @   sZ  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e
j d$¡d%d&„ ƒZ d'd(„ Z!d)d*„ Z"d+d,„ Z#d-d.„ Z$d/d0„ Z%d1d2„ Z&d3d4„ Z'd5d6„ Z(d7d8„ Z)d9d:„ Z*d;d<„ Z+d=d>„ Z,e
j d?d@dAg¡e
j dBg dC¢¡e
j dDg dC¢¡dEdF„ ƒƒƒZ-dGdH„ Z.dIdJ„ Z/dKdL„ Z0e
j dMdNdOg¡dPdQ„ ƒZ1dRdS„ Z2dTdU„ Z3dVdW„ Z4dXdY„ Z5dZd[„ Z6d\d]„ Z7d^d_„ Z8d`da„ Z9dbdc„ Z:ddde„ Z;dfdg„ Z<dhdi„ Z=djdk„ Z>dldm„ Z?e
j dndoe@g¡dpdq„ ƒZAdrds„ ZBdtdu„ ZCdvdw„ ZDdxdy„ ZEdoS )zÚTestExcelWriterc           	      C   s°   d}d}t j|dfd�}t jd|fd�}t|ƒ}t|ƒ}d}tjt|d�� | |¡ W d   ƒ n1 sj0    Y  tjt|d�� | |¡ W d   ƒ n1 s¢0    Y  d S )Ni  i@  r5   )Úshapezsheet is too large©r§   )r™   Zzerosr
   r¹   ÚraisesÚ
ValueErrorrB   )	rG   r   Zbreaking_row_countZbreaking_col_countZrow_arrZcol_arrZrow_dfZcol_dfÚmsgr   r   r   Útest_excel_sheet_sizex  s    (z%TestExcelWriter.test_excel_sheet_sizec                 C   s¦   t tj d¡ d¡ƒ}| |¡ t|ƒ� }tj|ddd�}W d   ƒ n1 sN0    Y  t	 
||¡ d}tjt|d�� t |d¡ W d   ƒ n1 s˜0    Y  d S )Nr8   ©r   r8   r   rj   zWorksheet named '0' not foundr¾   Ú0)r
   r™   ÚrandomÚdefault_rngÚstandard_normalrB   r   rC   rD   r#   rE   r¹   r¿   rÀ   )rG   r   ÚgtÚxlrJ   rÁ   r   r   r   Útest_excel_sheet_by_name_raise‰  s    

.z.TestExcelWriter.test_excel_sheet_by_name_raisec                 C   sÂ   t |ƒ�F}|j|dd� | ¡ }|jd d d… |_|j|dd� W d   ƒ n1 sT0    Y  t|ƒ�H}tj|ddd�}tj|ddd�}t ||¡ t ||¡ W d   ƒ n1 s´0    Y  d S )NZData1ri   r•   ZData2r   rj   )	r   rB   rª   rS   r   rC   rD   r#   rE   )rG   r   r   rZ   Úframe2r[   Zfound_dfZ	found_df2r   r   r   Ú!test_excel_writer_context_manager–  s    
,
z1TestExcelWriter.test_excel_writer_context_managerc                 C   sÚ  |  ¡ }tj|jd d…|j d¡f< |j|dd� |j|dddgd� |j|ddd� |j|ddd	� |j|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	 
||¡ |j|dd� tj|d
d�}t	 
||¡ |j|dd� tj|d
d�}t	 
||¡ |d }| |¡ tj|d
d�}t	 
| ¡ |¡ d S )Nr‰   rU   Útest1ri   rV   ©r=   rS   F©r=   r?   rT   r   rj   ZNA)r=   Zna_rep)r=   rX   Z	na_valuesZ88éX   g      V@ÚSheet1r¢   rÄ   )rª   r™   r›   rœ   rS   Úget_locrB   rC   rD   r#   rE   r>   Zto_frame)rG   r   r   Úreconsre   r   r   r   Útest_roundtrip¤  sD    ÿ
zTestExcelWriter.test_roundtripc                 C   sf   |  ¡ }d|d< |j|dd� t|ƒ� }tj|ddd�}W d   ƒ n1 sL0    Y  t ||¡ d S )NrO   rN   rÍ   ri   r   rj   )rª   rB   r   rC   rD   r#   rE   )rG   r   r   Zmixed_framer[   rÓ   r   r   r   Ú
test_mixedÕ  s    
.zTestExcelWriter.test_mixedc                 C   sÂ   t |ƒ}ttj d¡ d¡ttdƒƒtdddd�d�}t	j
t |j¡d d	�}||_|d d … }|j |¡|_|j|d
d� t|ƒ� }t	j|d
dd�}W d   ƒ n1 s¨0    Y  t ||¡ d S )Nr8   ©r‰   r1   ÚABCDú
2000-01-01r‰   rV   ©rž   r²   r“   ©r²   rÍ   ri   r   rj   )r   r
   r™   rÅ   rÆ   rÇ   r   r—   r   rC   ÚDatetimeIndexÚasarrayr>   Úas_unitrB   r   rD   r#   rE   )rG   r   ÚunitrJ   r>   rH   r[   rÓ   r   r   r   Útest_ts_frameÞ  s    
ý
.zTestExcelWriter.test_ts_framec                 C   sj   |  ¡ }tj|jd d…|j d¡f< |j|dd� |j|dddgd� |j|ddd� |j|ddd	� d S )
Nr‰   rU   rÍ   ri   rV   rÎ   FrÏ   rT   )rª   r™   r›   rœ   rS   rÒ   rB   )rG   r   r   r   r   r   Útest_basics_with_nanò  s    z$TestExcelWriter.test_basics_with_nanÚnp_typec                 C   sž   t tj d¡jdddd�|d�}|j|dd� t|ƒ� }tj|dd	d
�}W d   ƒ n1 s\0    Y  | 	tj
¡}t ||¡ tj|dd	d
�}t ||¡ d S )Nr8   éöÿÿÿr   rÃ   ©Úsize©ÚdtyperÍ   ri   r   rj   )r
   r™   rÅ   rÆ   ÚintegersrB   r   rC   rD   ÚastypeÚint64r#   rE   )rG   rá   r   rJ   r[   rÓ   Z	int_frameZrecons2r   r   r   Útest_int_typesú  s    ÿ
.zTestExcelWriter.test_int_typesc                 C   sv   t tj d¡ d¡|d�}|j|dd� t|ƒ�&}tj|ddd� |¡}W d   ƒ n1 s\0    Y  t	 
||¡ d S )Nr8   r   rå   rÍ   ri   r   rj   )r
   r™   rÅ   rÆ   rB   r   rC   rD   rè   r#   rE   )rG   rá   r   rJ   r[   rÓ   r   r   r   Útest_float_types  s    
ÿ"z TestExcelWriter.test_float_typesc                 C   sp   t g d¢tjd�}|j|dd� t|ƒ�(}tj|ddd� tj¡}W d   ƒ n1 sV0    Y  t 	||¡ d S )N)r5   r   TFrå   rÍ   ri   r   rj   )
r
   r™   Zbool_rB   r   rC   rD   rè   r#   rE   ©rG   r   rJ   r[   rÓ   r   r   r   Útest_bool_types  s    
ÿ"zTestExcelWriter.test_bool_typesc                 C   sr   t dtjfddtj fgƒ}|j|dd� t|ƒ� }tj|ddd�}W d   ƒ n1 sX0    Y  t ||¡ d S )Nr5   )r8   r2   r‰   rÍ   ri   r   rj   )	r
   r™   ÚinfrB   r   rC   rD   r#   rE   rì   r   r   r   Útest_inf_roundtrip%  s
    
.z"TestExcelWriter.test_inf_roundtripc           
      C   sº  t |ƒ}ttj d¡ d¡ttdƒƒtdddd�d�}t	j
t |j¡d d	�}||_|d d … }|j |¡|_| ¡ }tj|jd d…|j d
¡f< |j|dd� |j|dd
dgd� |j|ddd� |j|ddd� t|ƒ�,}|j|dd� |j|dd� W d   ƒ n1 �s0    Y  t|ƒ�<}t	j|ddd�}	t ||	¡ t	j|ddd�}	W d   ƒ n1 �sd0    Y  t ||	¡ dt|jƒk�sŽJ ‚d|jd k�s¢J ‚d|jd k�s¶J ‚d S )Nr8   rÖ   r×   rØ   r‰   rV   rÙ   r“   rÚ   rU   rÍ   ri   rÎ   FrÏ   rT   Ztest2r   rj   r5   )r   r
   r™   rÅ   rÆ   rÇ   r   r—   r   rC   rÛ   rÜ   r>   rÝ   rª   r›   rœ   rS   rÒ   rB   r   r   rD   r#   rE   ÚlenÚsheet_names)
rG   r   r   rÞ   Útsframer>   rH   rZ   r[   rÓ   r   r   r   Útest_sheets.  s6    
ý
.
0zTestExcelWriter.test_sheetsc                 C   sØ   |  ¡ }tj|jd d…|j d¡f< |j|dd� |j|dddgd� |j|ddd� |j|ddd	� tg d
¢ƒ}|j|d|d� t|ƒ� }t	j
|ddd�}W d   ƒ n1 s°0    Y  |  ¡ }||_t ||¡ d S )Nr‰   rU   rÍ   ri   rV   rÎ   FrÏ   rT   )ZAArw   ry   ÚZr   rj   )rª   r™   r›   rœ   rS   rÒ   rB   r   r   rC   rD   r#   rE   )rG   r   r   Zcol_aliasesr[   ÚrsÚxpr   r   r   Útest_colaliasesQ  s    
.zTestExcelWriter.test_colaliasesc                 C   sŠ  |  ¡ }tj|jd d…|j d¡f< |j|d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 d   ƒ n1 sÊ0    Y  dg|j_|jj|jjksòJ ‚ttj 	d
¡ 
d¡ƒdk}|j|dg d¢|d� t|ƒ�(}tj|ddd� tj¡}W d   ƒ n1 �sZ0    Y  dg|j_|jj|jjk�s„J ‚ttj 	d
¡ 
d¡ƒdk}|j|dd|d� t|ƒ�(}tj|ddd� tj¡}W d   ƒ n1 �sè0    Y  dg|j_t || t¡¡ |j|dg d¢d|d� |  ¡ }| ddg¡}t|ƒ�$}tj|dddgd�}W d   ƒ n1 �sp0    Y  t ||¡ d S )Nr‰   rU   rÍ   ri   rV   rÎ   FrÏ   rT   r8   rÃ   r   Útest)r=   Zindex_labelr"   rj   )rø   ÚdummyZdummy2)rU   rV   ÚCÚD)r=   rS   r>   r"   r5   )rª   r™   r›   rœ   rS   rÒ   rB   r
   rÅ   rÆ   rÇ   r   rC   rD   rè   ré   r>   rW   r#   rE   r–   Ú	set_index)rG   r"   r   r   rJ   r[   rÓ   r   r   r   Útest_roundtrip_indexlabelsc  sf    
ÿ
ÿ"
ü
ÿ$
ÿ
ÿ$
û
4z*TestExcelWriter.test_roundtrip_indexlabelsc                 C   sŠ   t tj d¡ d¡ƒ}d|j_|j||d� t|ƒ�&}t	j
||jd dd�}W d   ƒ n1 s`0    Y  t ||¡ |jjdks†J ‚d S )Nr8   )r   r1   rN   ©r"   r   rj   )r
   r™   rÅ   rÆ   rÇ   r>   ÚnamerB   r   rC   rD   rñ   r#   rE   )rG   r"   r   rJ   ÚxfrK   r   r   r   Útest_excel_roundtrip_indexname   s    
4z.TestExcelWriter.test_excel_roundtrip_indexnamec           
      C   sÞ   t |ƒ}ttj d¡ d¡ttdƒƒtdddd�d�}t	j
t |j¡d d	�}||_| ¡ }d
d„ |jD ƒ|_|j|d|d� t|ƒ� }t	j|ddd�}W d   ƒ n1 sª0    Y  |d d … }	|	j |¡|	_t |	|¡ d S )Nr8   rÖ   r×   rØ   r‰   rV   rÙ   r“   rÚ   c                 S   s   g | ]}|  ¡ ‘qS r   )r   )rd   rt   r   r   r   rg   »  rh   zATestExcelWriter.test_excel_roundtrip_datetime.<locals>.<listcomp>rÍ   ©r=   r"   r   rj   )r   r
   r™   rÅ   rÆ   rÇ   r   r—   r   rC   rÛ   rÜ   r>   rª   rB   r   rD   rÝ   r#   rE   )
rG   r"   r   rÞ   rò   r>   Ztsfr[   rÓ   rH   r   r   r   Útest_excel_roundtrip_datetime¬  s     
ý
.z-TestExcelWriter.test_excel_roundtrip_datetimec              
   C   sæ  t |ƒ}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�}| d|› d�¡}t |¡�ø}t|ƒ�}|j|dd� W d   ƒ n1 sî0    Y  t|ddd��}|j|dd� W d   ƒ n1 �s,0    Y  t	|ƒ� }	t
j|	ddd�}
W d   ƒ n1 �sf0    Y  t	|ƒ� }t
j|ddd�}W d   ƒ n1 �s 0    Y  W d   ƒ n1 �sÀ0    Y  t |
|¡ t ||¡ d S )NiÞ  r5   é   iÏ  é	   é   iÎ  r‰   é   é   r_   r1   r8   é   é   ZDATEZDATETIMErw   ry   ©r>   rS   úM8[ú]rÍ   ri   z
DD.MM.YYYYzDD.MM.YYYY HH-MM-SS)r©   Zdatetime_formatr   rj   )r   r
   r   r   rè   r#   r$   r   rB   r   rC   rD   rE   )rG   r%   r   rÞ   rJ   Zdf_expectedÚ	filename2Zwriter1Zwriter2Zreader1Zrs1Zreader2Zrs2r   r   r   Útest_excel_date_datetime_formatÅ  s@    "þú"þú
,ý.
0
Pz/TestExcelWriter.test_excel_date_datetime_formatz7ignore:invalid value encountered in cast:RuntimeWarningc                 C   s¶   t tj d¡jdddd�tjd�}| ¡ }t |d d¡|d< t |d d¡ 	|sVt
nd	¡|d< |j|d
d� t|ƒ� }tj|d
dd�}W d   ƒ n1 sœ0    Y  t ||¡ d S )Nr8   râ   r   ©é   r5   rã   rå   r   ÚnewÚstrrÍ   ri   rj   )r
   r™   rÅ   rÆ   rç   ré   rª   rC   Úcutrè   r  rB   r   rD   r#   rE   )rG   r   Zusing_infer_stringrJ   rH   r[   rÓ   r   r   r   Ú test_to_excel_interval_no_labelsô  s    ÿ
ÿ
.z0TestExcelWriter.test_to_excel_interval_no_labelsc                 C   s²   t tj d¡jdddd�tjd�}| ¡ }tj|d dg d¢d	�}||d
< t 	t
|ƒ¡|d
< |j|dd� t|ƒ� }tj|ddd�}W d   ƒ n1 s˜0    Y  t ||¡ d S )Nr8   râ   r   r  rã   rå   r   )
rU   rV   rú   rû   ÚEÚFÚGÚHÚIÚJ)Úlabelsr  rÍ   ri   rj   )r
   r™   rÅ   rÆ   rç   ré   rª   rC   r  ZSeriesr—   rB   r   rD   r#   rE   )rG   r   rJ   rH   Z	intervalsr[   rÓ   r   r   r   Útest_to_excel_interval_labels
  s    ÿÿ
.z-TestExcelWriter.test_to_excel_interval_labelsc                 C   s°   t tj d¡jdddd�dgtjd�}| ¡ }|d  dd	„ ¡|d
< |d  dd	„ ¡|d
< |j|dd� t	|ƒ� }t
j|ddd�}W d   ƒ n1 s–0    Y  t ||¡ d S )Nr8   râ   r   r  rã   rU   ©rS   ræ   c                 S   s
   t | d�S )N©Úseconds)r   r¥   r   r   r   r¦   (  rh   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¦   *  rh   rÍ   ri   r   rj   )r
   r™   rÅ   rÆ   rç   ré   rª   ÚapplyrB   r   rC   rD   r#   rE   )rG   r   rJ   rH   r[   rÓ   r   r   r   Útest_to_excel_timedelta  s    ýÿ
.z'TestExcelWriter.test_to_excel_timedeltac                 C   sž   t tj d¡ d¡ttdƒƒtdddd�d�}| d	¡ 	¡  
d
¡}|j|dd� t|ƒ� }tj|ddd�}W d   ƒ n1 s~0    Y  t || 
d
¡¡ d S )Nr8   rÖ   r×   rØ   r‰   rV   rÙ   r“   ZMEÚMZsht1ri   r   rj   )r
   r™   rÅ   rÆ   rÇ   r   r—   r   ZresampleÚmeanZ	to_periodrB   r   rC   rD   r#   rE   )rG   r   rJ   rö   r[   rõ   r   r   r   Útest_to_excel_periodindex2  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 d   ƒ n1 s 0    Y  t ||¡ d S )Nr8   rå   r•   ÚfirstÚsecondr‘   rÍ   FrÏ   rU   rV   rÎ   r  r   r5   rj   )r™   Úarangerð   r>   ré   Úreshaper   r˜   rB   r   rC   rD   r#   rE   )rG   r"   r   r   ÚarraysÚ	new_indexr[   rJ   r   r   r   Útest_to_excel_multiindexA  s    "
2z(TestExcelWriter.test_to_excel_multiindexc                 C   sd   t g d¢g d¢tj d¡ d¡dœƒ}| ddg¡}|j||d� tj|d	d
gd�}t 	||¡ d S )N)Nr8   r2   )r   r  é   r8   r2   ©rU   rV   rú   rU   rV   rþ   r   r5   r¢   )
r
   r™   rÅ   rÆ   rü   rB   rC   rD   r#   rE   )rG   r"   r   rJ   Zdf1r   r   r   Ú"test_to_excel_multiindex_nan_labelP  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 g d¢¡}||_	dd	g}|s^d}|j
|d
|d� t|ƒ�&}tj|d
|dd	gd�}	W d   ƒ n1 s¢0    Y  |sÔ|j	jddd�}
dd„ t|
Ž D ƒ|_	t ||	¡ d S )Nr8   rå   r•   r'  r(  r‘   ))é(   r5   )r1  r8   )é2   r5   )r2  r8   r   r5   rÍ   r  ©r=   r?   rX   F)ZsparsifyZinclude_namesc                 S   s   g | ]}d   tt|ƒ¡‘qS )r'   )ÚjoinÚmapr  )rd   Úqr   r   r   rg   t  rh   zATestExcelWriter.test_to_excel_multiindex_cols.<locals>.<listcomp>)r™   r)  rð   r>   ré   r*  r   r˜   Úfrom_tuplesrS   rB   r   rC   rD   Z_format_multirl   r#   rE   )rG   r"   r   r   r+  r,  Znew_cols_indexr?   r[   rJ   Úfmr   r   r   Útest_to_excel_multiindex_colsa  s"    "
ÿ$z-TestExcelWriter.test_to_excel_multiindex_colsc                 C   sÔ   t |ƒ}ttj d¡ d¡ttdƒƒtdddd�d�}t	j
|j |¡tjt|jƒtjd	�gd
dgd�|_|j|d|d� t|ƒ�$}tj|dddgd�}W d   ƒ n1 sª0    Y  t ||¡ |jjdksÐJ ‚d S )Nr8   rÖ   r×   rØ   r‰   rV   rÙ   r“   rå   ÚtimerN   r‘   rÍ   r  r   r5   rj   )r:  rN   )r   r
   r™   rÅ   rÆ   rÇ   r   r—   r   r   r˜   r>   rÝ   r)  rð   ré   rB   r   rC   rD   r#   rE   rW   )rG   r"   r   rÞ   rò   r[   rÓ   r   r   r   Útest_to_excel_multiindex_datesw  s"    
ý
þû
2z.TestExcelWriter.test_to_excel_multiindex_datesc                 C   sŽ   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 d   ƒ n1 st0    Y  t	 
||¡ d S )Nr   r  r.  r1  r2  é<   )rP   rQ   Úc)éF   éP   )éZ   r6   rÍ   FrT   ri   )r
   rª   r   r7  r>   rB   r   rC   rD   r#   rE   )rG   r   Zframe1rË   Zmulti_indexr[   Zframe3r   r   r   Ú'test_to_excel_multiindex_no_write_indexŽ  s    
,z7TestExcelWriter.test_to_excel_multiindex_no_write_indexc                 C   sˆ   t g g d¢d�}t g tjg ddgd�dgd�}|j|dd	� t|ƒ�}tj|dd	�}W d   ƒ n1 sh0    Y  tj||d
d
d� d S )N)r   r5   r8   rR   r   r5   r‘   r8   r  rÍ   ri   F)Zcheck_index_typeZcheck_dtype)	r
   r   r7  rB   r   rC   rD   r#   rE   )rG   r   rH   rJ   r[   rK   r   r   r   Útest_to_excel_empty_multiindex£  s    
,ÿz.TestExcelWriter.test_to_excel_empty_multiindexc                 C   sœ   t g d¢g d¢gddgg d¢d�}|j|ddd	� t|ƒ� }tj|dd
d�}W d   ƒ n1 s`0    Y  t g d¢g d¢gddgg d¢d�}t ||¡ d S )N©g¿¶~úÏš¿?g9DÜœJÎ?g>éD‚)â?©gÜ.4×i¤(@ç33333þ@çÍÌÌÌ¤œArU   rV   ©rw   ry   rô   r  rÍ   ú%.2f©r=   Zfloat_formatr   rj   ©g¸…ëQ¸¾?gq=
×£pÍ?g=
×£p=â?©g¤p=
×£(@rE  rF  )r
   rB   r   rC   rD   r#   rE   )rG   r   rJ   r[   rK   rH   r   r   r   Útest_to_excel_float_format°  s    ý
.ýz*TestExcelWriter.test_to_excel_float_formatc                 C   s~   t g d¢g d¢gddgg d¢d�}t d| ¡�:}|j|dd	� tj|dd
d�}t ||¡ W d   ƒ n1 sp0    Y  d S )N)u   Æ’u   Æ“u   Æ”)u   Æ•u   Æ–u   Æ—u   AÆ’rV   )u   XÆ“ry   rô   r  z__tmp_to_excel_float_format__.Z	TestSheetri   r   rj   rA   )rG   r%   rJ   rI   rK   r   r   r   Útest_to_excel_output_encodingÂ  s    ýz-TestExcelWriter.test_to_excel_output_encodingc              	   C   s  t  d| ¡�Æ}z.t|dƒ� W d   ƒ n1 s20    Y  W n tyZ   t d¡ Y n0 tg d¢g d¢gddgg d¢d	�}|j|d
dd� t|ƒ� }t	j
|d
dd�}W d   ƒ n1 s¼0    Y  W d   ƒ n1 sÚ0    Y  tg d¢g d¢gddgg d¢d	�}t  ||¡ d S )Nu   Æ’u.Úwbz$No unicode file names on this systemrC  rD  rU   rV   rG  r  rÍ   rH  rI  r   rj   rJ  rK  )r#   r$   ÚopenÚUnicodeEncodeErrorr¹   Úskipr
   rB   r   rC   rD   rE   )rG   r%   rI   rJ   r[   rK   rH   r   r   r   Útest_to_excel_unicode_filenameÏ  s(    "ý
Lýz.TestExcelWriter.test_to_excel_unicode_filenameÚuse_headersTFÚr_idx_nlevelsr`   Úc_idx_nlevelsc                    sò  d‡ ‡fdd„	}|rdnd }|t dgƒ||ƒ}|jdks<J ‚|jd tjusPJ ‚d‰d‰|d	kr|td
d„ tˆƒD ƒtd�}	n.tj	‡fdd„t|ƒD ƒdd„ t|ƒD ƒd�}	|d	krÎtdd„ tˆƒD ƒtd�}
n.tj	‡fdd„t|ƒD ƒdd„ t|ƒD ƒd�}
t t 
ˆˆf¡|	|
d�}|d	k�rbd}tjt|d�� |||dd� W d   ƒ n1 �sV0    Y  nŒ|||ƒ}|�rŒ|jˆˆ| fk�s¨J ‚n|jˆd	 ˆ| fk�s¨J ‚tt|jƒƒD ]6}tt|jƒƒD ] }|j||f tju�sÈJ ‚�qÈ�q¶d S )NTr   c                    sT   | j ˆ|ˆ |d� tˆƒ�&}tj||jd |d�W  d   ƒ S 1 sF0    Y  d S )N)r?   r"   r>   r   rÏ   )rB   r   rC   rD   rñ   )Údatar?   Z
parser_hdrr>   r   )r"   r   r   r   Ú	roundtripî  s
    
ÿz;TestExcelWriter.test_excel_010_hemstring.<locals>.roundtrip)r5   r8   )r   r   r‰   r2   r5   c                 S   s   g | ]}d |› �‘qS )za-r   r�   r   r   r   rg     rh   z<TestExcelWriter.test_excel_010_hemstring.<locals>.<listcomp>rå   c                    s   g | ]}t ˆ ƒ‘qS r   rŠ   rŒ   )Úncolsr   r   rg     rh   c                 S   s   g | ]}d |› �‘qS ©zi-r   r�   r   r   r   rg   	  rh   r‘   c                 S   s   g | ]}d |› �‘qS )zb-r   r�   r   r   r   rg     rh   c                    s   g | ]}t ˆ ƒ‘qS r   rŠ   rŒ   )Únrowsr   r   rg     rh   c                 S   s   g | ]}d |› �‘qS )zj-r   r�   r   r   r   rg     rh   r“   z_Writing to Excel with MultiIndex columns and no index \('index'=False\) is not yet implemented.r¾   Fr³   )Tr   T)r
   r½   rœ   r™   r›   r   r‹   Úobjectr   r˜   rš   r¹   r¿   ÚNotImplementedErrorrð   r>   rS   )rG   r"   rU  rT  rS  r   rW  Zparser_headerr¯   rS   r>   rJ   rÁ   Úrr=  r   )r"   rX  rZ  r   r   Útest_excel_010_hemstringè  sH    	þþý
ÿ0
z(TestExcelWriter.test_excel_010_hemstringc                 C   s  t g d¢g d¢g d¢gg d¢d�}|j|dd� t g d¢g d¢g d¢gg d¢d�}tj|ddd�}t ||¡ t g d	¢g d
¢gg d¢d�}|j|dd� tj|ddd�}t g d	¢g d
¢gg d¢d�}t ||¡ |j|dddd� tj|dd d�}t g d	¢g d
¢gƒ}t ||¡ d S )Nr`   )rU   rV   rV   rR   rÍ   ri   )rU   rV   úB.1r   rj   )r5   r8   r2   r1   )r‰   é   rr   é   )rU   rV   rU   rV   )rU   rV   úA.1r_  Fr<   rÏ   ©r
   rB   rC   rD   r#   rE   ©rG   r   rJ   rH   rK   r   r   r   Útest_duplicated_columns0  s$    "ÿÿz'TestExcelWriter.test_duplicated_columnsc                 C   sf   t g d¢g d¢dœƒ}|j|dddgd� tj|ddd	�}t |d |d ¡ t |d |d ¡ d S )
N©r5   r5   r5   ©r8   r8   r8   ©rU   rV   rÍ   rV   rU   rÎ   r   rÏ   )r
   rB   rC   rD   r#   Úassert_series_equal)rG   r   Úwrite_frameÚ
read_framer   r   r   Útest_swapped_columnsM  s
    z$TestExcelWriter.test_swapped_columnsc                 C   sž   t g d¢g d¢dœƒ}tjtdd��$ |j|dddgd	� W d   ƒ n1 sN0    Y  tjtd
d��$ |j|dddgd	� W d   ƒ n1 s�0    Y  d S )Nrf  rg  rh  zNot all names specifiedr¾   rÍ   rV   rú   rÎ   z.'passes columns are not ALL present dataframe'rû   )r
   r¹   r¿   ÚKeyErrorrB   )rG   r   rj  r   r   r   Útest_invalid_columnsW  s    2ÿz$TestExcelWriter.test_invalid_columnsz#to_excel_index,read_excel_index_col)Tr   )FNc                 C   s^   t g d¢g d¢g d¢dœƒ}|j|dddg|d� |ddg }tj|d|d	�}t ||¡ d S )
Nrf  rg  )r2   r2   r2   r/  Zcol_subset_bugrU   rV   )r=   rS   r>   rj   rc  )rG   r   Zto_excel_indexZread_excel_index_colrj  rH   rk  r   r   r   Útest_write_subset_columnsc  s    	ÿÿz)TestExcelWriter.test_write_subset_columnsc                 C   st   t g d¢g d¢dœƒ}|j|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©Úonez#onerq  ©Útwors  z#tworh  Útest_cri   r   rj   )r5   r   ©r5   r5   )r8   r5   ú#©r=   ÚcommentrX   )r
   rB   rC   rD   rœ   r#   rE   ©rG   r   rJ   Zresult1Zresult2r   r   r   Útest_comment_argx  s    


z TestExcelWriter.test_comment_argc                 C   sR   t g d¢g d¢dœƒ}|j|dd� tj|dd�}tj|dd d�}t ||¡ d S )Nrp  rr  rh  rt  ri   )r=   rx  rc  ry  r   r   r   Útest_comment_default‹  s
    z$TestExcelWriter.test_comment_defaultc                 C   s\   t g d¢g d¢dœƒ}|j|dd� t g d¢g d¢dœƒ}tj|ddd	d
�}t ||¡ d S )Nrp  rr  rh  rt  ri   )rq  Nrq  )rs  NNrv  r   rw  rc  rd  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)rP   rQ   Fr³   r5   r8   rv  )rx  rc  rd  r   r   r   Útest_comment_empty_line¦  s
    z'TestExcelWriter.test_comment_empty_linec                 C   s  t |ƒ}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ƒ}|j|dd � tj|ddd!�}| d"|› d#�¡}t |d |d ¡ d S )$NiÝ  r5   r
  r8   r2   é-   é8   r1   é   é1   r`  é*   rr   é9   é#   r  é)   r	  r]   é   é   é   é5   é   é%   r   é   r  é4   rU   rÑ   ri   rÏ   r  r  )	r   r   r
   rB   rC   rD   rè   r#   ri  )rG   r   rÞ   Z	datetimesrj  rk  rH   r   r   r   Útest_datetimes²  s$    õzTestExcelWriter.test_datetimesc              	   C   sš   t ƒ �€}ttj d¡ d¡ƒ}t||d��}| |¡ W d   ƒ n1 sJ0    Y  | d¡ t	j
|dd�}t ||¡ W d   ƒ n1 sŒ0    Y  d S )Nr8   rÃ   ©r)   r   r¢   )r   r
   r™   rÅ   rÆ   rÇ   r   rB   ÚseekrC   rD   r#   rE   )rG   r)   ZbiorJ   rZ   Z	reread_dfr   r   r   Útest_bytes_ioÊ  s    (
zTestExcelWriter.test_bytes_ioc                 C   s¤   t dddœdddœgƒ}ddddœ}tr8d	|d
< d	|d< |d
krTtj |¡sTd|d
< tjtt 	|| ¡d��$ |j
||ddid� W d   ƒ n1 s–0    Y  d S )Nr5   r8   rh  r2   r1   zBOpenDocumentSpreadsheet() got an unexpected keyword argument 'foo'z3__init__() got an unexpected keyword argument 'foo')r/   r,   r.   z<Workbook.__init__() got an unexpected keyword argument 'foo'r,   r.   z8load_workbook() got an unexpected keyword argument 'foo'r¾   rN   rO   )r)   Zengine_kwargs)r
   r   Úosr   Úexistsr¹   r¿   Ú	TypeErrorÚreÚescaperB   )rG   r)   r   rJ   Zmsgsr   r   r   Útest_engine_kwargs×  s2    üþÿþÿþÿýz"TestExcelWriter.test_engine_kwargsc                 C   s|   t dddgdddœgg d¢g d¢d	œƒ}|j|d
d� tj|d
ddd�}| ¡ }|j t¡|_|j 	d¡|_t
 ||¡ d S )NrP   rQ   r=  Úer8   )ra   Úf)r5   r8   g      @)ÚappleÚbananaZcherry)ÚmixedÚnumericr  rÑ   ri   r   r3  ré   )r
   rB   rC   rD   rª   rŸ  r"  r  r   rè   r#   rE   ©rG   r   rJ   ÚreadrH   r   r   r   Útest_write_lists_dict÷  s    ýÿz%TestExcelWriter.test_write_lists_dictc                 C   sH   t ddgddgdœƒ}|j|dd� tj|ddd	�}|}t ||¡ d S )
Nr5   r8   r2   r1   )ÚrenderrV  rÑ   ri   r   r¢   rc  r¡  r   r   r   Útest_render_as_column_name	  s
    z*TestExcelWriter.test_render_as_column_namec                 C   sˆ   t ddggddgtd�}tddƒ�& | ddd	œ¡ d
¡}W d   ƒ n1 sN0    Y  | |¡ tj|dgdgdd�}t 	||¡ d S )NrN   rO   Úcol1Úcol2r  zfuture.no_silent_downcastingTF)rN   rO   r–   r   )Ztrue_valuesZfalse_valuesrX   )
r
   r[  r   Úreplacerè   rB   rC   rD   r#   rE   )rG   r   rJ   rH   rk  r   r   r   Ú!test_true_and_false_value_options  s    4
ÿ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 )Nr5   r8   r2   r1   r¦  r§  rR   rÑ   ru  )r=   Zfreeze_panesr   r¢   rc  )rG   r   rH   rK   r   r   r   Útest_freeze_panes  s    z!TestExcelWriter.test_freeze_panesc                 C   sz   t dt d¡ d¡ ttdƒƒtdd„ tdƒD ƒƒd�}t|j|d	�}tt	j
d
d�}tj||d|› �d�}t ||¡ d S )Nr’   éx   ©r.  r1   r×   c                 S   s   g | ]}d |› �‘qS rY  r   r�   r   r   r   rg   )  rh   z6TestExcelWriter.test_path_path_lib.<locals>.<listcomp>r.  r“   r’  r   r¢   rN   r   )r
   r™   r)  r*  r   r—   r‹   r   rB   rC   rD   r#   Zround_trip_pathlibrE   ©rG   r)   r%   rJ   rZ   r[   rK   r   r   r   Útest_path_path_lib%  s    
ýz"TestExcelWriter.test_path_path_libc                 C   sz   t dt d¡ d¡ ttdƒƒtdd„ tdƒD ƒƒd�}t|j|d	�}tt	j
d
d�}tj||d|› �d�}t ||¡ d S )Nr’   r«  r¬  r×   c                 S   s   g | ]}d |› �‘qS rY  r   r�   r   r   r   rg   5  rh   z8TestExcelWriter.test_path_local_path.<locals>.<listcomp>r.  r“   r’  r   r¢   rN   r   )r
   r™   r)  r*  r   r—   r‹   r   rB   rC   rD   r#   Zround_trip_localpathrE   r­  r   r   r   Útest_path_local_path1  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)r8   r8   ré   rå   rR   r   r5   r{   c                 S   s   g | ]}t |ƒ‘qS r   )r  r�   r   r   r   rg   J  rh   zCTestExcelWriter.test_merged_cell_custom_objects.<locals>.<listcomp>)Úlevel)r   r7  rC   ZPeriodr
   r™   rš   rB   rD   rS   Z
set_levelsZlevelsr#   rE   )rG   r   ÚmirH   rK   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 d   ƒ n1 sN0    Y  | ¡ }t|g|d�}tjtdd�� | |¡ W d   ƒ n1 sœ0    Y  d S )NZ2019)Útzrå   zExcel does not supportr¾   )rC   r´   r
   r¹   r¿   rÀ   rB   Zto_pydatetime)rG   ræ   Ztz_aware_fixturer   r³  rV  rJ   r   r   r   Ú test_raise_when_saving_timezonesO  s    (z0TestExcelWriter.test_raise_when_saving_timezonesc                 C   s`   t ddgddgdœƒ}|j|g d¢dd� t |¡}t g d	¢g d
¢gg d¢d�}t ||¡ d S )Nr   r5   r   r]   rh  )rU   rV   rU   Fr“   )r   r   r   )r5   r]   r5   )rU   rV   rb  rR   rc  )rG   r   rJ   rK   rH   r   r   r   Ú'test_excel_duplicate_columns_with_names]  s
    
z7TestExcelWriter.test_excel_duplicate_columns_with_namesc              	   C   sr   d}t  |¡�P}tjtt |¡d�� t|dd� W d   ƒ n1 sF0    Y  W d   ƒ n1 sd0    Y  d S )Nz7if_sheet_exists is only valid in append mode (mode='a')r¾   r¨  )Zif_sheet_exists)r#   r$   r¹   r¿   rÀ   r˜  r™  r   )rG   r%   rÁ   rœ  r   r   r   Útest_if_sheet_exists_raisesf  s    z+TestExcelWriter.test_if_sheet_exists_raisesc              	   C   s‚   t  |¡�d}t||d��}tƒ  |¡ W d   ƒ n1 s:0    Y  t |¡}tƒ }t  ||¡ W d   ƒ n1 st0    Y  d S ©Nr’  )r#   r$   r   r
   rB   rC   rD   rE   )rG   r)   r%   r   rZ   rK   rH   r   r   r   Útest_excel_writer_empty_framen  s    *
z-TestExcelWriter.test_excel_writer_empty_framec                 C   sZ   t  |¡�<}tƒ j||d� t |¡}tƒ }t  ||¡ W d   ƒ n1 sL0    Y  d S r·  r�   )rG   r)   r%   r   rK   rH   r   r   r   Útest_to_excel_empty_framew  s
    
z)TestExcelWriter.test_to_excel_empty_frame)Fr¶   r·   r¸   rÂ   rÊ   rÌ   rÔ   rÕ   rß   rà   r¹   rº   r»   r™   Zint8Zint16Zint32ré   rê   Zfloat16Zfloat32Zfloat64rë   rí   rï   ró   r÷   rý   r  r  r  Úfilterwarningsr  r  r#  r&  r-  r0  r9  r;  rA  rB  rL  rM  rR  r^  re  rl  rn  ro  rz  r{  r|  r€  r‘  r”  rš  r£  r¥  r©  rª  r®  r¯  r²  r[  r´  rµ  r¶  r¸  r¹  r   r   r   r   r¼   a  sŠ   1	

	#=/ÿ
E
þþ
 
		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  |¡�n}t|ƒ�F}|dkr>ttddd�ƒr>t|tƒsLJ ‚nt||ƒsLJ ‚W d   ƒ n1 s`0    Y  W d   ƒ n1 s~0    Y  d S )Nr+   r.   Úignore)Úerrors)r#   r$   r   r–   r	   Ú
isinstancer   )rG   Úklassr%   r   rZ   r   r   r   Útest_ExcelWriter_dispatch�  s    


ÿz4TestExcelWriterEngineTests.test_ExcelWriter_dispatchc                 C   s:   t jtdd�� tdƒ W d   ƒ n1 s,0    Y  d S )Nz	No enginer¾   Znothing)r¹   r¿   rÀ   r   ©rG   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 |ƒ�}t||ƒsLJ ‚W d   ƒ n1 s`0    Y  tdgtdgdd	�td
gdd	�d�}| |¡ W d   ƒ n1 s¬0    Y  | 	¡  W d   ƒ n1 sÒ0    Y  t d¡�}|j|dd� W d   ƒ n1 �s0    Y  | 	¡  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 r   r   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)rG   Ú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   rn   ¨  s    zJTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.sheetsc                 S   s.   | j s
J ‚| jsJ ‚| jrJ ‚d| _ d| _d S )NF)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Ë  Úpropertyrn   ÚclassmethodrÎ  r   r   r   r   Ú
DummyClass˜  s   
rÑ  zio.excel.xlsx.writerrù   zsomething.xlsxrP   rQ   rN   )rÿ   r=  rO   r“   zsomething.xlsr’  )
r   r   r   r#   r$   r¾  r
   r   rB   rÎ  )rG   rÑ  r   ÚfilepathrZ   rJ   r   r   r   Útest_register_writer—  s"    
,ý(&.z/TestExcelWriterEngineTests.test_register_writerN)r¶   r·   r¸   r¹   rº   r»   r    r   ÚtdÚ
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d„ ZdS )Ú
TestFSPathc              	   C   s†   t  d¡�h}tdddgiƒ}| |¡ t|ƒ�}t |¡}W d   ƒ n1 sN0    Y  ||ksdJ ‚W d   ƒ n1 sx0    Y  d S )Núfoo.xlsxrU   r5   r8   )r#   r$   r
   rB   r   r•  Úfspath)rG   r   rJ   rÉ   rK   r   r   r   Útest_excelfile_fspathË  s    

(z TestFSPath.test_excelfile_fspathc              	   C   sl   t  d¡�N}t|ƒ�&}t |¡t|ƒks,J ‚W d   ƒ n1 s@0    Y  W d   ƒ n1 s^0    Y  d S )Nr×  )r#   r$   r   r•  rØ  r  )rG   r   rZ   r   r   r   Útest_excelwriter_fspathÓ  s    
z"TestFSPath.test_excelwriter_fspathc                 C   s`   t dg d¢iƒ}d}tjt|d��* tƒ }t|ƒ}| |d¡ W d   ƒ n1 sR0    Y  d S )NrP   r`   zwStarting with pandas version 3.0 all arguments of to_excel except for the argument 'excel_writer' will be keyword-only.r¾   ZSheet_name_1)r
   r#   r­   r®   r   r   rB   )rG   rJ   rÁ   ÚbufrZ   r   r   r   Ú"test_to_excel_pos_args_deprecationØ  s    ÿz-TestFSPath.test_to_excel_pos_args_deprecationN)r¶   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 ƒ}| |¡r2J ‚d S )Nc                 S   s   h | ]}|  d ¡s|’qS ©r�   ©Ú
startswith©rd   rÿ   r   r   r   Ú	<setcomp>è  rh   z%test_subclass_attr.<locals>.<setcomp>c                 S   s   h | ]}|  d ¡s|’qS rÝ  rÞ  rà  r   r   r   rá  é  rh   )Údirr   Úsymmetric_difference)r¿  Z
attrs_baseZattrs_klassr   r   r   Útest_subclass_attrå  s    rä  )<r   r   r   Ú	functoolsr   Úior   r•  r˜  Únumpyr™   r¹   Zpandas.compatr   Zpandas.compat._constantsr   Zpandas.compat._optionalr	   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrÔ  ZpandasrC   r
   r   r   r   r   Zpandas._testingZ_testingr#   Zpandas.io.excelr   r   r   r   r   Zpandas.io.excel._utilr   rº   Z
single_cpuZ
pytestmarkr  r   Zfixturer   r"   r   r*   r»   r    rÕ  r0   Zusefixturesr¼   r»  rÖ  Úvaluesrä  r   r   r   r   Ú<module>   s–   



ÿúþ  ýýýðþ
        H