o
    �¨Êh	Ê  ã                   @   s¬   d dl Z d dlmZ d dlZd dlZd dlZd dlmZ d dl	Z
d dl	mZmZmZmZmZmZmZmZmZmZ d dlmZ d dlm  mZ d dlmZ G dd„ dƒZdS )é    N)ÚStringIO)ÚParserError)
Ú	DataFrameÚIndexÚ
MultiIndexÚNaTÚSeriesÚ	TimestampÚ
date_rangeÚperiod_rangeÚread_csvÚto_datetime)Ú
get_handlec                   @   sä  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dddgg¡dd„ ƒZe
jjdd„ ƒZ					dždd„Ze
jje
j dg d¢¡dd„ ƒƒZe
jje
j dg d¢¡e
j dg d¢¡e
j d g d!¢¡e
j d"¡d#d$„ ƒƒƒƒƒZe
jje
j dg d%¢¡e
j d g d!¢¡d&d'„ ƒƒƒZe
jje
j dg d(¢¡d)d*„ ƒƒZe
jjd+d,„ ƒZe
jjd-d.„ ƒZe
jje
j dg d¢¡e
j d g d/¢¡e
j d0d1d2id3d2igd4d2id5d2igd2d2d6œd2d2d7œgg¡d8d9„ ƒƒƒƒZd:d;„ Zd<d=„ Zd>d?„ Zd@dA„ ZdBdC„ ZdDdE„ ZdFdG„ ZdHdI„ Z dJdK„ Z!dLdM„ Z"dNdO„ Z#dPdQ„ Z$e
j dRg dS¢¡dTdU„ ƒZ%e
jjdVdW„ ƒZ&dXdY„ Z'dZd[„ Z(d\d]„ Z)d^d_„ Z*d`da„ Z+dbdc„ Z,ddde„ Z-e
j dfddgg¡dhdi„ ƒZ.djdk„ Z/dldm„ Z0dndo„ Z1dpdq„ Z2e
j dre3g ds¢g dt¢gdudvgg dw¢dx�dfe3g dy¢gg dw¢dz�d{fe3d|g d}¢g g dw¢dz�d~fe3d|g d¢g g dw¢dz�d€fg¡d�d‚„ ƒZ4dƒd„„ Z5e
j d…e6 7d†¡e6 7d‡¡g¡dˆd‰„ ƒZ8dŠd‹„ Z9dŒd�„ Z:dŽd�„ Z;d�d‘„ Z<d’d“„ Z=d”d•„ Z>d–d—„ Z?d˜d™„ Z@dšd›„ ZAdœd�„ ZBdS )ŸÚTestDataFrameToCSVc                 K   s(   ddi}|j di |¤Ž t|fi |¤ŽS )NÚ	index_colr   © )Úupdater   )ÚselfÚpathÚkwargsÚparamsr   r   úX/var/www/html/env/lib/python3.10/site-packages/pandas/tests/frame/methods/test_to_csv.pyr      s   zTestDataFrameToCSV.read_csvc              	   C   s|  t  d¡�¯}tj|jd d…|j d¡f< | |¡ |j|ddgd� |j|dd� |j|dd� |j 	d ¡|_| |¡ | j
|d	d
�}t  ||¡ |j|dd� | j
|d d	d�}t|jƒt|jƒd ksfJ ‚|j|dd� | j
|d d	d�}t  |j|j¡ tttdƒtjdtjd�d�ttdƒtjdtjd�d�dœƒ}| |¡ |  
|¡}t  ||¡ W d   ƒ d S 1 s·w   Y  d S )NÚ__tmp_to_csv_from_csv1__é   ÚAÚB©ÚcolumnsF©Úheader©ÚindexT)Úparse_datesr!   ©Úindex_label©r   r"   é   é   ©Údtypeé   )Ús1Ús2)ÚtmÚensure_cleanÚnpÚnanÚilocr   Úget_locÚto_csvr!   Ú
_with_freqr   Úassert_frame_equalÚlenÚassert_almost_equalÚvaluesr   r   ÚrangeÚarangeÚint64)r   Úfloat_frameÚdatetime_framer   ÚreconsÚdmr   r   r   Útest_to_csv_from_csv1$   s2   

þÿ

"Ýz(TestDataFrameToCSV.test_to_csv_from_csv1c           
   	   C   sb  t  d¡�¢}ttj d¡ d¡g d¢g d¢d�}| |¡ |  |¡}t  	||¡ t
 g d¢¡}ttj d¡ d¡|g d¢d�}| |¡ | j|g d¢d	d
�}t j	||d	d� tg d¢ƒ}|j||d� |  |¡}| ¡ }||_t  	||¡ d}	tjt|	d�� |j|ddgd� W d   ƒ n1 s’w   Y  W d   ƒ d S W d   ƒ d S 1 sªw   Y  d S )NÚ__tmp_to_csv_from_csv2__r*   ©r'   r'   ©ÚarD   Úb)ÚxÚyÚz©r!   r   )©r   r&   r*   rJ   )r   r&   r*   ©r   r&   r*   Fr%   ©Úcheck_names)ÚAAÚXÚYÚZr   z Writing 4 cols but got 2 aliases©ÚmatchrN   rO   )r-   r.   r   r/   ÚrandomÚdefault_rngÚstandard_normalr3   r   r5   r   Úfrom_tuplesr   Úcopyr   ÚpytestÚraisesÚ
ValueError)
r   r<   r   ÚdfÚresultÚmidxÚcol_aliasesÚrsÚxpÚmsgr   r   r   Útest_to_csv_from_csv2J   s>   ý

ý

