o
    Tiׄ                     @   sT  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 d dlmZmZ ejj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) Z/d*d+ Z0d,d- Z1d.d/ Z2dS )0    N	timedelta)	Timestamp)	DataFrameSeries_testingconcat
date_rangeread_hdf)_maybe_removeensure_clean_storetablesz!ignore::tables.NaturalNameWarningc              
   C   s  t | 1}t }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 s:w   Y  d S ) Ndf1
   df2tableformatdf3z/df3z/df3 foozdf3 foo      r   )dataZtestingmixed_column)r   r   df      )highsizedtypei  i   @)l           l          @l            l            l            )u08u16u32Zu64indexZuintsTZcheck_index_type)r    r!   r"   data_columns)r   tmmakeTimeDataFramer   appendassert_frame_equalputr   npnanlocr   randomdefault_rngZintegersZuint8Zuint16Zuint32Zuint64arange)
setup_pathstorer   Z	uint_data r5   d/var/www/html/evchargy.com/venv/lib/python3.10/site-packages/pandas/tests/io/pytables/test_append.pytest_append   sf   



"


$r7   c           	      C   s  t | }t }t }ttd}|d| |d }t|| |j	d u s+J |d| |d }t|| |j	d u sBJ d|_	|d| |d }t|| |j	|j	ks]J ||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 sw   Y  d S )Nd   sstsfoons<   zfoo>60F   Z   zfoo>70 and index<90Tr%   r   )r   r   AcolumnsBCbar   r   Zinplace)Zfuture_stackmi)r   r(   ZmakeStringSeriesZmakeTimeSeriesr   r-   r2   r*   assert_series_equalnameselectr$   r   r0   r1   standard_normallenr/   	set_indexstackZ	droplevel)	r3   r4   r9   r:   r<   resultexpectedrH   sr5   r5   r6   test_append_seriesc   sB   
"rS   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 sw   Y  d S )Nr      Zint32r;   rE   
2001-01-01r<   
2001-01-02)r@   A1A2rC   rD   DEr#   r   r      )rW   rC   rY   rZ   r   Tr%   rW   rX   r   rZ   r   )r   r   r   r-   r0   r1   rL   astyper   as_unitr2   r   r.   r/   r*   r(   r+   copy)r3   r4   r   r   r   r   r5   r5   r6   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 sw   Y  tdd	% 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
 tj|d |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 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   rT   )rW   rX   r#   r   r[   r   r   T)dropnar%   r   Fio.hdf.dropna_tabler   Zdf4r;   rE   )rW   rX   rC   rD   rU   r<   rV   )rW   rX   rC   rD   rY   rZ   )r   r   r-   r0   r1   rL   r2   r.   r/   r   r*   r(   r+   pdoption_contextr   r]   r3   r4   r   r5   r5   r6   test_append_all_nans   s   








 $rf   c              	   C   sL  t | }t }|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 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   r   rB   )Zaxes	columns=Ar@   rA   )rg   zindex=df.index[0:4]r      )rB   r$   zOpassing a filterable condition to a non-table indexer [Filter: Not Initialized]matchzcolumns=A and index>df.index[4])r   r(   r)   r$   Z
_with_freqr   r*   ilocr+   rK   reindexreescapepytestraises	TypeError)r3   r4   r   rP   rQ   msgr5   r5   r6   !test_append_frame_column_oriented  s,   

$"rs   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 sw   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 sw   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   ZABrA   r$   r   Zint64r   Zint16r   rF   r@   TrG   r   Zfloat64)rB   r   Zint16_2zCcannot match existing table structure for [int16] on appending datari         ?Zfloat_3zAcannot match existing table structure for [A,B] on appending data)r   ranger   r-   r0   r1   rL   listr   rM   poprN   r*   rm   rn   ro   rp   
ValueError)r3   r4   ir   arr   r5   r5   r6   )test_append_with_different_block_ordering3  sZ   


 $r{   c              	      s  t | x  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 sw   Y  t
 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 }d'|d(< tj|j|jd)d d(f< d*|d+< tj|j|jdd, d+f< d-|d.< tj|j|jd)d  d.f<  d&|  d&}t|| W d    n	1 sw   Y  t |  td'd*d/td0d1}t d&  jd&|d2d3id |d&d2d3  d&jd2gksJ t d&  jd&|dgd2d3id |d&d2d3  d&jdd2gksJ t d&  jd&|dgdd3id |d&dd3 |d&d4d3  d&jdgksJ t d&  jd&|d d5 d3d  jd&|d5d  d3d t d& | tg d6d2gd7}t d& td8}tjt	|d  jd&|d9d9d:d W d    n1 sZw   Y  W d    d S W d    d S 1 ssw   Y  d S );Nc                    "   t  | jj|j|ksJ d S Ngetattr
