o
    %jI                     @   s  d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dl	Z
d dl	mZmZmZmZmZmZmZmZ d dlmZmZ d dlmZ ejjg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dd Z'dd Z(dd Z)ej&dd d! Z*d"d# Z+ej,d$d%ej-d&ej.d'gd(d) Z/d*d+ Z0ej,d,ej1ej2e3d-d.gd/d0 Z4d1d2 Z5d3d4 Z6ej,d$d%ej-d&ej.d'gd5d6 Z7dEd7d8Z8dEd9d:Z9d;d< Z:d=d> Z;d?d@ Z<dAdB Z=dCdD Z>dS )F    N)	Timestamp)is_platform_windows)	DataFrameDatetimeIndexIndexSeries_testingbdate_range
date_rangeread_hdf)_maybe_removeensure_clean_store)_test_decoratorsc                     s4  t    fdd} ttjdtjdtdddd}t || d| ttdd	d
d tdD d}t || d| t	dtd
d ttdtdd tdD d}t || d| t	tdtdd}|j ddd t ddgd}t ||jdk | W d    d S 1 sw   Y  d S )Nc                    s    |j  fd| i| t | S )Nkey)to_hdfr   )r   objkwargspath i/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/io/pytables/test_round_trip.py	roundtrip!   s   
z'test_conv_read_write.<locals>.roundtrip
   dtype
2020-01-01periodsindexZseriesfloat64c                 S      g | ]}d | qS Zi_r   .0ir   r   r   
<listcomp>*       z(test_conv_read_write.<locals>.<listcomp>r   r   Zstring_series皙?x         ABCDc                 S   r!   zi-r   r#   r   r   r   r&   0   r'   r,   columnsr   frame   ABtableTr   appendzindex>2)where   )tmZensure_cleanr   nparanger    r
   assert_series_equalranger   reshaper   listassert_frame_equalr   r   r   )r   odfresultr   r   r   test_conv_read_write   s&   
 
"rG   c                 C   sp   dgd }t d|i|d}t| }|jd|dgd |d}t|| W d    d S 1 s1w   Y  d S )NZ2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar   ar   rE   )Zdata_columns)r   r   r9   selectr<   rC   )
setup_pathdatarE   storerF   r   r   r   test_long_strings;   s   


"rM   c                 C   s   | | }t td}|jd d j|dddd |jdd  j|dddd tt|d| |jd d j|dddd |jdd  j|dddd tt|d| d S )N   r   rE   Tr7   r   r9   formatFr   r@   ilocr   r<   rC   r   tmp_pathrJ   r   rE   r   r   r   test_apiG   s   rU   c                 C   s   | | }t td}|jd d j|ddd |jdd  j|dddd tt|d| |jd d j|dddd |jdd  j|ddd tt|d| d S )	NrN   r   rE   Tr8   r7   rO   FrQ   rS   r   r   r   test_api_appendW   s   rV   c                 C   s*  | | }t td}|j|dddd tt|d| |j|dddd tt|d| |j|ddd tt|d| |j|dd tt|d| t|}t td}t|d |jd|j	d d	 d
dd |jd|j	d	d  d
dd t|
d| t|d |jd|j	d d	 ddd |jd|j	d	d  d
dd t|
d| t|d |jd|j	d d	 ddd |jd|j	d	d  d
dd t|
d| t|d |jd|j	d d	 ddd |jd|j	d	d  d
d d t|
d| W d    d S 1 sw   Y  d S )NrN   rE   FfixedrO   fr8   )r   r   Tr7   )r9   rP   )r   r@   r   r<   rC   r   r   r   r9   rR   rI   )rT   rJ   r   rE   rL   r   r   r   
test_api_2e   s:   




$rY   c                 C   s  | | }t dtdd ttdtdd tdD d}d	}tjt	|d
 |j
|dddd W d    n1 s=w   Y  tjt	|d
 |j
|dddd W d    n1 s]w   Y  d}tjt|d
 |j
|dddd W d    n1 sw   Y  tjt|d
 |j