ÿà "àz(TestDataFrameToCSV.test_to_csv_from_csv2c                 C   sÀ   t  d¡�Q}ttj d¡ d¡ƒ}ttj d¡ d¡ƒ}| |¡ |j|ddd� t 	||g¡}t
|dd�}d	d
„ |jD ƒ|_dd
„ |jD ƒ|_t  ||¡ W d   ƒ d S 1 sYw   Y  d S )NÚ__tmp_to_csv_from_csv3__r*   )r'   r&   rD   F)Úmoder   r   ©r   c                 S   ó   g | ]}t |ƒ‘qS r   ©Úint©Ú.0Úlabelr   r   r   Ú
<listcomp>w   ó    z<TestDataFrameToCSV.test_to_csv_from_csv3.<locals>.<listcomp>c                 S   rg   r   rh   rj   r   r   r   rm   x   rn   )r-   r.   r   r/   rT   rU   rV   r3   ÚpdÚconcatr   r   r5   )r   r   Údf1Údf2ra   r`   r   r   r   Útest_to_csv_from_csv3n   s   
"öz(TestDataFrameToCSV.test_to_csv_from_csv3c                    s¾   t  d¡�P}tjdd�‰ td‡ fdd„tdƒD ƒit‡ fdd„tdƒD ƒd	d
�d�}| |¡ t|d	d�}t 	|j
¡|_
t 	|d ¡|d< t j||dd� W d   ƒ d S 1 sXw   Y  d S )NÚ__tmp_to_csv_from_csv4__r&   )ÚsecondsÚdt_datac                    ó   g | ]}|ˆ  ‘qS r   r   ©rk   Úi©Údtr   r   rm   €   rn   z<TestDataFrameToCSV.test_to_csv_from_csv4.<locals>.<listcomp>r'   c                    rw   r   r   rx   rz   r   r   rm   �   rn   Údt_index©Únamer    rf   T)Úcheck_index_type)r-   r.   ro   Ú	Timedeltar   r9   r   r3   r   Úto_timedeltar!   r5   ©r   r   r\   r]   r   rz   r   Útest_to_csv_from_csv4{   s   þ
"óz(TestDataFrameToCSV.test_to_csv_from_csv4c                    s|   t  d¡�/}ˆ |¡ t|ddgd�‰ ‡ ‡fdd„}|dƒˆ d< |dƒˆ d< t  ˆ ˆ¡ W d   ƒ d S 1 s7w   Y  d S )	NÚ__tmp_to_csv_from_csv5__r   r   r%   c                    s$   t ˆ |  ƒj d¡j ˆ|  jj¡S )NÚUTC)r   r{   Ú
tz_convertÚtz)Úc©r]   Útimezone_framer   r   Ú<lambda>’   s   
 z:TestDataFrameToCSV.test_to_csv_from_csv5.<locals>.<lambda>r   ÚC)r-   r.   r3   r   r5   )r   rŠ   r   Ú	converterr   r‰   r   Útest_to_csv_from_csv5‹   s   
ÿ"õz(TestDataFrameToCSV.test_to_csv_from_csv5c                 C   sÆ   d}t |d ƒ}tt |df¡tdd„ t|ƒD ƒdd�tdd„ tdƒD ƒdd�d	�}|j}|d
 |d g}t ¡ �}|j	|||d� t
|dd�}W d   ƒ n1 sRw   Y  tj|| |dd� d S )Nr   ç      @r'   c                 S   ó   g | ]}d |› �‘qS ©zi-r   rx   r   r   r   rm   ¡   ó    zBTestDataFrameToCSV.test_to_csv_cols_reordering.<locals>.<listcomp>rD   r}   c                 S   r�   r‘   r   rx   r   r   r   rm   ¢   r’   rI   r*   r   ©r   Ú	chunksizerf   FrL   )ri   r   r/   Úonesr   r9   r   r-   r.   r3   r   r5   )r   r”   ÚNr\   ÚcsÚcolsr   Úrs_cr   r   r   Útest_to_csv_cols_reorderingš   s   ý
þz.TestDataFrameToCSV.test_to_csv_cols_reorderingr˜   NrE   rD   c                 C   s.  d}t |d ƒ}tt |df¡tdd„ t|ƒD ƒdd�g d¢d	�}t ¡ �h}|j|||d
� t	|dd�}|d urq|j
jr@||_
n|j
 |¡\}}|j
 |¡|_
|D ]}	||	 }
||	 }t|
tƒrgt |
|¡ qQtj|
|dd� qQn|j
|_
tj||dd� W d   ƒ d S W d   ƒ d S 1 s�w   Y  d S )Nr   r�   r'   c                 S   r�   r‘   r   rx   r   r   r   rm   µ   r’   z@TestDataFrameToCSV.test_to_csv_new_dupe_cols.<locals>.<listcomp>rD   r}   rC   rI   r“   r   rf   FrL   )ri   r   r/   r•   r   r9   r-   r.   r3   r   r   Ú	is_uniqueÚget_indexer_non_uniqueÚtakeÚ
isinstancer   Úassert_series_equalr5   )r   r˜   r”   r–   r\   r   r™   ÚindexerÚmissingrˆ   Úobj_dfÚobj_rsr   r   r   Útest_to_csv_new_dupe_cols­   s6   ý

ú
è"óz,TestDataFrameToCSV.test_to_csv_new_dupe_colsc                 C   s”   ddd„}d}||d ƒ}||d dƒ}t  d¡�'}t||dœƒ}|j||d� |  |¡ t¡}t j||d	d
� W d   ƒ d S 1 sCw   Y  d S )Nc                 S   sz   |d u r
t | d ƒ}ttdd| d�ƒ}|r;tj d¡ dt|ƒ|¡D ]}t||< q"tj d¡ d¡}t|| < t||< |S )Ngš™™™™™¹?Ú2000Ú5min)ÚfreqÚperiodsr*   r   éd   )	ri   Úlistr
   r/   rT   rU   Úintegersr6   r   )ÚnÚnnatÚsry   r   r   r   Úmake_dtnat_arrÕ   s   

z<TestDataFrameToCSV.test_to_csv_dtnat.<locals>.make_dtnat_arréè  r   r   z1.csv©rD   rE   ©r”   FrL   ©N)r-   r.   r   r3   r   Úapplyr   r5   )r   r¯   r”   r+   r,   Úpthr\   r>   r   r   r   Útest_to_csv_dtnatÒ   s   
"ûz$TestDataFrameToCSV.test_to_csv_dtnatFc                    s®  ddi}|rA|d urt t|ƒƒ|d< t t|ƒƒ|d< t d¡�}	|j|	d|d� | j|	fi |¤Ž‰W d   ƒ n1 s;w   Y  n*d|d< t d¡�}	|j|	d|d� | j|	fi |¤Ž‰W d   ƒ n1 sfw   Y  d	d
„ ‰ |ru|jˆ_|r¡|s¡‡fdd„t|d ƒD ƒ}
t t ˆj	ƒg|
 ¡}|ˆ_	ˆj
d d …|d d …f ‰dddddddœ}|�r8|dkrÔd}tj‡ fdd„ˆj	D ƒ|d�ˆ_	tj‡ fdd„|j	D ƒ|d�|_	nd|dkr÷d}tjdd„ ˆj	D ƒ|d�ˆ_	tjdd„ |j	D ƒ|d�|_	nA|dk�r!d}tˆj	ƒ}tjdd„ |D ƒ|d�ˆ_	tjt tt|j	 ¡ ƒƒ|d�|_	n| |¡}tjˆj	|d�ˆ_	tj|j	|d�|_	|�rÓ|dk�rfd}tj‡ fdd„ˆjD ƒ|d�ˆ_tj‡ fdd„|jD ƒ|d�|_|ˆfS |dk�r�d}tjdd„ ˆjD ƒ|d�ˆ_tjdd„ |jD ƒ|d�|_|ˆfS |dk�r¼d}tˆjƒ}tjdd„ |D ƒ|d�ˆ_|j ¡ }tjd d„ |D ƒ|d�|_|ˆfS | |¡}tjˆj|d�ˆ_tj|j|d�|_|ˆfS )!Nr"   Fr   r   Ú__tmp_to_csv_moar__Úutf8)Úencodingr”   r   c                 S   s   t | tƒs
|  d¡S | S )Nr¸   )rž   ÚstrÚdecode©rF   r   r   r   Ú_to_uni  s   

z;TestDataFrameToCSV._return_result_expected.<locals>._to_unic                    s    g | ]}ˆ j d d …|f j‘qS r³   )r1   r8   rx   )r>   r   r   rm     ó     z>TestDataFrameToCSV._return_result_expected.<locals>.<listcomp>r&   ry   ÚfÚO)ry   r¿   r®   Úur{   ÚprÁ   c                    ó   g | ]}ˆ |ƒ‘qS r   r   rj   ©r½   r   r   rm     rn   r(   c                    rÃ   r   r   rj   rÄ   r   r   rm     rn   r{   c                 S   rg   r   ©r	   rj   r   r   r   rm   "  rn   c                 S   rg   r   rÅ   rj   r   r   r   rm   %  rn   rÂ   c                 S   rg   r   rÅ   rj   r   r   r   rm   +  rn   c                    rÃ   r   r   rj   rÄ   r   r   rm   8  rn   c                    rÃ   r   r   rj   rÄ   r   r   rm   ;  rn   c                 S   rg   r   rÅ   rj   r   r   r   rm   @  rn   c                 S   rg   r   rÅ   rj   r   r   r   rm   C  rn   c                 S   rg   r   rÅ   rj   r   r   r   rm   I  rn   c                 S   rg   r   rÅ   rj   r   r   r   rm   M  rn   )rª   r9   r-   r.   r3   r   r   r   Úfrom_arraysr!   r1   r/   Úarrayr   Úmapr	   Úto_timestampÚget)r   r\   r”   Úr_dtypeÚc_dtypeÚrnlvlÚcnlvlÚdupe_colr   r   Ú	delta_lvlÚixÚtype_mapÚidx_listÚcol_listr   )r½   r>   r   Ú_return_result_expectedì   s®   
þ€þÿ
ÿÿ
ÿ

ÿ
ÿ

ÿÿ
êÿÿ
ò
ÿ
ÿ
ýz*TestDataFrameToCSV._return_result_expectedÚnrows)r*   é
   éc   r©   ée   éf   éÆ   éÇ   éÈ   éÉ   éÊ   éù   éú   éû   c                 C   sT   t t |df¡td|d�ttdƒtd�d�}|  |ddd	¡\}}tj	||d
d� d S )Né   ú
2020-01-01©r¨   Úabcdr(   rI   r°   r{   r®   FrL   )
r   r/   r•   r
   r   rª   ÚobjectrÕ   r-   r5   )r   rÖ   r\   r]   Úexpectedr   r   r   Útest_to_csv_nrowsU  s   
ýz$TestDataFrameToCSV.test_to_csv_nrowszr_idx_type, c_idx_type))ry   ry   )r®   r®   )r®   r{   )rÂ   rÂ   Úncols©r&   r*   r'   rã   z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc           	      C   sn   dd„ dd„ dd„ dd„ dœ}t t ||f¡|| |ƒ|| |ƒd�}|  |d||¡\}}tj||d	d
� d S )Nc                 S   s   t t | ¡tjd�S )Nr(   )r   r/   r:   r;   ©r¬   r   r   r   r‹   m  rn   z:TestDataFrameToCSV.test_to_csv_idx_types.<locals>.<lambda>c                 S   s   t dd„ tdd|  ƒD ƒƒS )Nc                 S   s   g | ]}|› d t |ƒ› �‘qS )Ú_)Úchrrx   r   r   r   rm   n  ó    zNTestDataFrameToCSV.test_to_csv_idx_types.<locals>.<lambda>.<locals>.<listcomp>éa   )r   r9   rì   r   r   r   r‹   n  s    c                 S   s   t d| d�S )Nrä   rå   )r
   rì   r   r   r   r‹   o  s    c                 S   s   t d| dd�S )Nrä   ÚD)r¨   r§   )r   rì   r   r   r   r‹   p  ó    )ry   r®   r{   rÂ   rI   r°   FrL   )r   r/   r•   rÕ   r-   r5   )	r   rÖ   Ú
r_idx_typeÚ
c_idx_typerê   Úaxesr\   r]   rè   r   r   r   Útest_to_csv_idx_typesb  s"   ü

ýüz(TestDataFrameToCSV.test_to_csv_idx_types)r×   éb   rØ   r©   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   râ   c                 C   sh   t t ||f¡tdd„ t|ƒD ƒdd�tdd„ t|ƒD ƒdd�d�}|  |d¡\}}tj||dd	� d S )
Nc                 S   r�   r‘   r   rx   r   r   r   rm   ‡  r’   z<TestDataFrameToCSV.test_to_csv_idx_ncols.<locals>.<listcomp>rD   r}   c                 S   r�   r‘   r   rx   r   r   r   rm   ˆ  r’   rI   r°   FrL   )r   r/   r•   r   r9   rÕ   r-   r5   )r   rÖ   rê   r\   r]   rè   r   r   r   Útest_to_csv_idx_ncols  s   ýz(TestDataFrameToCSV.test_to_csv_idx_ncols)r×   r÷   rØ   r©   rÙ   rÚ   c                 C   sÌ   t t |df¡tdd„ t|ƒD ƒdd�tdd„ tdƒD ƒdd�d�}t|jƒ}ddg|d d	…< ddg|d
d …< t|jƒ}ddg|d d	…< ddg|d
d …< ||_||_| j|ddd�\}}t	j
||dd� d S )Nr'   c                 S   r�   r‘   r   rx   r   r   r   rm   ’  r’   z;TestDataFrameToCSV.test_to_csv_dup_cols.<locals>.<listcomp>rD   r}   c                 S   r�   r‘   r   rx   r   r   r   rm   “  r’   rI   Úduper*   éþÿÿÿÚrduper°   T)rÏ   FrL   )r   r/   r•   r   r9   rª   r   r!   rÕ   r-   r5   )r   rÖ   r\   r˜   rÑ   r]   rè   r   r   r   Útest_to_csv_dup_cols�  s   ý

z'TestDataFrameToCSV.test_to_csv_dup_colsc                 C   s:   t tjdtjd�d�}|  |d¡\}}tj||dd� d S )Nr×   r(   r    r°   F)Úcheck_column_type)r   r/   r:   r;   rÕ   r-   r5   )r   r\   r]   rè   r   r   r   Útest_to_csv_empty¡  s   z$TestDataFrameToCSV.test_to_csv_emptyc                    st   d}|d d ‰ t t ˆ df¡ttdƒtd�t ‡ fdd„tdƒD ƒ¡d�}| j	||dd	�\}}t
j||d
d� d S )Nr°   r*   r&   Úabr(   c                    s   g | ]}t ˆ ƒ‘qS r   ©r9   ©rk   rí   ©Úrowsr   r   rm   ®  rn   z<TestDataFrameToCSV.test_to_csv_chunksize.<locals>.<listcomp>©r   r!   )rÍ   FrL   )r   r/   r•   r   rª   rç   r   rÆ   r9   rÕ   r-   r5   )r   r”   r\   r]   rè   r   r  r   Útest_to_csv_chunksize§  s   ýz(TestDataFrameToCSV.test_to_csv_chunksize)r*   r'   rã   zdf_params, func_paramsÚr_idx_nlevelsr*   rÍ   Úc_idx_nlevelsrÎ   )r  r  )rÍ   rÎ   c           
         sº   |  d¡rt ‡fdd„t|d ƒD ƒ¡}nd }|  d¡r.t ‡ fdd„t|d ƒD ƒ¡}ntdd„ tˆ ƒD ƒtd�}tt ˆˆ f¡||d	�}| j	|d
fi |¤Ž\}}	t
j||	dd� d S )Nr  c                 3   ó"   � | ]}d d„ t ˆ ƒD ƒV  qdS )c                 S   r�   r‘   r   rx   r   r   r   rm   Ã  r’   úCTestDataFrameToCSV.test_to_csv_params.<locals>.<genexpr>.<listcomp>Nr   r  )rÖ   r   r   Ú	<genexpr>Â  ó
   € ÿ
ÿz8TestDataFrameToCSV.test_to_csv_params.<locals>.<genexpr>r  c                 3   r  )c                 S   r�   r‘   r   rx   r   r   r   rm   Ë  r’   r	  Nr   r  )rê   r   r   r
  Ê  r  c                 S   r�   r‘   r   rx   r   r   r   rm   Ï  r’   z9TestDataFrameToCSV.test_to_csv_params.<locals>.<listcomp>r(   rI   r°   FrL   )rÊ   r   rÆ   r9   r   rç   r   r/   r•   rÕ   r-   r5   )
r   rÖ   Ú	df_paramsÚfunc_paramsrê   r!   r   r\   r]   rè   r   )rê   rÖ   r   Útest_to_csv_params³  s   


þ


þz%TestDataFrameToCSV.test_to_csv_paramsc                 C   sˆ   t j|d< dd„ }|j |¡|d< t ¡ �%}| |¡ |  |¡}t ||¡ t t  	|¡t  	|¡¡ W d   ƒ d S 1 s=w   Y  d S )NÚGc                 S   s    t jt jgt j d¡ ¡ dk  S )Nr*   ç      à?)r/   Úinfr0   rT   rU   r¼   r   r   r   r‹   ×  r¾   zETestDataFrameToCSV.test_to_csv_from_csv_w_some_infs.<locals>.<lambda>Úh)
r/   r0   r!   rÈ   r-   r.   r3   r   r5   Úisinf)r   r<   r¿   r   r>   r   r   r   Ú test_to_csv_from_csv_w_some_infsÔ  s   



"ûz3TestDataFrameToCSV.test_to_csv_from_csv_w_some_infsc                 C   s|   t j|d< t j |d< t ¡ �%}| |¡ |  |¡}t ||¡ t t  |¡t  |¡¡ W d   ƒ d S 1 s7w   Y  d S )NÚEÚF)r/   r  r-   r.   r3   r   r5   r  )r   r<   r   r>   r   r   r   Útest_to_csv_from_csv_w_all_infsá  s   



"ûz2TestDataFrameToCSV.test_to_csv_from_csv_w_all_infsc                 C   sž   t  d¡�@}tg d¢g d¢dœƒ}|j|dd� t|ƒ}t  ||¡ tg d¢dd	�|d
< |j|dd� t|ƒ}t  ||¡ W d   ƒ d S 1 sHw   Y  d S )NÚ__tmp_to_csv_no_index__©r&   r*   r'   ©rã   r   é   )Úc1Úc2Fr    )é   é   é	   r;   r(   Úc3)r-   r.   r   r3   r   r5   r   r‚   r   r   r   Útest_to_csv_no_indexí  s   "øz'TestDataFrameToCSV.test_to_csv_no_indexc                 C   s>   t g d¢g d¢dœƒ}d|d< | ¡ |jg d¢d�ksJ ‚d S )N©rD   rE   rˆ   )ÚaaÚbbÚcc)r   r&   ÚtxtÚtest)r   r&   r(  r   )r   r3   )r   r\   r   r   r   Útest_to_csv_with_mix_columnsù  s    z/TestDataFrameToCSV.test_to_csv_with_mix_columnsc                 C   sÒ   t ddgddggddgd�}t ddgddggdd	gd�}t d
¡�>}|j|dd	gd� |  |¡}t ||¡ |j|ddd	gd� |  |¡}|jdd�}|d u sQJ ‚t ||¡ W d   ƒ d S 1 sbw   Y  d S )Nr&   r*   r'   rã   r   r   r   rO   rP   Ú__tmp_to_csv_headers__r   F)r!   r   T)Úinplace)r   r-   r.   r3   r   r5   Úreset_index)r   Úfrom_dfÚto_dfr   r>   Úreturn_valuer   r   r   Útest_to_csv_headers  s   

"õz&TestDataFrameToCSV.test_to_csv_headersc              
   C   sf  |}|j }tjt|ƒd tjd� dd¡}tj|ddgd�}||_ t 	d¡�¸}|j
|dd	� |j
|d
dgd� | 
|¡ | j|ddgdd�}tj||dd� |j j|j jksXJ ‚||_ |}	|	j }|tjt|ƒtjd�g}t |¡|	_ |	j
|ddgd� tjtdd�� | j|ddgdd�}
W d   ƒ n1 s—w   Y  tj|	|
dd� |	 
|¡ | j|d d�}
t|
jƒt|	jƒd ks¾J ‚|	j
|dd� | j|d d�}
t |
j|j¡ ||_ W d   ƒ n1 sáw   Y  t 	d¡��}}d0dd„}tt d¡tjdd„ tdƒD ƒtdƒd�tjd d„ tdƒD ƒtd!ƒd�d"�}| 
|¡ t|g d#¢ddgd$�}t ||¡ tt d¡tjd%d„ tdƒD ƒtdƒd�d�}| 
|¡ t|g d#¢dd$�}t ||¡ tt d¡tjd&d„ tdƒD ƒtdƒd�tjd'd„ td(ƒD ƒtd)ƒd�d"�}| 
|¡ t|g d#¢g d*¢d$�}t ||¡ |ƒ }|j
|dd� t|ddgd	�}t ||¡ |dƒ}|j
|dd� t|ddgd	�}tj|jjŽ �sÊJ ‚|jj|j_t ||¡ |ƒ }| 
|¡ t|ddgdgd$�}t ||¡ |dƒ}| 
|¡ t|ddgdgd$�}t ||¡ |dƒ}| 
|¡ d+D ],}d,|› d-�}tjt|d�� t|tt|ƒƒdd$� W d   ƒ n	1 �s8w   Y  �qd.}tjt|d�� |j
|dd/gd� W d   ƒ n	1 �s]w   Y  W d   ƒ n	1 �smw   Y  t 	d¡�1}|	d d…  
|¡ |  |¡}
|	d d… }g |_ t |
j|j¡ t|
ƒdk�s J ‚W d   ƒ d S 1 �s¬w   Y  d S )1Nr*   r(   éÿÿÿÿÚfirstÚsecond©ÚnamesÚ__tmp_to_csv_multiindex__Fr   r   r   r   r   r&   r%   rL   ÚtimeÚfoor#   zCould not infer formatrR   Trf   r    c                 S   s@   | du rddg} t tj d¡jdddd�tjg d	¢| d
�dd�S )NTr2  r3  r*   r   r×   rB   )Úsize))Úbahr8  )r:  Úbar)ÚbanÚbazr4  r;   ©r   r)   )r   r/   rT   rU   r«   r   rW   r4  r   r   r   Ú_make_frameI  s   ÿûz>TestDataFrameToCSV.test_to_csv_multiindex.<locals>._make_frame©r   r'   c                 S   ó   g | ]}d d„ t dƒD ƒ‘qS )c                 S   r�   r‘   r   rx   r   r   r   rm   X  r’   úHTestDataFrameToCSV.test_to_csv_multiindex.<locals>.<listcomp>.<listcomp>r'   r   r  r   r   r   rm   X  rï   z=TestDataFrameToCSV.test_to_csv_multiindex.<locals>.<listcomp>rã   ræ   c                 S   rA  )c                 S   r�   r‘   r   rx   r   r   r   rm   [  r’   rB  r   r   r  r   r   r   rm   [  rï   rÿ   r  )r   r&   r*   r'   )r   r   c                 S   rA  )c                 S   r�   r‘   r   rx   r   r   r   rm   f  r’   rB  r'   r   r  r   r   r   rm   f  rï   c                 S   rA  )c                 S   r�   r‘   r   rx   r   r   r   rm   q  r’   rB  r'   r   r  r   r   r   rm   q  rï   c                 S   rA  )c                 S   r�   r‘   r   rx   r   r   r   rm   t  r’   rB  r   r   r  r   r   r   rm   t  rï   r'   ÚabcrK   )r  r  zlen of z, but only 5 lines in filez%cannot specify cols with a MultiIndexr;  r³   )r!   r/   r:   r6   r;   Úreshaper   rÆ   r-   r.   r3   r   r5   r5  Úassert_produces_warningÚUserWarningr   r7   r8   r   r•   r9   rª   ÚcomÚall_nonerY   rZ   r   Ú	TypeErrorÚassert_index_equal)r   r<   r=   ÚframeÚ	old_indexÚarraysÚ	new_indexr   r\   Útsframer>   r?  r]   ry   rb   Úexpr   r   r   Útest_to_csv_multiindex  sÖ    
ÿý
Ö,
ÿÿû
	ÿþ
ÿÿû
	


ÿ€ÿ€§\
$÷z)TestDataFrameToCSV.test_to_csv_multiindexc                 C   s    t tdƒtdƒdœt dd¡d�}t d¡�0}| |¡ | j|dd�}| 	¡ }|r1|j
 d¡|_
n|j
 t¡|_
t ||¡ W d   ƒ d S 1 sIw   Y  d S )	NrC  r'   ©r   r   r   r    z!__tmp_to_csv_interval_index__.csvrf   zstring[pyarrow_numpy])r   rª   r9   ro   Úinterval_ranger-   r.   r3   r   rX   r!   Úastyperº   r5   )r   Úusing_infer_stringr\   r   r]   rè   r   r   r   Útest_to_csv_interval_index­  s   "
"õz-TestDataFrameToCSV.test_to_csv_interval_indexc              	   C   sÄ   t tj d¡ d¡ tj¡ƒ}tj|d< t 	d¡�?}|j
|dd� t|dd��}| ¡ }|d  d	¡d d
ks9J ‚W d   ƒ n1 sCw   Y  W d   ƒ d S W d   ƒ d S 1 s[w   Y  d S )Nr*   )r&   rã   r&   z!__tmp_to_csv_float32_nanrep__.csviç  )Úna_repúutf-8©r¹   ú,Ú999)r   r/   rT   rU   rV   rT  Úfloat32r0   r-   r.   r3   ÚopenÚ	readlinesÚsplit)r   r\   r   r¿   Úlinesr   r   r   Útest_to_csv_float32_nanrep¾  s   ÿ
þý"ýz-TestDataFrameToCSV.test_to_csv_float32_nanrepc                 C   sf   t g d¢g d¢dœƒ}t d¡�}| |¡ |  |¡}t ||¡ W d   ƒ d S 1 s,w   Y  d S )Nr  )z5,6z7,8z9,0rR  z__tmp_to_csv_withcommas__.csv©r   r-   r.   r3   r   r5   ©r   r\   r   rr   r   r   r   Útest_to_csv_withcommasË  s   

"ýz)TestDataFrameToCSV.test_to_csv_withcommasc                 C   sz  dd„ }t tj d¡ d¡d|dƒd�}t tj d¡ d¡ d¡d|d	ƒd�}t d
|j|dƒd�}t d|j|dƒd�}t tdƒ d¡|j|dƒd�}tj	|j
dd…dd…f< tj	|j
dd…dd…f< tj|||||gdd�}i }dtjfd	tjfdtjfdtffD ]\}	}
||	ƒD ]}|
||< q‰q�t ¡ �}| |¡ t|d||dƒd�}t ||¡ W d   ƒ d S 1 s¶w   Y  d S )Nc                    s   ‡ fdd„t dƒD ƒS )Nc                    s   g | ]	}ˆ › |d ›�‘qS )Ú03dr   rx   r}   r   r   rm   Ö  s    zMTestDataFrameToCSV.test_to_csv_mixed.<locals>.create_cols.<locals>.<listcomp>r   r   r}   r   r}   r   Úcreate_colsÕ  s   z9TestDataFrameToCSV.test_to_csv_mixed.<locals>.create_colsr*   )r©   r   Úfloat64Úfloat)r)   r   r;   ri   TÚboolrI   r8  rç   Ú20010101ÚnsÚdateé   é2   r&   r'   )Úaxisr   )r   r)   r"   )r   r/   rT   rU   rV   rT  r!   r	   Úas_unitr0   r1   ro   rp   rg  r;   Úbool_rç   r-   r.   r3   r   r5   )r   rf  Údf_floatÚdf_intÚdf_boolÚ	df_objectÚdf_dtr\   Údtypesr¬   r)   rˆ   Úfilenamer`   r   r   r   Útest_to_csv_mixedÔ  sN   ýýÿýü
ÿ

