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   )dataZtestingmixed_column)r   r#   df      )highsizedtypei  i   @)l           l          @l            l            l            )u08u16u32Zu64r   ZuintsTZ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   ZintegersZuint8Zuint16Zuint32Zuint64arange)
setup_pathstorer$   Z	uint_data r@   e/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/io/pytables/test_append.pytest_append   sn   




"


$rB   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 sw   Y  d S )"Nr   c                 S      g | ]}d | qS )Zi_r@   .0ir@   r@   rA   
<listcomp>k       z&test_append_series.<locals>.<listcomp>)r*   r   r   r)   z
2020-01-01r   r.   d   sstsfoons<   zfoo>60F   Z   zfoo>70 and index<90Tr/   r   )r&   r!   Ar   r   Cbar   r&   Zinplace)Zfuture_stackmi)r   r   ranger2   float64r=   r
   r7   r8   assert_series_equalnameselectr   r   r3   r4   r5   lenr<   	set_indexstackZ	droplevel)	r>   r?   rK   rL   rN   resultexpectedrX   sr@   r@   rA   test_append_seriesh   sF   
""rd   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   r   Zint32rM   rU   
2001-01-01rN   
2001-01-02)rR   A1A2r   rT   DEr.   r   r      )rg   r   ri   rj   r   Tr/   rg   rh   r   rj   r    )r   r   r   r2   r3   r4   r5   astyper   as_unitr=   r   r;   r<   r7   r8   r9   copy)r>   r?   r$   r   r   r    r@   r@   rA   test_append_some_nans   sL   







"ro   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	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 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   r   )rg   rh   r.   r   rk   r$   r   T)dropnar/   r   Fio.hdf.dropna_tabler    Zdf4rM   rU   )rg   rh   r   rT   re   rN   rf   )rg   rh   r   rT   ri   rj   )r   r   r2   r3   r4   r5   r=   r;   r<   r   r7   r8   r9   pdoption_contextr   rm   )r>   using_infer_stringr?   r$   ra   rb   r@   r@   rA   test_append_all_nans   s   








 $rv   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 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   r   r   r   r   r   r   r   r   r   r   )Zaxes	columns=ArR   rS   )rx   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   r2   r3   r4   r5   r   r6   r
   r   Z
_with_freqr   r7   ilocr8   r9   r]   reindexreescapepytestraises	TypeError)r>   r?   r$   ra   rb   msgr@   r@   rA   !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 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ABrS   r   r!   Zint64r)   Zint16r   rV   rR   TrW   r$   rZ   )r   r*   Zint16_2zCcannot match existing table structure for [int16] on appending datary         ?Zfloat_3zAcannot match existing table structure for [A,B] on appending data)r   rY   r   r2   r3   r4   r5   r6   r   r^   popr_   r7   r}   r~   r   r   
ValueError)r>   r?   rF   r$   ar   r@   r@   rA   )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 sw   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 sw   Y  t |  td5d8d=td2d>}t d-  jd-|d?d@id |d-d?d@  d-jd?gksJ t d-  jd-|d gd?d@id% |d-d?d@  d-jd d?gksJ 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 sw   Y  d S )GNc                    "   t  | jj|j|ksJ d S Ngetattr
get_storerr   descriptionitemsizekeyr\   r(   r?   r@   rA   	check_col{     "z+test_append_with_strings.<locals>.check_col{   Z	asdqwertyiY  ZdggnhebbsdfbdfbZdf_bigvalues_block_1rk   |   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 columnsry   )        r   g       @g      @g      @)r   r   r   r   r   )Zfoo1Zfoo2Zfoo3Zfoo4Zfoo520130101r&   rI   )rR   r   rT   ri   rT   rK   r   r   r   Zss2Tr1   r   Zss3r      )r   r   Zlonger)rT   Zss4r$   r   rw   r   r   r   r   r   rM   stringr!   rU   string2   ZbahZstring3rR   r   r.   rR      Zvalues_block_0)rM   rM   rM   barhr   r   rS   zBmin_itemsize has the key [foo] which is not an axis or data_columnr   )rM   Zfoobar) r   r   r7   r8   r9   r]   r	   r   r   r   r   r
   r_   r[   r:   rn   Zreset_indexZassignr   r2   r3   r4   r5   r6   r;   r<   r   rY   r   r1   r}   r~   )r>   r   r$   r   rb   r   r   ra   r@   r   rA   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   r7   r8   r9   r]   )r>   r?   r$   r@   r@   rA   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 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 sw   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 sw   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   rw   r   r   r   r   r   r   r   r   r$   r0   TB>0zB>0 and index>df.index[3]r   r.   rM   r   r!   rU   r&   r   zstring='foo'c                    r   r   r   r   r   r@   rA   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   rR   g         r   )rR   r   r   r   z.string='foo' and string2='foo' and A>0 and B<0F)Z