|dddd W d    n1 sw   Y  d}d| d}tjt|d
 t|d W d    d S 1 sw   Y  d S )Nr)   r*   r+   r.   c                 S   r!   r/   r   r#   r   r   r   r&      r'   z$test_api_invalid.<locals>.<listcomp>r,   r0   zCan only append to TablesmatchrE   TrX   rO   rW   z)invalid HDFStore format specified \[foo\]fooF zFile z does not exist)r   r=   r>   rA   r   rB   r@   pytestraises
ValueErrorr   	TypeErrorFileNotFoundErrorr   )rT   rJ   r   rE   msgr   r   r   test_api_invalid   s2   
"rd   c              	   C   s   t | ]}ttjdtjdtdddd|d< |d}|d }t|| |d}|d }t|| t	j
tdd	 |d
 W d    n1 sLw   Y  W d    d S W d    d S 1 sdw   Y  d S )Nr   r   r   r   r   rH   z/az'No object named b in the file'rZ   b)r   r   r=   r>   r    r
   getr<   r?   r^   r_   KeyError)rJ   rL   leftrightr   r   r   test_get   s    



"rj   c                 C   s(   t tjdd}t|tj|  d S )Nr;   )2   d   )r   r=   randomdefault_rngstandard_normal_check_roundtripr<   rC   )rJ   rE   r   r   r   test_put_integer   s   rq   c           	      C   s  t | }tdg didd}|d| t|j|d j tdg didd}|d| t|j|d j td}tj	t
|d	 |d| W d    n1 sVw   Y  ttjd
gdgdggdddgd}|d| t|j|d j |jjd dksJ tdd dD }d|d< d|d< |d d|d< |d dk|d< td|d< td|d< |d| |dj }d d! |jD |_|rd"nd#}tddd$d
d%d
dd
d&d
d'd
d(d
|d
d)di	d*d+}| }| }t|| W d    d S 1 sw   Y  d S ),NrH      r;      Zf8r   Zdf_f8i8Zdf_i8zdCannot serialize the column [a] because its data contents are not [float] but [integer] object dtyperZ   rs   r;   rt   Zf4r5   r1   Zdf_f4r   float32c                 S   s(   i | ]}|t tjd d|dqS )r;   r3   r   )r   r=   rm   rn   Zintegers)r$   cr   r   r   
<dictcomp>   s    z6test_table_values_dtypes_roundtrip.<locals>.<dictcomp>)rw   r    int32int64int16int8r\   string      ?Zfloat322boolZ20130101Ztime1Z20130102Ztime2Zdf_mixed_dtypes1c                 S   s   g | ]}t |qS r   )strr#   r   r   r   r&          z6test_table_values_dtypes_roundtrip.<locals>.<listcomp>r   objectr    rz   r|   r}   r{   zdatetime64[ns]count)name)r   r   r9   r<   r?   Zdtypesreescaper^   r_   r`   r=   arrayrR   Zastyper   rI   Zvalue_countsr   r   Z
sort_index)	rJ   using_infer_stringrL   df1df2rc   rF   Z	str_dtypeexpectedr   r   r   "test_table_values_dtypes_roundtrip   sb   
$$r   z(ignore::pandas.errors.PerformanceWarningc                 C   s   t tdddd tdD d}t|tj| d t tjdtjdtddd	d
}t|tj| d t |j	t
|j	}t|tj| d t |jt
t|j	}t|tj| dd d S )Nr   r    c                 S   r!   r"   r   r#   r   r   r   r&     r'   ztest_series.<locals>.<listcomp>r(   r   r   r   r   r   F)r   check_index_type)r   r@   rp   r<   r?   r=   r>   r    r
   r   r   valuesZasarray)rJ   stsZts2Zts3r   r   r   test_series  s    