ÿ"ûz$TestDataFrameToCSV.test_to_csv_mixedc           
      C   s˜  t tj d¡ d¡ttdƒƒttdƒƒ dd�}t ¡ �}| 	|¡ t
|dd�}|j|_t ||¡ W d   ƒ n1 s<w   Y  t tj d¡ d¡dd	�}t tj d¡ d¡ƒ d
¡}t d|jtdƒd�}t d|jtdƒd�}t tdƒ d¡|jtdƒd�}tj|||||gddd�}g d¢d |_t ¡ �+}| 	|¡ t
|dd�}dD ]
}	t||	 ƒ||	< q¥|j|_t ||¡ W d   ƒ d S 1 sÅw   Y  d S )Nr*   )r°   rm  é   rg  r>  r   rf   )r°   r'   r(   r;   Tr'   rI   r8  rj  rk  r&   )ro  Úignore_indexrK   r   )z0.4z1.4z2.4)r   r/   rT   rU   rV   rª   r9   r-   r.   r3   r   r   r5   rT  r!   r	   rp  ro   rp   r   )
r   r\   rx  r]   rr  rs  rt  ru  rv  ry   r   r   r   Útest_to_csv_dups_cols  sD   ý

üÿÿÿÿ

"÷z(TestDataFrameToCSV.test_to_csv_dups_colsc                 C   s–   t t d¡tdd„ tdƒD ƒdd�tg d¢td�d	�}t ¡ �"}| |¡ t	|d
d�}|j
ddid�}t ||¡ W d   ƒ d S 1 sDw   Y  d S )Nr@  c                 S   r�   r‘   r   rx   r   r   r   rm   1  r’   z=TestDataFrameToCSV.test_to_csv_dups_cols2.<locals>.<listcomp>r   r8  r}   rC   r(   rI   r   rf   za.1rD   r   )r   r/   r•   r   r9   rç   r-   r.   r3   r   Úrenamer5   )r   r\   rx  r]   r   r   r   Útest_to_csv_dups_cols2-  s   ý

