o
    Û­j,’  ã                   @   sb  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m	  m
Z d dlZd dlmZmZmZmZmZmZmZ d dlmZmZ ejjgZe d¡Zej d¡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)ej *dg d¢¡d d!„ ƒZ+d"d#„ Z,ej-d$d%„ ƒZ.d&d'„ Z/d(d)„ Z0d*d+„ Z1d,d-„ Z2d.d/„ Z3d0d1„ Z4dS )2é    N©Ú	timedelta)Ú	Timestamp)Ú	DataFrameÚIndexÚSeriesÚ_testingÚconcatÚ
date_rangeÚread_hdf)Ú_maybe_removeÚensure_clean_storeÚtablesz!ignore::tables.NaturalNameWarningc              
   C   s¨  t | ƒ��D}ttj d¡ d¡ttdƒƒtdddd�d�}t	|d	ƒ | 
d	|d d
… ¡ | 
d	|d
d … ¡ t |d	 |¡ t	|dƒ |jd|d d
… dd� | 
d|d
d … ¡ t |d |¡ t	|dƒ | 
d|d d
… ¡ | 
d|d
d … ¡ t |d |¡ t	|dƒ | 
d|d d
… ¡ | 
d|d
d … ¡ t |d |¡ tddgddgddgddggd�}d|d< tj|jd< t	|dƒ | 
d|¡ t |d |¡ tttj d¡jdddd�tjd�ttj d¡jdddd�tjd�ttj d¡jdddd�tjd�tg d¢tjd�d œt d¡d!�}t	|d"ƒ | 
d"|¡ tj|d" |d#d$� t	|d"ƒ |j
d"|g d%¢d&� tj|d" |d#d$� W d   ƒ d S 1 �sMw   Y  d S )'Né   )é   é   ÚABCDú
2000-01-01r   ÚB©ÚperiodsÚfreq©ÚcolumnsÚindexÚdf1é
   Údf2Útable)ÚformatÚdf3z/df3z/df3 foozdf3 fooé   r   )ÚdataÚtestingÚmixed_column)r   r$   Údféÿ   é   )ÚhighÚsize©Údtypeiÿÿ  i   @)l           l          @l            l            l            )Úu08Úu16Úu32Úu64©r   ÚuintsT©Úcheck_index_type)r,   r-   r.   ©Údata_columns)r   r   ÚnpÚrandomÚdefault_rngÚstandard_normalr   Úlistr
   r   ÚappendÚtmÚassert_frame_equalÚputÚnanÚlocr   ÚintegersÚuint8Úuint16Úuint32Úuint64Úarange)Ú
setup_pathÚstorer%   Ú	uint_data© rJ   úa/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/io/pytables/test_append.pyÚtest_append   sn   
ý



"
þþþþóí

$¼rL   c           	      C   sú  t | ƒ�ï}ttdƒtjdd„ tdƒD ƒd�}ttjdtjd�tddd�d	�}tt d
¡ƒ}| d|¡ |d }t 	||¡ |j
d u sDJ ‚| d|¡ |d }t 	||¡ |j
d u s[J ‚d|_
| d|¡ |d }t 	||¡ |j
|j
ksvJ ‚||dk }| dd¡}t 	||¡ ||dk|jdk @  }| dd¡}tj	||dd� ttj d¡ d¡dgd�}t t|ƒ¡|d< d|d< d|jdd…df< |jddgdd� |jdd �}|j d¡|_| d!|¡ tj	|d! |dd� W d   ƒ d S 1 söw   Y  d S )"Nr   c                 S   ó   g | ]}d |› �‘qS )Úi_rJ   ©Ú.0ÚirJ   rJ   rK   Ú
<listcomp>k   ó    z&test_append_series.<locals>.<listcomp>)r+   r   r   r*   z
2020-01-01©r   r0   éd   ÚssÚtsÚfooÚnsé<   zfoo>60éF   éZ   zfoo>70 and index<90Tr2   r   )r'   r!   ÚA©r   r   ÚCÚbaré   r'   ©Úinplace)Úfuture_stackÚmi)r   r   Úranger6   Úfloat64rF   r
   r;   r<   Úassert_series_equalÚnameÚselectr   r   r7   r8   r9   Úlenr@   Ú	set_indexÚstackÚ	droplevel)	rG   rH   rV   rW   rY   ÚresultÚexpectedre   ÚsrJ   rJ   rK   Útest_append_seriesh   sF   