r   c                 C   s@   t jdd}tt jdd|d}t|tj| d d S )Nr;   r   r   r   )r=   rm   rn   ro   r   rp   r<   r?   )rJ   r   r   r   r   r   test_float_index  s   r   c                 C   s|   t d}g d}t jddd}t|||d}tt	j
j t|tj| d W d    d S 1 s7w   Y  d S )Nr   ))g        r   )       @      @)g      @g      @r;   r,   )rt   r   )r   r1   r   )r=   r>   rm   rn   ro   rA   r   r<   Zassert_produces_warningpderrorsZPerformanceWarningrp   rC   )rJ   colidxrK   ZDFr   r   r   test_tuple_index   s   
"r   c                 C   s  t jdd}dd }t|ddg}t||| d t|tj dg}t||| d t|ddg}t||| d t|tj dg}t||| d t|ddg}t||| d t|tj dg}t||| d t|ddg}t||| d t|tj dg}t||| d t|dd	g}t||| d t|d
dg}t||| d t|d
dg}t||| d t	ddgdd}t||d}t||| d |j
d|_
t||| d d S )Nr;   c                 S   s   t j| |ddS )NT)r   )r<   r?   )lhsrhsr   r   r   <lambda>/  s    z"test_index_types.<locals>.<lambda>r   yr   rH   gGz?re   rs   g{Gz?r3   z
2012-01-01z
2012-01-02M8[ns]r   r   r   )r=   rm   rn   ro   r   rp   datetimetodaydater   r   Zas_unit)rJ   r   funcZserZdtir   r   r   test_index_types+  s:   r   c                 C   sh   t dd}ttjdt||d}zt|tj	| d W d S  t
y3   t r2|tjd  w )Nz1/1/1940z1/1/1960r;   r   r   z'known failure on some windows platforms)r	   r   r=   rm   rn   ro   lenrp   r<   r?   OverflowErrorr   Zapplymarkerr^   markZxfail)rJ   requestZdrr   r   r   r   test_timeseries_preepochZ  s   

r   compressionFT)Zmarksc                 C   sF  t dtdd ttdtdd tdD d}tj|jd	< tj|jd
< t	|t
j|| d t|t
j|| d t tjddttdtddddd}t|t
j|| d t|$}tjdt||d< ||d< |d }|j s{J W d    n1 sw   Y  |d d }tg |_t|d d t
j|d d S )Nr)   r*   r+   r.   c                 S   r!   r/   r   r#   r   r   r   r&   n  r'   ztest_frame.<locals>.<listcomp>r,   r0   )r   r   )r3   rt   r   r   r;   )r   r-   z
2000-01-01r   r6   )r   freqr\   rE   r   r   )r   r=   r>   rA   r   rB   r@   nanrR   _check_roundtrip_tabler<   rC   rp   rm   rn   ro   r
   r   r   Z_mgrZis_consolidatedr   )r   rJ   rE   ZtdfrL   reconsr   r   r   r   
test_frameg  s<   






r   c                 C   s   t td}t dtd}t }tg dd}tg dd}t|tj| d t|tj| d t|tj| d t|tj| d t|tj| d d S )	Nr   Zmyseries)r   r   rH   re   rx   r   )derX   rv   r   )r   r   r   rp   r<   r?   rC   )rJ   s0s1Zdf0r   r   r   r   r   test_empty_series_frame  s   
r   r   zm8[ns]r   c                 C   s   t | d}t|tj|d d S )Nr   r   )r   rp   r<   r?   )r   rJ   r   r   r   r   test_empty_series  s   
r   c                 C   sJ   dd t ddD }ttjdt|df|d}t|tj	| d d S )	Nc                 S   s   g | ]}|  qS r   )r   )r$   xr   r   r   r&     r   z,test_can_serialize_dates.<locals>.<listcomp>z1/1/2000z	1/30/2000r;   r-   r   r   )
r	   r   r=   rm   rn   ro   r   rp   r<   rC   )rJ   rngr2   r   r   r   test_can_serialize_dates  s
   r   c                 C   s   |}|r(d}t jt|d t|tj| d W d    d S 1 s!w   Y  d S t|tj| d t|jtj| d t|d tj| d t| }||d< |d }t|| W d    d S 1 saw   Y  d S )Nz=Saving a MultiIndex with an extension dtype is not supported.rZ   r   r5   r2   )	r^   r_   NotImplementedErrorrp   r<   rC   Tr?   r   )rJ   r   Z multiindex_dataframe_random_datar2   rc   rL   r   r   r   r   test_store_hierarchical  s"   