"úz)TestDataFrameToCSV.test_to_csv_dups_cols2r”   )i'  iPÃ  é † c                 C   sŽ   t dtdƒiƒ}|jd |d< |jd |d< |jd |d< t ¡ �}|j||d	� t|d
d�}t ||¡ W d   ƒ d S 1 s@w   Y  d S )Nr   r  ç      ð?r   g       @rŒ   g      @rñ   r²   r   rf   )r   r9   r   r-   r.   r3   r   r5   )r   r”   r$  rx  r`   r   r   r   Útest_to_csv_chunking=  s   
"ýz'TestDataFrameToCSV.test_to_csv_chunkingc              	   C   s°   d}t tj d¡ d|d f¡d d d�}t ¡ �0}| ¡ �}| d|¡ |j	|ddd� W d   ƒ n1 s6w   Y  t
|d d	�}W d   ƒ n1 sKw   Y  t ||¡ d S )
Nr©   r*   r&   r×   r  z/pandas.io.formats.csvs._DEFAULT_CHUNKSIZE_CELLSF)r   r!   r   )r   r/   rT   rU   rV   r-   r.   ÚcontextÚsetattrr3   r   r5   )r   Úmonkeypatchr”   r\   rx  Úmr`   r   r   r   Ú!test_to_csv_wide_frame_formattingI  s   ý