"ÿ"Õrr   c                 C   sþ  t | ƒ�ñ}tttj d¡ d¡ƒ d¡tj d¡ d¡tj d¡ d¡ddtdƒ 	d¡tdƒ 	d¡d	œt 
d¡d
�}t|dƒ tj|jdd…g d¢f< | d|d d… ¡ | d|dd … ¡ tj|d |dd� | ¡ }tj|d< t|dƒ | d|d d… ¡ | d|dd … ¡ tj|d |dd� | ¡ }tj|d< t|dƒ | d|d d… ¡ | d|dd … ¡ tj|d |dd� | ¡ }tj|d< t|dƒ | d|d d… ¡ | d|dd … ¡ tj|d |dd� W d   ƒ d S 1 søw   Y  d S )Nr   r   Úint32rX   r`   ú
2001-01-01rY   ú
2001-01-02)r]   ÚA1ÚA2r   r_   ÚDÚEr0   r   r   é   )rv   r   rx   ry   r   Tr2   rv   rw   r   ry   r    )r   r   r   r6   r7   r8   r9   Úastyper   Úas_unitrF   r   r?   r@   r;   r<   r=   Úcopy)rG   rH   r%   r   r   r    rJ   rJ   rK   Útest_append_some_nans—   sL   
ÿ÷ô






"Ôr~   c                 C   s$  t | ƒ��}ttj d¡ d¡tj d¡ d¡dœt d¡d�}tj|jdd…d d …f< t	|dƒ |j
d|d d… d	d
� |j
d|dd … d	d
� tj|d |dd … d	d� t	|dƒ |j
d|d d… dd
� |j
d|dd … dd
� tj|d |d	d� t dd¡�) t	|dƒ | 
d|d d… ¡ | 
d|dd … ¡ t |d |¡ W d   ƒ n1 s°w   Y  t dd	¡��2 t	|dƒ | 
d|d d… ¡ | 
d|dd … ¡ t |d |dd … ¡ ttj d¡ d¡tj d¡ d¡dddœt d¡d�}tj|jdd…d d …f< t	|dƒ |j
d|d d… d	d
� |j
d|dd … d	d
� |d }|}|�r6|dd … }tj||d	d� t	|dƒ |j
d|d d… dd
� |j
d|dd … dd
� tj|d |d	d� ttj d¡ d¡tj d¡ d¡ddtdƒ d¡tdƒ d¡dœt d¡d�}tj|jdd…d d …f< t	|dƒ |j
d|d d… d	d
� |j
d|dd … d	d
� tj|d |d	d� t	|dƒ |j
d|d d… dd
� |j
d|dd … dd
� tj|d |d	d� W d   ƒ n1 �sòw   Y  W d   ƒ d S W d   ƒ d S 1 �sw   Y  d S )Nr   r   )rv   rw   r0   r   rz   r%   r   T)Údropnaéüÿÿÿr2   r   Fúio.hdf.dropna_tabler    Údf4rX   r`   )rv   rw   r   r_   rt   rY   ru   )rv   rw   r   r_   rx   ry   )r   r   r6   r7   r8   r9   rF   r?   r@   r   r;   r<   r=   ÚpdÚoption_contextr   r|   )rG   Úusing_infer_stringrH   r%   ro   rp   rJ   rJ   rK   Útest_append_all_nansÇ   sŽ   þû


ü
üù


ú÷

 Åã$ãr†   c              	   C   sr  t | ƒ�«}ttj d¡ d¡ttdƒƒtdddd�d�}|j	 
d ¡|_	t|d	ƒ |jd	|jd d …d d…f d
gd� | d	|jd d …dd …f ¡ t |d	 |¡ | d	d¡}|jdgd�}t ||¡ | d	d¡}|jdg|j	dd… d�}t ||¡ t d¡}tjt|d�� | d	d¡ W d   ƒ n1 sšw   Y  W d   ƒ d S W d   ƒ d S 1 s²w   Y  d S )Nr   ©r   r   r   r   r   r   r   r   r   r   )Úaxesú	columns=Ar]   r^   )r‰   zindex=df.index[0:4]r   r   zOpassing a filterable condition to a non-table indexer [Filter: Not Initialized]©Úmatchzcolumns=A and index>df.index[4])r   r   r6   r7   r8   r9   r   r:   r
   r   Ú