get_storerr   descriptionitemsizekeyrJ   r   r4   r5   r6   	check_colj     "z+test_append_with_strings.<locals>.check_col{   Z	asdqwertyiY  ZdggnhebbsdfbdfbZdf_bigvalues_block_1r[   |   ZasdqyiZ  ZdggnhefbdfbZdf_big2values2   min_itemsizedf_newZ
abcdefqhijZabcdefghijklmnopqrtsuvwxyzzTrying 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 columnsri   rD   r9   rC   r$   rh   Zss2Tr'   r   Zss3r      )r   r   Zlonger)rD   Zss4r   r;   stringr   rE   string2   ZbahZstring3r@   rC   r   r#   r@      Zvalues_block_0r   )r;   r;   r;   barhr   r   rA   zBmin_itemsize has the key [foo] which is not an axis or data_columnrT   )r;   Zfoobar)r   r   r*   r(   r+   rK   r   ro   rp   rx   ZmakeMixedDataFramerN   rI   r,   r^   Zreset_indexZassignr   r)   r-   r.   r/   r$   ru   r   r'   rm   rn   )r3   r   r   r   rQ   r   rr   rP   r5   r   r6   test_append_with_stringsg  s   "


I




 "$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)rz   bcdef r   r   r   )r   r   r*   r(   r+   rK   re   r5   r5   r6   test_append_with_empty_string  s   
"r   c           	   	      s  t | Ή t }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 sEJ  j	j
jjjjjdu sRJ  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 sw   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 stw   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d*}||jdk|jd+k@  }t|| W d    n	1 s(w   Y  t |  | }d|d< tj|j|jd
d df< d|j|jd$d, df< d+|d< td-d.|d/< tj|j|jd0d g d1f< t d2  jd2|g d3d  d2d}||jdk }t||  d2g d4}||jdk|jdk@ |jdk@  }tj||d(d) W d    n	1 sw   Y  t |  td5d%d6}ttj d!d7|g d8d9}d|d< tj|j|jd
d df< d|j|jd$d, df< |dd:g " |dd:g< d+|d<  jd2|g d;d  d2d}||jdk }t||  d2g d<}||jdk|jdk@ |jdk@  }t|| W d    d S 1 sRw   Y  d S )=Nrt   r   rC   r   r   r&   TB>0zB>0 and index>df.index[3]rh   r#   r;   r   r   rE   r   r   zstring='foo'c                    r|   r}   r~   r   r   r5   r6   r     r   z0test_append_with_data_columns.<locals>.check_col   r   r   Z	foobarbahr   Z
foobarbah1Zstring_block1Z
foobarbah2Zstring_block2(   r   )r   r   r   r   r@   g         r   )r@   rC   r   r   z.string='foo' and string2='foo' and A>0 and B<0F)Z
check_freqzstring='foo' and string2='cool'cool	   Z20010102r<   datetimerF   )r@   rC   r   df_dc)rC   rD   r   r   r   )B > 0C > 0zstring == fooz1/1/2000)Zperiods)r   rF   )r@   rC   rD   )r$   rB   rD   )rC   rD   r   r   )r   r   zstring == "foo")#r   r(   r)   rk   rB   Zget_locr   r*   r+   Z_handlerootr   r   colsr$   Z
is_indexedrC   rK   rl   r^   r-   r.   r/   r   r   r@   r   r]   rD   r	   r   r0   r1   rL   abs)	r3   r   rP   rQ   r   r   slr   r$   r5   r   r6   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 )	NrH   r@   rC   rA   ztest.hdfr   r   r   )
rB   rJ   r   r*   rK   r(   r+   rl   Zto_hdfr
   )Ztmp_pathr3   Z multiindex_dataframe_random_datar   r4   rP   rQ   pathr5   r5   r6   test_append_hierarchicalw  s   


r   c                 C   s   t | 3}t }|jd|dd |d}t|| |jd|dd |d}t|| W d    d S 1 s:w   Y  d S )Nr   r   	chunksizer   r   )Zexpectedrows)r   r(   makeDataFramer*   rK   r+   )r3   r4   r   rP   r5   r5   r6   test_append_misc  s   