þüz4TestDataFrameToCSV.test_to_csv_wide_frame_formattingc                 C   s€   t dƒ}| j|d d�}td||jd  iƒ}t ¡ �}| |¡ t|dd�}tj||dd� W d   ƒ d S 1 s9w   Y  d S )Nza,1.0
b,2.0r   Útr   rf   FrL   )r   r   r   r   r-   r.   r3   r5   )r   Úf1r\   Únewdfr   r>   r   r   r   Útest_to_csv_bugY  s   

"ûz"TestDataFrameToCSV.test_to_csv_bugc                 C   s�   t dg d¢iƒ}t ¡ �2}|j|dd� t|ddd�}t ||¡ |j|ddd� t|d dd�}t ||¡ W d   ƒ d S 1 sAw   Y  d S )	Nu   c/Ïƒr  úUTF-8rY  r   ©r   r¹   F©r¹   r!   rb  rc  r   r   r   Útest_to_csv_unicodee  s   
"ùz&TestDataFrameToCSV.test_to_csv_unicodec                 C   s`   t dƒ}tg d¢g d¢gg d¢ddgd�}|j|dd	� | d
¡ t|d
dd�}t ||¡ d S )NÚ )õ   ×�Úd2Úd3Úd4)Úa1Úa2Úa3Úa4)r�  õ   ×‘u   ×’u   ×“r�  r˜  r  r‹  rY  r   rŒ  )r   r   r3   Úseekr   r-   r5   )r   Úbufr\   rr   r   r   r   Útest_to_csv_unicode_index_colp  s   ý
z0TestDataFrameToCSV.test_to_csv_unicode_index_colc                 C   s6   t ƒ }| |¡ | d¡ t|dd�}t ||¡ d S )Nr   rf   )r   r3   r™  r   r-   r5   )r   r<   rš  r>   r   r   r   Útest_to_csv_stringio~  s
   