_with_freqr   r;   Úilocr<   r=   rj   ÚreindexÚreÚescapeÚpytestÚraisesÚ	TypeError)rG   rH   r%   ro   rp   ÚmsgrJ   rJ   rK   Ú!test_append_frame_column_oriented#  s4   

ý
$ÿÿä"är•   c              	   C   sj  t | ƒ�z}tdƒD ]m}ttj d¡ d¡tdƒd�}tdƒ|d< |d  |d 7  < tdgt	|ƒ dd	�|d< tdgt	|ƒ d
d	�|d
< |d dkrZ|d= tdgt	|ƒ dd	�|d< |d dkri| 
d¡}||d< |jddd� | d|¡ q	W d   ƒ n1 s�w   Y  t | ƒ� }ttj d¡ d¡tdƒdd�}tdgt	|ƒ dd	�|d< tdgt	|ƒ d
d	�|d
< | d|¡ tdgt	|ƒ d
d	�|d< t d¡}tjt|d�� | d|¡ W d   ƒ n1 såw   Y  tdgt	|ƒ dd	�|d< t d¡}tjt|d�� | d|¡ W d   ƒ n1 �sw   Y  W d   ƒ d S W d   ƒ d S 1 �s.w   Y  d S )Nr   r   )r   r   ÚABr^   r   r!   Úint64r*   Úint16r   ra   r]   Trb   r%   rg   )r   r+   Úint16_2zCcannot match existing table structure for [int16] on appending datarŠ   ç      ð?Úfloat_3zAcannot match existing table structure for [A,B] on appending data)r   rf   r   r6   r7   r8   r9   r:   r   rk   Úpoprl   r;   r�   r�   r‘   r’   Ú
ValueError)rG   rH   rQ   r%   Úar”   rJ   rJ   rK   Ú)test_append_with_different_block_orderingD  sZ   
ÿ
îÿ
ýÿÿÿ ÿé$érŸ   c              	      s<  t | ƒ��œ‰ ‡ fdd„}tddgddggƒ}ˆ  d|¡ t ˆ  d¡|¡ |ddd	ƒ td
dgddggƒ}ˆ  d|¡ t||gƒ}t ˆ  d¡|¡ |ddd	ƒ tddgddggƒ}ˆ jd|ddid� t ˆ  d¡|¡ |dddƒ ˆ  d|¡ td
dgddggƒ}d}tjt	|d�� ˆ  d|¡ W d   ƒ n1 s�w   Y  tg d¢g d¢t
g d¢ƒtddd�dœƒ d¡}ˆ jd|d  d!d"id� t ˆ  d¡|d  ¡ ˆ jd#|d  d$d!d"id%� t ˆ  d#¡|d  ¡ ˆ jd&|d'd!d(id)� | ¡  ¡ jd*d+� d¡}ˆ  d&|¡ t ˆ  d&¡t||gƒ¡ ˆ jd,|d  d'd!d(id)� ˆ  d,|d  ¡ t ˆ  d,¡t|d  |d  gƒ¡ tˆ d-ƒ ttj d.¡ d/¡t
td0ƒƒtd1d2d d3�d4�}d5|d6< tj|j|jd7d"… d6f< d8|d9< tj|j|jd"d:… d9f< d;|d<< tj|j|jd7d … d<f< ˆ  d-|¡ ˆ  d-¡}t ||¡ W d   ƒ n	1 �s¥w   Y  t | ƒ�å‰ td5d8d=œtd2ƒd>�}tˆ d-ƒ ˆ jd-|d?d@id� |d-d?d@ƒ ˆ  d-¡jd?gk�sÛJ ‚tˆ d-ƒ ˆ jd-|d gd?d@id%� |d-d?d@ƒ ˆ  d-¡jd d?gk�sÿJ ‚tˆ d-ƒ ˆ jd-|d gdd@id%� |d-d d@ƒ |d-dAd@ƒ ˆ  d-¡jd gk�s(J ‚tˆ d-ƒ ˆ jd-|d d… d@d� ˆ jd-|dd … d@d� t ˆ d- |¡ tg dB¢d?gdC�}tˆ d-ƒ t dD¡}tjt	|d�� ˆ jd-|dEdEdFœd� W d   ƒ n1 �s~w   Y  W d   ƒ d S W d   ƒ d S 1 �s—w   Y  d S )GNc                    ó"   t ˆ  | ¡jj|ƒj|ksJ ‚d S ©N©ÚgetattrÚ
get_storerr   ÚdescriptionÚitemsize©Úkeyri   r)   ©rH   rJ   rK   Ú	check_col{  ó   "z+test_append_with_strings.<locals>.check_colé{   Ú	asdqwertyiY  ÚdggnhebbsdfbdfbÚdf_bigÚvalues_block_1rz   é|   ÚasdqyiZ  ÚdggnhefbdfbÚdf_big2Úvaluesé2   ©Úmin_itemsizeÚdf_newÚ
abcdefqhijÚabcdefghijklmnopqrtsuvwxyzz¯Trying to store a string with len \[26\] in \[values_block_1\] column but\nthis column has a limit of \[15\]!\nConsider using min_itemsize to preset the sizes on these columnsrŠ   )ç        rš   g       @g      @g      @)r¼   rš   r¼   rš   r¼   )Úfoo1Úfoo2Úfoo3Úfoo4Úfoo5Ú20130101r'   rT   )r]   r   r_   rx   r_   rV   r   r   r   Úss2T©r5   r¸   Úss3r   é   )r   r¸   Úlonger)r_   Úss4r%   r   r‡   r   r   r   r   r   rX   Ústringr!   r`   Ústring2é   ÚbahÚstring3©r]   r   r0   r]   éÈ   Úvalues_block_0)rX   rX   rX   ÚbarhrÑ   rÑ   r^   zBmin_itemsize has the key [foo] which is not an axis or data_columnr   )rX   Úfoobar) r   r   r;   r<   r=   rj   r	   r‘   r’   r�   r   r
   rl   rh   r>   r}   Úreset_indexÚassignr   r6   r7   r8   r9   r:   r?   r@   r   rf   r¤   r5   r�   r�   )rG   rª   r%   r   rp   r¹   r”   ro   rJ   r©   rK   Útest_append_with_stringsx  s°   ÿÿ