check_freqzstring='foo' and string2='cool'cool	   Z20010102rN   datetimerV   )rR   r   r   df_dc)r   rT   r   r   r   )B > 0C > 0zstring == fooz1/1/2000rI   )r   rV   )rR   r   rT   )r   r   rT   )r   rT   r   r   )r   r   zstring == "foo")$r   r   r2   r3   r4   r5   r   r6   r
   r{   r   Zget_locr   r7   r8   r9   _handlerootr$   r   colsr   Z
is_indexedr   r]   r|   rn   r;   r<   r   r   rR   r   rm   rT   abs)	r>   r$   ra   rb   r   r   slr   r   r@   r   rA   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 )	NrX   rR   r   rS   ztest.hdfr$   r   )r   r   )
r   r\   r   r7   r]   r8   r9   r|   Zto_hdfr   )Ztmp_pathr>   Z multiindex_dataframe_random_datar$   r?   ra   rb   pathr@   r@   rA   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   rC   zi-r@   rD   r@   r@   rA   rG     rH   z$test_append_misc.<locals>.<listcomp>r   r   r$   r!   	chunksizer   r   )Zexpectedrows)r   r   r2   r=   reshaper   r6   rY   r7   r]   r8   r9   )r>   r?   r$   ra   r@   r@   rA   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   rC   r   r@   rD   r@   r@   rA   rG     rH   z.test_append_misc_chunksize.<locals>.<listcomp>r   r   rM   r   r   Zfloat322Zfloat32r   boolr   rN   Ztime1Z20130102Ztime2w)modeobjr   )r   r2   r=   r   r   r6   rY   rl   r   rm   r   r7   r]   r8   r9   )r>   r   r$   r?   ra   r@   r@   rA   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ABCrS   r$   z 'No object named df in the file'ry   r   )r   rV   r   )r   r   r6   r7   r   r   KeyErrorr]   r2   r3   r4   r8   r9   r:   )r>   r?   Zdf_emptyr$   r@   r@   rA   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 sw   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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 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 sw   Y  W d    d S W d    d S 1 sw   Y  d S )!Nr   r   r   r   c                 S   rC   r   r@   rD   r@   r@   rA   rG     rH   z%test_append_raise.<locals>.<listcomp>r   r   r   invalidziCannot serialize the column [invalid]
because its data contents are not [string] but [mixed] object dtypery   r$   Zinvalid2Zinvalid3c                 S   rC   r   r@   rD   r@   r@   rA   rG     rH   i  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'>]c                 S   rC   r   r@   rD   r@   r@   rA   rG   #  rH   rM   zinvalid combination of [non_index_axes] on appending data [(1, ['A', 'B', 'C', 'D', 'foo'])] vs current table [(1, ['A', 'B', 'C', 'D'])]r   rU   zmCannot serialize the column [foo] because its data contents are not [string] but [datetime64[s]] object dtype)r   r   r2   r=   r   r   r6   rY   r^   ZdtypesZobject_r}   r~   r   r   r   r7   r   r   r   rl   objectr;   r   r   r   )r>   ru   r?   r$   r   rc   r@   r@   rA   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 sw   Y  d S )Nr   rN   c                    s   g | ]
} t |d d qS )r   )dayssecondsr   rD   rL   r@   rA   rG   F  s    z.test_append_with_timedelta.<locals>.<listcomp>r   r   rR   r   rT   rV   r&   r$   Tr0   zC<100000)wherezC<pd.Timedelta('-3D')zC<'-3D'zC<'-500000s')Zsubsetr   z	C<'-3.5D'r!   r   r   )r   rm   r   rY   r2   r;   r<   r   r   r7   r]   r8   r9   r{   rp   r:   )r>   r$   r?   ra   r@   r   rA   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 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 )Nr   rw   r   r   r   r   r   r   {}_2rS   rU   rM   r!   Zaxisz=append_to_multiple requires a selector that is in passed dictry   rR   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   r2   r3   r4   r5   r   r6   r
   rn   renamer   r	   r   r   r   r   append_to_multipleselect_as_multiplerR   r   r8   r9   )r>   r   r   r$   r?   r   ra   rb   r@   r@   rA   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 sw   Y  d S )Nr   rw   r   r   r   r   r   r   r   rS   r!   rR   r   r   r   Tr   rp   r   r/   )r   r2   r3   r4   r5   r   r6   r
   r   r   r;   r{   r   get_indexerr	   r   r   r   rp   r8   r9   Zassert_index_equalr]   r   )r>   r   r   r$   r?   ra   rb   r@   r@   rA   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 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   rw   r   r   r   r   r   r   r   rS   r!   rR   r   rr   T)df1adf2ar   Fr   z,all tables must have exactly the same nrows!ry   r   )r   r2   r3   r4   r5   r   r6   r
   rn   r   r   r;   r{   r   r   r	   r   rs   rt   r   r   r   r   r   r]   r   equals)r>   r   r   r$   r?   r   r@   r@   rA   $test_append_to_multiple_dropna_false  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 )r   r@   rE   _r@   r@   rA   rG         z8test_append_to_multiple_min_itemsize.<locals>.<listcomp>r   c                 S   r   )Zabcder@   r   r@   r@   rA   rG     r   )IXNumBigNumStrLongStrr   r   r   r   r   r   )r   Znumsstrsr   r   rJ   r   )r   r   r   r   Tr/   )
r   r2   r=   rY   r{   r   r   r   r8   r9   )r>   r$   rb   r?   ra   r@   r@   rA   $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 sw   Y  d S )Nr   rM   r   r   r.   r   r   z8NaN representation is too large for existing column sizesarR   ry   sbr   Zbars)Znan_repscn)r   r2   r=   rn   r;   r<   r   r7   r   r   r   r	   r8   r[   )r>   r$   Zdf_nanr   r?   ra   rb   r@   r@   rA   test_append_string_nan_rep  s&   
"r   )5r   r   r}   numpyr2   r   Zpandas._libs.tslibsr   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasrs   r   r   r   r   r8   r	   r
   r   Zpandas.tests.io.pytables.commonr   r   markZ
single_cpuZ
pytestmarkZimportorskipr   filterwarningsrB   rd   ro   rv   r   r   r   r   r   r   r   Zparametrizer   r   Z&skip_array_manager_not_yet_implementedr   r   r   r   r   r   r   r@   r@   r@   rA   <module>   sH    $	



H/0\!4{	 

T/%