"r   r   )r   r   i  c                 C   s   t  }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 sTw   Y  d S )Nr;   r   rt   Zfloat322Zfloat32r   bool20130101r<   Ztime1Z20130102Ztime2w)modeobjr   )	r(   r   r\   r   r]   r   r*   rK   r+   )r3   r   r   r4   rP   r5   r5   r6   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ABCrA   r   z 'No object named df in the file'ri   r   )r   rF   r   )r   r   rv   r*   ro   rp   KeyErrorrK   r-   r0   r1   r(   r+   r,   )r3   r4   Zdf_emptyr   r5   r5   r6   test_append_misc_empty_frame  s   
"r   c              	   C   s  t | w}t }dggt| |d< |jd tjksJ td}t	j
t|d |d| W d    n1 s;w   Y  dggt| |d< dggt| |d< t	j
t|d |d| W d    n1 slw   Y  t }ttdd	d
|jd}|t}tj|dd< ||d< |jd tjksJ d}t	j
t|d |d| W d    n1 sw   Y  d}t	j
t|d |dtd W d    n1 sw   Y  td}t	j
t|d |dttd W d    n1 sw   Y  t }|d| d|d< td}t	j
t|d |d| W d    n	1 s/w   Y  t|d td|d< |d| d|d< td}t	j
t|d |d| W d    n1 sgw   Y  W d    d S W d    d S 1 sw   Y  d S )Nrz   invalidziCannot serialize the column [invalid]
because its data contents are not [string] but [mixed] object dtyperi   r   Zinvalid2Zinvalid3i  r   r   r#   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'>]r;   zinvalid combination of [non_index_axes] on appending data [(1, ['A', 'B', 'C', 'D', 'foo'])] vs current table [(1, ['A', 'B', 'C', 'D'])]r   rE   zinvalid combination of [values_axes] on appending data [name->values_block_1,cname->values_block_1,dtype->bytes24,kind->string,shape->(1, 30)] vs current table [name->values_block_1,cname->values_block_1,dtype->datetime64,kind->datetime64,shape->None])r   r(   r   rM   Zdtypesr-   Zobject_rm   rn   ro   rp   rq   r*   r   r   r$   r\   objectr.   r2   rx   r   r   )r3   r4   r   rr   rR   r5   r5   r6   test_append_raise  sr   

 F$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 sw   Y  d S )Nr   r<   c                    s   g | ]
} t |d d qS )r   )dayssecondsr   ).0ry   r:   r5   r6   
<listcomp>  s    z.test_append_with_timedelta.<locals>.<listcomp>r   r   r@   rC   rD   rF   r   r   Tr&   zC<100000)wherezC<pd.Timedelta('-3D')zC<'-3D'zC<'-500000s')Zsubsetr   z	C<'-3.5D'r   rh   r   )r   r]   r   ru   r-   r.   r/   r   r   r*   rK   r(   r+   rk   r`   r,   )r3   r   r4   rP   r5   r   r6   test_append_with_timedelta  s<   




"r   c              	   C   s  t  }t  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 s?w   Y  tjt|d |j	d d d|dd W d    n1 saw   Y  d}tjt|d |	d|d W d    n1 sw   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 sw   Y  d S )N{}_2rA   rE   r;   r   Zaxisz=append_to_multiple requires a selector that is in passed dictri   r@   rC   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(   r)   renamer   r   r   ro   rp   rx   append_to_multipleselect_as_multipler@   rC   r+   )r3   r   r   r   r4   rr   rP   rQ   r5   r5   r6   test_append_to_multiple<  s4   
"r   c                 C   s   t  }t  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 sbw   Y  d S )Nr   rA   r   r@   rC   r   r   r   Tr   r`   r   r%   )r(   r)   r   r   r-   r.   rk   rB   get_indexerr   r   r   r   r`   r+   Zassert_index_equalrK   r$   )r3   r   r   r   r4   rP   rQ   r5   r5   r6   test_append_to_multiple_dropna]  s   
"r   c              
   C   s*  t  }t  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 sXw   Y  |d
j|djrlJ W d    n1 svw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   rA   r   r@   rC   r   rb   T)df1adf2ar   Fr   z,all tables must have exactly the same nrows!ri   r   )r(   r)   r   r   r-   r.   rk   rB   r   r   r   rc   rd   r   ro   rp   rx   r   rK   r$   equals)r3   r   r   r   r4   rr   r5   r5   r6   $test_append_to_multiple_dropna_falsen  s     Pr   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 )rz   r5   r   _r5   r5   r6   r         z8test_append_to_multiple_min_itemsize.<locals>.<listcomp>rT   c                 S   r   )Zabcder5   r   r5   r5   r6   r     r   )IXNumBigNumStrLongStrr   r   r   r   r   r   )r$   Znumsstrsr$   r   r8   r   )r   r   r   r   Tr%   )
r   r-   r2   ru   rk   r   r   r   r(   r+   )r3   r   rQ   r4   rP   r5   r5   r6   $test_append_to_multiple_min_itemsize  s,   

	



"r   )3r   r   rm   numpyr-   ro   Zpandas._libs.tslibsr   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasrc   r   r   r   r(   r   r	   r
   Zpandas.tests.io.pytables.commonr   r   markZ
single_cpuZ
pytestmarkZimportorskipr   filterwarningsr7   rS   r_   rf   rs   r{   r   r   r   r   r   Zparametrizer   r   Z&skip_array_manager_not_yet_implementedr   r   r   r   r   r   r5   r5   r5   r6   <module>   sF     


D-0V4p	 

K/!