üÿù"

ý
®
T




ÿ ÿÞ"$ÞrÕ   c                 C   sˆ   t | ƒ�6}tdg d¢iƒ}|jd|d d… ddid� |jd|dd … ddid� t | d¡|¡ W d   ƒ d S 1 s=w   Y  d S )NÚx)rž   ÚbÚcÚdÚeÚfÚ r%   éÿÿÿÿr!   r·   )r   r   r;   r<   r=   rj   )rG   rH   r%   rJ   rJ   rK   Útest_append_with_empty_stringó  s   
"ûrÞ   c           	   	      sØ  t | ƒ�á‰ ttj d¡ d¡ttdƒƒtdddd�d�}d	|j	d
|j
 d¡f< tˆ dƒ ˆ jd|d d… dgd� ˆ  d|dd … ¡ t ˆ d |¡ ˆ jjjjjjjdu sXJ ‚ˆ jjjjjjjdu seJ ‚ˆ  dd¡}||jd
k }t ||¡ ˆ  dd¡}|j|jdd … d�}||jd
k }t ||¡ | ¡ }d|d< tj|j|jdd… df< d|j|jdd… df< tˆ dƒ ˆ jd|dgd� ˆ  dd¡}||jdk }t ||¡ ‡ fdd„}W d   ƒ n1 sèw   Y  t | ƒ�K‰ tˆ dƒ ˆ jd|dgddid� |dddƒ tˆ dƒ ˆ jd|dgdd� |dddƒ tˆ dƒ ˆ jd|dgddid� |dddƒ W d   ƒ n	1 �s@w   Y  t | ƒ�:‰ d|d< d |d!< d"|d#< tˆ dƒ ˆ jd|ddgdd$d%d&œd� |dddƒ |ddd$ƒ |dd'd%ƒ W d   ƒ n	1 �s‡w   Y  t | ƒ�§‰ | ¡ }d	|j	d
|j
 d(¡f< d)|j	d