"r   c                 C   s   dd }| }| }t |tj|d t |tj|d t| }||d< t|d | ||d< t|d | W d    n1 sAw   Y  t |d tj|| d t |d tj|| d t |d tj|| d d S )	Nc                  S   s   t dtdd ttdtdd tdD d} d	| d
< d| d< | d dk| d< | d dk| d< d| d< d| d< |  S )Nr)   r*   r+   r.   c                 S   r!   r/   r   r#   r   r   r   r&     r'   z7test_store_mixed.<locals>._make_one.<locals>.<listcomp>r,   r0   r\   obj1barobj2r5   r   bool1r6   Zbool2rs   int1r;   Zint2)r   r=   r>   rA   r   rB   r@   Z_consolidate)rE   r   r   r   	_make_one  s   
z#test_store_mixed.<locals>._make_oner   r   r   r   r   r   )rp   r<   rC   r   r?   )r   rJ   r   r   r   rL   r   r   r   test_store_mixed  s:   

r   c                 K   sj   i }|rd|d< t |dfi |}| |d< |d }||| fi | W d    d S 1 s.w   Y  d S )Nblosccomplibwr   )r   )r   
comparatorr   r   r   optionsrL   	retrievedr   r   r   rp     s   "rp   c                 C   sj   i }|rd|d< t |dfi |}|jd| dd |d }|||  W d    d S 1 s.w   Y  d S )Nr   r   r   r   r7   )rP   )r   put)r   r   r   r   r   rL   r   r   r   r   r     s   "r   c                 C   s8   ddg}t tjdt||}t|tj| d d S )Nu   σu   σσr;   r   )	r   r=   rm   rn   ro   r   rp   r<   r?   )rJ   Zunicode_valuesr   r   r   r   test_unicode_index  s   r   c                 C   s   d}t d|gi}t| }|jd|ddd |d}t|| W d    n1 s,w   Y  t d|gddgd	}t| }|jd|ddd |d}t|| W d    d S 1 s`w   Y  d S )
Nu   Δr5   rE   r7   zutf-8)rP   encodingrH   re   r4   )r   r   r   rf   r<   rC   )rJ   charrE   rL   rF   r   r   r   test_unicode_longer_encoded  s   



"r   c                 C   sb   t g dg dg dd}ttjdtjdtdddd}|jd d	 |d
< t|tj	| d d S )Nrr   )r   r   r   r   r   r   r   r   r   rt   r   r   )
r   r   r=   r>   r    r
   r   rp   r<   rC   )rJ   rE   r   r   r   r   test_store_datetime_mixed*  s   r   c                 C   sd   t ddgddgd}| | }|j|ddd t|d}t|| ||s)J ||s0J d S )	Nrs   r;   r   r   )r6   r5   rE   r7   r   rP   )r   r   r   r<   rC   equals)rT   rJ   rE   r   otherr   r   r   test_round_trip_equals3  s   
r   c                 C   s   t d | | }tdd2 tdtdttdddd	g}| }|j	|d
dd t
|d
}t|| W d    d S 1 sDw   Y  d S )NZpyarrowzfuture.infer_stringTrs   r.   r   r0   r5   r6   rE   r7   r   )r^   Zimportorskipr   Zoption_contextr   rB   r@   Z	set_indexcopyr   r   r<   rC   )rT   rJ   r   rE   r   rF   r   r   r   test_infer_string_columns?  s   

"r   )F)?r   r   numpyr=   r^   Zpandas._libs.tslibsr   Zpandas.compatr   Zpandasr   r   r   r   r   r   r<   r	   r
   r   Zpandas.tests.io.pytables.commonr   r   Zpandas.utilr   tdr   Z
single_cpuZ
pytestmarkrG   rM   rU   rV   rY   rd   rj   rq   r   filterwarningsr   r   r   r   r   ZparametrizeparamZskip_if_windowsr   r   r{   r    r   r   r   r   r   rp   r   r   r   r   r   r   r   r   r   r   <module>   s^    (

*!
?


.
)
	

0

	