z'TestDataFrameToCSV.test_to_csv_stringioc                 C   s˜   t g d¢g d¢gddgg d¢d�}t ¡ �-}|j|dd� t|d	d
�}t g d¢g d¢gddgg d¢d�}t ||¡ W d   ƒ d S 1 sEw   Y  d S )N©g¿¶~úÏš¿?g9DÜœJÎ?g>éD‚)â?©gÜ.4×i¤(@ç33333þ@çÍÌÌÌ¤œAr   r   ©rO   rP   rQ   rI   z%.2f)Úfloat_formatr   rf   )g¸…ëQ¸¾?gq=
×£pÍ?g=
×£p=â?)g¤p=
×£(@rŸ  r   rb  )r   r\   rx  r`   ra   r   r   r   Útest_to_csv_float_format…  s   ý
ý"÷z+TestDataFrameToCSV.test_to_csv_float_formatc                 C   sF   t dddgiƒ}|jddd„ dd�}g d	¢}t |¡}||ks!J ‚d S )
NrD   r  r€  rZ  c                 S   s   t j| dd�S )Nú-)Útrim)r/   Úformat_float_positionalr¼   r   r   r   r‹   œ  rò   zJTestDataFrameToCSV.test_to_csv_float_format_over_decimal.<locals>.<lambda>F)Údecimalr¢  r!   )rD   z0.5Ú1)r   r3   r-   Úconvert_rows_list_to_csv_str©r   r\   r]   Úexpected_rowsrè   r   r   r   Ú%test_to_csv_float_format_over_decimal—  s   ý
z8TestDataFrameToCSV.test_to_csv_float_format_over_decimalc                 C   sZ   t g d¢g d¢dœƒ}tƒ }|j|dtjdd� | ¡ }g d¢}t |¡}||ks+J ‚d S )Nr  )r8  r;  r=  rR  FrX  )r!   Úquotingr¹   )z"A","B"z1,"foo"z2,"bar"z3,"baz")r   r   r3   ÚcsvÚQUOTE_NONNUMERICÚgetvaluer-   r©  )r   r\   rš  r]   r«  rè   r   r   r   Ú!test_to_csv_unicodewriter_quoting£  s   
z4TestDataFrameToCSV.test_to_csv_unicodewriter_quotingr¹   rX  c                 C   sT   t dddgiƒ}tƒ }|j|tj|dd� | ¡ }g d¢}t |¡}||ks(J ‚d S )Nr   Úhelloú	{"hello"}F)r­  r¹   r!   )r   r²  r³  )r   r   r3   r®  Ú
QUOTE_NONEr°  r-   r©  )r   r¹   r\   rš  r]   r«  rè   r   r   r   Útest_to_csv_quote_none®  s   
z)TestDataFrameToCSV.test_to_csv_quote_nonec                 C   sX   t g d¢g d¢dœg d¢d�}tƒ }|j|dd� g d¢}t |¡}| ¡ |ks*J ‚d S )	Nr  r  rR  ©ÚoneÚtwoÚthreer    Fr#   )zA,Bzone,1,4ztwo,2,5z	three,3,6)r   r   r3   r-   r©  r°  )r   r\   rš  r«  rè   r   r   r   Ú"test_to_csv_index_no_leading_commaº  s   
z5TestDataFrameToCSV.test_to_csv_index_no_leading_commac              	   C   sº  t g d¢g d¢dœg d¢d�}t ¡ �/}|j|dd� d}t|d	d
��}| ¡ |ks,J ‚W d   ƒ n1 s6w   Y  W d   ƒ n1 sEw   Y  t ¡ �/}|j|dd� d}t|d	d
��}| ¡ |ksgJ ‚W d   ƒ n1 sqw   Y  W d   ƒ n1 s€w   Y  t ¡ �J}| |¡ tj d¡}d| d | d | d | }t|d	d
��}| ¡ |ks´J ‚W d   ƒ n1 s¾w   Y  W d   ƒ d S W d   ƒ d S 1 sÖw   Y  d S )Nr  r  rR  r¶  r    ú
©Úlineterminators#   ,A,B
one,1,4
two,2,5
three,3,6
Úrb)re   Ú
s   ,A,B
one,1,4
two,2,5
three,3,6
rX  s   ,A,Bs   one,1,4s   two,2,5s	   three,3,6)	r   r-   r.   r3   r]  ÚreadÚosÚlinesepÚencode)r   r\   r   rè   r¿   Ú
os_linesepr   r   r   Útest_to_csv_lineterminatorsÄ  sT   
ÿ€û
ÿ€û

ÿþýüûúùÿÿñ"ñz.TestDataFrameToCSV.test_to_csv_lineterminatorsc                 C   sª   t t g d¢¡ƒ}t g d¢ƒ}tƒ }|j|dd� tƒ }|j|dd� | ¡ | ¡ ks-J ‚td|iƒ}td|iƒ}tƒ }| |¡ tƒ }| |¡ | ¡ | ¡ ksSJ ‚d S )N)rD   rE   rE   rD   rD   rˆ   rˆ   rˆ   Fr   r®   )r   ro   ÚCategoricalr   r3   r°  r   )r   r®   r,   ÚresrP  r\   rr   r   r   r   Ú test_to_csv_from_csv_categoricalê  s   

z3TestDataFrameToCSV.test_to_csv_from_csv_categoricalc                 C   s:   |j d d�}t|tƒsJ ‚tt|ƒdd�}t ||¡ d S )N)Úpath_or_bufr   rf   )r3   rž   rº   r   r   r-   r5   )r   r<   Úcsv_strr>   r   r   r   Útest_to_csv_path_is_none  s   z+TestDataFrameToCSV.test_to_csv_path_is_nonezdf,encodingr�  rž  r   r   r¡  rI   )rC  ÚdefÚghir   Úasciir   )é{   u   ä½ å¥½u   ä¸–ç•ŒÚgb2312)rÏ  u   Î“ÎµÎ¹Î¬ ÏƒÎ¿Ï…u
   ÎšÏŒÏƒÎ¼ÎµÚcp737c           
   
   C   sp  t  ¡ �ª}|j|||d� t||d|d�}t  ||¡ t|d||d��}|j|j|d� |jjr2J ‚W d   ƒ n1 s<w   Y  t|||dd� d¡}t  ||¡ t  	||¡�}| 
¡  |p`d¡}|jD ]}	|	|v smJ ‚qeW d   ƒ n1 sxw   Y  t  	||¡�}t  |t|d|d	�¡ W d   ƒ n1 s™w   Y  W d   ƒ d S W d   ƒ d S 1 s±w   Y  d S )
N)Úcompressionr¹   r   )rÒ  r   r¹   ÚwrY  )rÒ  r¹   r   r   r¸   rŒ  )r-   r.   r3   r   r5   r   ÚhandleÚclosedÚsqueezeÚdecompress_filerÀ  r»   r   )
r   r\   r¹   rÒ  rx  r]   ÚhandlesÚfhÚtextÚcolr   r   r   Útest_to_csv_compression  sD   
ÿÿüüû
ÿþÿã"ãz*TestDataFrameToCSV.test_to_csv_compressionc           
      C   sx  t  d¡�­}|j}t|| d¡dœ|d�}|j|dd� t|dd�}| d	d