|j
 d¡f< d|d< |j
 d¡}tj|j	dd…|f< d|j	dd…|f< d|d< |j
 d¡}tj|j	dd…|f< d|j	d*d+…|f< tˆ dƒ ˆ jd|g d,¢d� ˆ  dd-¡}||jdk|jdk@ |jd
k@ |jd
k @  }tj||d.d/� ˆ  dd0¡}||jdk|jd1k@  }t ||¡ W d   ƒ n	1 �s;w   Y  t | ƒ�ˆ‰ | ¡ }d|d< tj|j|jdd… df< d|j|jd*d2… df< d1|d< t d3ƒ !d4¡|d5< tj|j|jd6d… g d7¢f< tˆ d8ƒ ˆ jd8|g d9¢d� ˆ  d8d¡}||jd
k }t ||¡ ˆ  d8g d:¢¡}||jd
k|j"d
k@ |jdk@  }tj||d.d/� W d   ƒ n	1 �sÐw   Y  t | ƒ�ˆ‰ td;d+d<�}ttj d¡ d=¡|g d>¢d?�}d|d< tj|j|jdd… df< d|j|jd*d2… df< |dd@g  #¡ |dd@g< d1|d< ˆ jd8|g dA¢d� ˆ  d8d¡}||jd
k }t ||¡ ˆ  d8g dB¢¡}||jd
k|j"d
k@ |jdk@  }t ||¡ W d   ƒ d S 1 �sew   Y  d S )CNr   r‡   r   r   r   r   r   r   rš   r   r%   r4   TúB>0zB>0 and index>df.index[3]r   r0   rX   rÉ   r!   r`   r'   rÆ   zstring='foo'c                    r    r¡   r¢   r§   r©   rJ   rK   rª   $  r«   z0test_append_with_data_columns.<locals>.check_colé   rÄ   rµ   Ú	foobarbahrÊ   Ú
foobarbah1Ústring_block1Ú
foobarbah2Ústring_block2é(   r¶   )rÉ   rÊ   rµ   r°   r]   g      ð¿é   rË   )r]   r   rÉ   rÊ   z.string='foo' and string2='foo' and A>0 and B<0F)Ú
check_freqzstring='foo' and string2='cool'Úcoolé	   Ú20010102rY   Údatetimera   )r]   r   rì   Údf_dc)r   r_   rÉ   rÊ   rì   )úB > 0úC > 0zstring == fooz1/1/2000rT   )rË   ra   )r]   r   r_   )r   r   r_   )r   r_   rÉ   rÊ   )rî   rï   zstring == "foo")$r   r   r6   r7   r8   r9   r   r:   r
   r�   r   Úget_locr   r;   r<   r=   Ú_handleÚrootr%   r   Úcolsr   Ú
is_indexedr   rj   rŽ   r}   r?   r@   rÉ   rÊ   r]   r   r|   r_   Úabs)	rG   r%   ro   rp   r¹   rª   Úslrí   r   rJ   r©   rK   Útest_append_with_data_columnsü  sú   

ý

Ù
,


÷


üó

ÿþýÿâ
 

ÿ"ë
ý"$èr÷   c                 C   sÎ   |}d |j _t|ƒ�0}| d|¡ | d¡}t ||¡ |jdddgd�}|jddgd�}t ||¡ W d   ƒ n1 s=w   Y  | d }|j|ddd� t	|dddgd�}|jddgd�}t ||¡ d S )	Nre   r]   r   r^   ztest.hdfr%   r   )r¨   r   )
r   ri   r   r;   rj   r<   r=   rŽ   Úto_hdfr   )Útmp_pathrG   Ú multiindex_dataframe_random_datar%   rH   ro   rp   ÚpathrJ   rJ   rK   Útest_append_hierarchical—  s   

ø
rü   c                 C   s²   t | ƒ�K}tdt d¡ d¡ ttdƒƒtdd„ tdƒD ƒƒd�}|jd	|d
d� | 	d	¡}t
 ||¡ |jd|dd� | 	d¡}t
 ||¡ W d   ƒ d S 1 sRw   Y  d S )Nçš™™™™™ñ?éx   ©rà   r   r   c                 S   rM   ©zi-rJ   rO   rJ   rJ   rK   rR   ±  rS   z$test_append_misc.<locals>.<listcomp>rà   r   r%   r!   ©Ú	chunksizer   r   )Úexpectedrows)r   r   r6   rF   Úreshaper   r:   rf   r;   rj   r<   r=   )rG   rH   r%   ro   rJ   rJ   rK   Útest_append_misc¬  s   

ý

"ôr  r  )r   rÏ   iè  c                 C   sæ   t dt d¡ d¡ ttdƒƒtdd„ tdƒD ƒƒd�}d	|d
< d|d< |d  d¡|d< |d dk|d< tdƒ 	d¡|d< tdƒ 	d¡|d< t
| dd��}|jd||d� | d¡}t ||¡ W d   ƒ d S 1 slw   Y  d S )Nrý   rþ   rÿ   r   c                 S   rM   r   rJ   rO   rJ   rJ   rK   rR   Â  rS   z.test_append_misc_chunksize.<locals>.<listcomp>rà   r   rX   rÉ   rš   Úfloat322Úfloat32r   ÚboolrÂ   rY   Útime1Ú20130102Útime2Úw)ÚmodeÚobjr  )r   r6   rF   r  r   r:   rf   r{   r   r|   r   r;   rj   r<   r=   )rG   r  r%   rH   ro   rJ   rJ   rK   Útest_append_misc_chunksize¼  s    
ý
"ýr  c              	   C   s  t | ƒ�u}ttdƒd�}| d|¡ tjtdd�� | d¡ W d   ƒ n1 s)w   Y  ttj	 
d¡ 	d¡tdƒd�}| d|¡ t | d¡|¡ | d|¡ t | d¡|¡ ttdƒd�}| d|¡ t | d¡|¡ W d   ƒ d S 1 s|w   Y  d S )	NÚABCr^   r%   z 'No object named df in the file'rŠ   r   )r   ra   r   )r   r   r:   r;   r‘   r’   ÚKeyErrorrj   r6   r7   r8   r<   r=   r>   )rG   rH   Údf_emptyr%   rJ   rJ   rK   Útest_append_misc_empty_frameÐ  s   
ÿ"ïr  c              	   C   s¢  t | ƒ��Á}tdt d¡ d¡ ttdƒƒtdd„ tdƒD ƒƒd�}d	ggt|ƒ |d
< |j	d
 tj
ks6J ‚t d¡}tjt|d�� | d|¡ W d   ƒ n1 sSw   Y  d	ggt|ƒ |d< d	ggt|ƒ |d< tjt|d�� | d|¡ W d   ƒ n1 s„w   Y  tdt d¡ d¡ ttdƒƒtdd„ tdƒD ƒƒd�}tt ddd¡|jd�}| t¡}tj|dd…< ||d
< |j	d
 tj
ksËJ ‚d}tjt|d�� | d|¡ W d   ƒ n1 såw   Y  d}tjt|d�� | dt d¡¡ W d   ƒ n	1 �sw   Y  t d¡}tjt|d�� | dtt d¡ƒ¡ W d   ƒ n	1 �s0w   Y  tdt d¡ d¡ ttdƒƒtdd„ tdƒD ƒƒd�}| d|¡ d|d< t d¡}tjt|d�� | d|¡ W d   ƒ n	1 �syw   Y  t|dƒ tdƒ|d< | d|¡ d|d< t d ¡}tjt|d�� | d|¡ W d   ƒ n1 �s±w   Y  W d   ƒ d S W d   ƒ d S 1 �sÊw   Y  d S )!Nrý   rþ   rÿ   r   c                 S   rM   r   rJ   rO   rJ   rJ   rK   rR   ò  rS   z%test_append_raise.<locals>.<listcomp>rà   r   rž   ÚinvalidziCannot serialize the column [invalid]
because its data contents are not [string] but [mixed] object dtyperŠ   r%   Úinvalid2Úinvalid3c                 S   rM   r   rJ   rO   rJ   rJ   rK   rR     rS   iÑ  r!   r   r0   r   r'   z>too many timezones in this block, create separate data columnsz(value must be None, Series, or DataFramer   z]cannot properly create the storer for: [group->df,value-><class 'pandas.core.series.Series'>]c                 S   rM   r   rJ   rO   rJ   rJ   rK   rR   #  rS   rX   z‰invalid combination of [non_index_axes] on appending data [(1, ['A', 'B', 'C', 'D', 'foo'])] vs current table [(1, ['A', 'B', 'C', 'D'])]rÂ   r`   zmCannot serialize the column [foo] because its data contents are not [string] but [datetime64[s]] object dtype)r   r   r6   rF   r  r   r:   rf   rk   ÚdtypesÚobject_r�   r�   r‘   r’   r“   r;   r   rì   r   r{   Úobjectr?   r�   r   r   )rG   r…   rH   r%   r”   rq   rJ   rJ   rK   Útest_append_raiseé  sŠ   
ýÿÿÿ
ý
ÿÿÿÿ
ýÿÿ
ÿ ÿ±O$±r  c                    s   t dƒ d¡‰ tˆ ‡ fdd„tdƒD ƒdœƒ}|d |d  |d	< tj|jd
d…d	f< t| ƒ�—}t|dƒ |j	d|dd� | 
d¡}t ||¡ |j
ddd�}t ||¡ |j
ddd�}t ||jd
d … ¡ | 
dd¡}t ||jd
d … ¡ | 
dd¡}|jd	gd�}t ||jdd … ¡ | 
dd¡}|jdd … }t ||jdd … ¡ t|dƒ | d|¡ | 
d¡}t ||¡ W d   ƒ d S 1 sÉw   Y  d S )NrÂ   rY   c                    s   g | ]
}ˆ t |d d� ‘qS )r   )ÚdaysÚsecondsr   rO   ©rW   rJ   rK   rR   F  s    z.test_append_with_timedelta.<locals>.<listcomp>r   rÎ   r]   r   r_   ra   r'   r%   Tr4   zC<100000)ÚwherezC<pd.Timedelta('-3D')zC<'-3D'zC<'-500000s')ÚsubsetrÆ   z	C<'-3.5D'r!   r   r   )r   r|   r   rf   r6   r?   r@   r   r   r;   rj   r<   r=   r�   r   r>   )rG   r%   rH   ro   rJ   r  rK   Útest_append_with_timedelta>  s<   þÿ




"âr   c              	   C   s¬  t tj d¡ d¡ttdƒƒtdddd�d�}| ¡ j	d	j
d
�}d|d< t||gdd�}t| ƒ�œ}d}tjt|d�� |jddgd dœ|dd� W d   ƒ n1 sRw   Y  tjt|d�� |jd d dœ|dd� W d   ƒ n1 stw   Y  d}tjt|d�� | d|d¡ W d   ƒ n1 s”w   Y  |jddgd dœ|dd� |jddgddgdd�}||jdk|jdk@  }t ||¡ W d   ƒ d S 1 sÏw   Y  d S )Nr   r‡   r   r   r   r   r   r   ú{}_2r^   r`   rX   r!   ©Úaxisz=append_to_multiple requires a selector that is in passed dictrŠ   r]   ©r   r   r    )ÚselectorzQappend_to_multiple must have a dictionary specified as the way to split the valuer   r   zA>0rß   )r  r%  r   )r   r6   r7   r8   r9   r   r:   r
   r}   Úrenamer   r	   r   r‘   r’   r�   Úappend_to_multipleÚselect_as_multipler]   r   r<   r=   )rG   r   r   r%   rH   r”   ro   rp   rJ   rJ   rK   Útest_append_to_multiplem  s<   
ý
ÿÿÿÿÿÿ"èr)  c                 C   s  t tj d¡ d¡ttdƒƒtdddd�d�}t tj d¡ d¡ttdƒƒtdddd�d�jd	j	d
�}tj
|jd|j ddg¡f< t||gdd�}t| ƒ�8}|jddgd dœ|ddd� | ddg¡}| ¡ }tj||dd� t | d¡j| d¡j¡ W d   ƒ d S 1 sˆw   Y  d S )Nr   r‡   r   r   r   r   r   r   r!  r^   r!   r]   r"  r$  r   T©r%  r   r   r2   )r   r6   r7   r8   r9   r   r:   r
   r&  r   r?   r�   r   Úget_indexerr	   r   r'  r(  r   r<   r=   Úassert_index_equalrj   r   )rG   r   r   r%   rH   ro   rp   rJ   rJ   rK   Útest_append_to_multiple_dropna’  s.   
ý
ýü
ÿ"ør-  c              
   C   sP  t tj d¡ d¡ttdƒƒtdddd�d�}| ¡ j	d	j
d
�}tj|jd|j ddg¡f< t||gdd�}t| ƒ�d}t dd¡�E |jddgd dœ|ddd� d}tjt|d�� | ddg¡ W d   ƒ n1 skw   Y  | d¡j | d¡j¡rJ ‚W d   ƒ n1 s‰w   Y  W d   ƒ d S W d   ƒ d S 1 s¡w   Y  d S )Nr   r‡   r   r   r   r   r   r   r!  r^   r!   r]   r"  r�   T)Údf1aÚdf2ar.  Fr*  z,all tables must have exactly the same nrows!rŠ   r/  )r   r6   r7   r8   r9   r   r:   r
   r}   r&  r   r?   r�   r   r+  r	   r   rƒ   r„   r'  r‘   r’   r�   r(  rj   r   Úequals)rG   r   r   r%   rH   r”   rJ   rJ   rK   Ú$test_append_to_multiple_dropna_false«  s(   
ýÿÿÿ Pôr1  c              	   C   sØ   t t dd¡t dd¡t dd¡d dd„ tdƒD ƒdd„ tdƒD ƒdœƒ}|jd	g }t| ƒ�2}|jd
gddgddgdœ|jd	g dddddœd� | g d¢¡}tj	||dd� W d   ƒ d S 1 sew   Y  d S )Nr!   é   éX   c                 S   ó   g | ]}d ‘qS )rž   rJ   ©rP   Ú_rJ   rJ   rK   rR   Ë  ó    z8test_append_to_multiple_min_itemsize.<locals>.<listcomp>r   c                 S   r4  )ÚabcderJ   r5  rJ   rJ   rK   rR   Ì  r7  )ÚIXÚNumÚBigNumÚStrÚLongStrr   r9  r:  r;  r<  r=  )r   ÚnumsÚstrsr   r   rU   r   )r<  r=  r:  r·   Tr2   )
r   r6   rF   rf   r�   r   r'  r(  r<   r=   )rG   r%   rp   rH   ro   rJ   rJ   rK   Ú$test_append_to_multiple_min_itemsizeÄ  s,   

ûÿ	
ý

ø
"ôr@  c              	   C   sV  t dddœt d¡d�}| ¡ }tj|jdd…d d …f< d}t| ƒ�}| d	|d
 ¡ tj	t
|d�� | d	|d
 ¡ W d   ƒ n1 sEw   Y  |jd|d dd� tj	t
|d�� | d|d ¡ W d   ƒ n1 snw   Y  |jd|d
 dd� | d|d
 ¡ |d }t|d
 |d
 gƒ}t ||¡ W d   ƒ d S 1 s¤w   Y  d S )Nrž   rX   rÎ   r   r0   r   r   z8NaN representation is too large for existing column sizeÚsar]   rŠ   Úsbr   Úbars)Únan_repÚscÚn)r   r6   rF   r}   r?   r@   r   r;   r‘   r’   r�   r	   r<   rh   )rG   r%   Údf_nanr”   rH   ro   rp   rJ   rJ   rK   Útest_append_string_nan_repà  s&   
ÿÿ"ðrH  )5rì   r   r�   Únumpyr6   r‘   Úpandas._libs.tslibsr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasrƒ   r   r   r   r   r<   r	   r
   r   Úpandas.tests.io.pytables.commonr   r   ÚmarkÚ
single_cpuÚ
pytestmarkÚimportorskipr   ÚfilterwarningsrL   rr   r~   r†   r•   rŸ   rÕ   rÞ   r÷   rü   r  Úparametrizer  r  Ú&skip_array_manager_not_yet_implementedr  r   r)  r-  r1  r@  rH  rJ   rJ   rJ   rK   Ú<module>   sH    $	



H/0\!4{	 

T/%