„ ¡}|j dd
„ ¡|_t  ||¡ |j|dd� t|dd�}| dd
„ ¡}|j dd
„ ¡|_t  ||¡ |j	}|j|dd� t|dd�}| dd
„ ¡}|j
 dd
„ ¡|_
t  ||¡ tdgd g d¢ ƒ}td|i|d�}	|	j|dd� t|ddgdd�}t  ||	¡ W d   ƒ d S 1 sµw   Y  d S )NÚ__tmp_to_csv_date_format__r&   rR  r    ú%Y%m%d©Údate_formatr   rf   c                 S   ó   t |  d¡ƒS ©NrÞ  ©ri   Ústrftimer¼   r   r   r   r‹   N  rò   z<TestDataFrameToCSV.test_to_csv_date_format.<locals>.<lambda>c                 S   rá  râ  rã  r¼   r   r   r   r‹   P  rò   ú%Y-%m-%dc                 S   ó
   |   d¡S ©Nrå  ©rä  r¼   r   r   r   r‹   Y  ó   
 c                 S   ræ  rç  rè  r¼   r   r   r   r‹   [  ré  c                 S   rá  râ  rã  r¼   r   r   r   r‹   g  rò   c                 S   ræ  râ  rè  r¼   r   r   r   r‹   k  ré  r   r×   )ú
2000-01-01rê  rê  r   )r"   r   )r-   r.   r!   r   Úshiftr3   r   rÈ   r5   ÚTr   r   )
r   r=   r   r|   r(  Údatetime_frame_intÚdatetime_frame_strÚdatetime_frame_columnsÚ	nat_indexÚ	nat_framer   r   r   Útest_to_csv_date_formatC  sJ   ÿÿÿÿÿÿ"Ëz*TestDataFrameToCSV.test_to_csv_date_formatÚtdr   Ú10sc                 C   s¶   t  d¡�L}tdddddd�}|| }| d ¡}tjtt|ƒƒdd	�}td
|i|d�}|j	|dd� t
|dd�}t|jdd� d¡|_t  ||¡ W d   ƒ d S 1 sTw   Y  d S )NÚcsv_date_format_with_dstz2013-10-26 23:00z2013-10-27 01:00zEurope/Londonr  Úinfer)r‡   r§   Ú	ambiguousr;   r(   r   r    Tr   rf   ©Úutc)r-   r.   r
   r4   r/   rÇ   r9   r6   r   r3   r   r   r!   r†   r5   )r   ró  r   Útimesry   Ú
time_ranger\   r]   r   r   r   Ú test_to_csv_with_dst_transitions{  s&   û
ÿ"ìz3TestDataFrameToCSV.test_to_csv_with_dst_transitionsc                 C   s  t ddddd�}| d ¡}d |j_td|dœ|d�}t d	¡�3}|j|d
d� t|dd�}t	|j
d
d� d¡|_
t	|d d
d� d¡|d< t ||¡ W d   ƒ n1 sUw   Y  | t¡ t d	¡�}| |¡ t |¡}t ||¡ W d   ƒ d S 1 s€w   Y  d S )Nz
2015-01-01z
2015-12-31r  zEurope/Paris)r§   r‡   r&   )r8   Úidxr    rõ  Tr   rf   rø  rý  zdatetime64[ns, Europe/Paris])r
   r4   Ú_dataÚ_freqr   r-   r.   r3   r   r   r!   r†   rT  r5   rº   Ú	to_picklero   Úread_pickle)r   rý  r\   r   r]   r   r   r   Ú,test_to_csv_with_dst_transitions_with_pickle“  s*   
ÿÿ÷


"ýz?TestDataFrameToCSV.test_to_csv_with_dst_transitions_with_picklec           	      C   sb  t ddgddgdtjgddgdœƒ}g d	¢}t |¡}| ¡ }||ks%J ‚|jd d
�}||ks1J ‚g d	¢}t |¡}|jtjd
�}||ksGJ ‚g d¢}t |¡}|jtjd
�}||ks]J ‚g d¢}t |¡}|jtj	d
�}||kssJ ‚d}t
jtj|d�� |jtjd
� W d   ƒ n1 s�w   Y  t
jtj|d�� |jtjd d� W d   ƒ n1 s¯w   Y  g d¢}t |¡}|jtjdd�}||ksËJ ‚g d¢}t |¡}|jtjdd�}||ksâJ ‚ddg}t |¡}tt|ƒƒ}tƒ }|j|ddd� | ¡ |k�sJ ‚t ddgddgddgdœƒ}| ddg¡}g d ¢}t |¡}|jtjd
�|k�s/J ‚d S )!NTFr€  gš™™™™™	@é*   rD   zb,c)Úc_boolÚc_floatÚc_intÚc_string)ú,c_bool,c_float,c_int,c_stringú0,True,1.0,42.0,az1,False,3.2,,"b,c")r­  )ú("","c_bool","c_float","c_int","c_string"z"0","True","1.0","42.0","a"z"1","False","3.2","","b,c")r
  z0,True,1.0,42.0,"a"z1,False,3.2,"","b,c"z%need to escape, but no escapechar setrR   )r­  Ú
escapechar)r  r	  z1,False,3.2,,b!,cú!)z,c_bool,c_ffloat,c_int,c_stringr	  z1,False,3.2,,bf,cr¿   za,b,cz1,"test 
",3rX  r�  r&   r*   r'   rã   r   r  r#  rE   )z"a","b","c"z"1","3","5"z"2","4","6")r   r/   r0   r-   r©  r3   r®  ÚQUOTE_MINIMALÚ	QUOTE_ALLr¯  rY   rZ   ÚErrorr´  r   r   r°  Ú	set_index)	r   r\   r«  rè   r]   rb   Ú	text_rowsrÚ  rš  r   r   r   Útest_to_csv_quoting¬  sf   üÿ	



ÿÿ



z&TestDataFrameToCSV.test_to_csv_quotingc                 C   sÌ   g d¢}t j|dd�}tg d¢|d�}| ¡ }g d¢}t |¡}||ks&J ‚d}|j|d�}g d	¢}t |¡}||ks=J ‚d
tdg}t j|dd�}tg d¢|d�}| ¡ }g d¢}t |¡}||ksdJ ‚d S )N)ú
1990-01-01rê  ú
3005-01-01rñ   )r§   r  r    )ú,0ú1990-01-01,4z2000-01-01,5ú3005-01-01,6z%m-%d-%Yrß  )r  z01-01-1990,4z01-01-2000,5z01-01-3005,6r  r  )r  r  z,5r  )ro   ÚPeriodIndexr   r3   r-   r©  r   )r   Údatesr!   r\   r]   r«  rè   rà  r   r   r   Útest_period_index_date_overflow  s&   



z2TestDataFrameToCSV.test_period_index_date_overflowc                 C   s^   t  g d¢¡}tg d¢g d¢gƒ}||_g d¢}|j|d�}g d¢}t |¡}||ks-J ‚d S )N))rD   r&   )rD   r*   )rE   r&   )rE   r*   rë   )r   r  r  r  )rD   rE   rˆ   Údr   )z,a,b,c,dz	0,1,2,3,4z	1,5,6,7,8)r   rW   r   r   r3   r-   r©  )r   r   r\   r   r]   r«  rè   r   r   r   Útest_multi_index_header-  s   
z*TestDataFrameToCSV.test_multi_index_headerc                 C   sN   t g d¢ƒ}tg d¢g|d�}|jddgd�}d}|jdd�}t ||¡ d S )	N)©r&   )r*   ©r'   r  r   r  r  z,1,3
0,1,3
r¿  r¼  )r   r   Úreindexr3   r-   r7   )r   r!   r\   rè   r]   r   r   r   Ú$test_to_csv_single_level_multi_index:  s   z7TestDataFrameToCSV.test_to_csv_single_level_multi_indexc              	   C   s¦   t dddgiƒ}g d¢}t |¡}t d¡�-}|j|dd� tj|dd	��}| ¡  d
¡}W d   ƒ n1 s7w   Y  W d   ƒ n1 sFw   Y  ||ksQJ ‚d S )NrD   r&   r*   )rD   r¨  Ú2z__test_gz_lineend.csv.gzFr    Úgzip)rÒ  rX  )r   r-   r©  r.   r3   r×  rÀ  r»   )r   r\   r«  rè   r   r¿   r]   r   r   r   Útest_gz_lineendC  s   
ÿ€þz"TestDataFrameToCSV.test_gz_lineendc                 C   s<   t dtddd�iƒ}tƒ }| |¡ | ¡ }d|v sJ ‚d S )NrD   z1/1/2000r×   rå   rê  )r   r
   r   r3   r°  )r   rK  rš  r]   r   r   r   Útest_to_csv_numpy_16_bugO  s
   
z+TestDataFrameToCSV.test_to_csv_numpy_16_bugc                 C   s6   t d d gƒjd dddd� dd¡}d}||ksJ ‚d S )NFr�  )r   r!   rW  r»  r¿  z""
""
)r   r3   Úreplace)r   r]   rè   r   r   r   Útest_to_csv_na_quotingX  s   

ÿýz)TestDataFrameToCSV.test_to_csv_na_quotingc                 C   sb   t ddtjgdœƒ}|d  d¡|d< |d  d¡|d< | ¡ }g d¢}t |¡}||ks/J ‚d S )NrF   r&   r±   rE   ÚInt16Úcategory)z,a,bz0,x,1z1,x,)r   ro   ÚNArT  r3   r-   r©  rª  r   r   r   Útest_to_csv_categorical_and_eac  s   
z1TestDataFrameToCSV.test_to_csv_categorical_and_eac                 C   s^   t dtjtdƒtdƒdd�giƒ}|d  d¡|d< | ¡ }ddg}t |¡}||ks-J ‚d S )	NrD   rä   z
2020-01-02Úboth)rÕ  r(  z,az.0,"[2020-01-01 00:00:00, 2020-01-02 00:00:00]")r   ro   ÚIntervalr	   rT  r3   r-   r©  rª  r   r   r   Ú$test_to_csv_categorical_and_intervalm  s   ýÿÿÿ
z7TestDataFrameToCSV.test_to_csv_categorical_and_interval)NNNNF)CÚ__name__Ú
__module__Ú__qualname__r   r@   rc   rs   rƒ   rŽ   rš   rY   ÚmarkÚparametrizer¤   Úslowr¶   rÕ   ré   Úfilterwarningsrö   rø   rü   rþ   r  r  r  r  r"  r)  r0  rQ  rV  ra  rd  ry  r|  r~  r�  r†  rŠ  rŽ  r›  rœ  r£  r¬  r±  rµ  rº  rÅ  rÈ  rË  r   rÜ  rò  ro   r€   rü  r  r  r  r  r   r#  r$  r&  r*  r-  r   r   r   r   r      sô    &$
$

øiÿ	ÿÿ
ÿ	

ÿýþ 	0)



&	ýú	þûôþ
!8
b		
r   )r®  Úior   rÁ  Únumpyr/   rY   Úpandas.errorsr   Úpandasro   r   r   r   r   r   r	   r
   r   r   r   Úpandas._testingÚ_testingr-   Úpandas.core.commonÚcoreÚcommonrG  Úpandas.io.commonr   r   r   r   r   r   Ú<module>   s    0