o
    ChI                     @   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 z/var/www/html/myvaluetrips/my_value_trip_new/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indexseriesfloat64c                 S      g | ]}d | qS i_r   .0ir   r   r   
<listcomp>*       z(test_conv_read_write.<locals>.<listcomp>r   r   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   )tm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&   
 
"rK   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 )N2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar   ar   rI   )data_columns)r   r   r<   selectr?   rG   )
setup_pathdatarI   storerJ   r   r   r   test_long_strings;   s   


"rS   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   rI   Tr:   r   r<   formatFr   rD   ilocr   r?   rG   r   tmp_pathrP   r   rI   r   r   r   test_apiG   s   r[   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 )	NrT   r   rI   Tr;   r:   rU   FrW   rY   r   r   r   test_api_appendW   s   r\   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 )NrT   rI   FfixedrU   fr;   )r   r   Tr:   )r<   rV   )r   rD   r   r?   rG   r   r   r   r<   rX   rO   )rZ   rP   r   rI   rR   r   r   r   
test_api_2e   s:   




$r_   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.   r1   c                 S   r"   r2   r   r%   r   r   r   r(      r)   z$test_api_invalid.<locals>.<listcomp>r/   r3   zCan only append to TablesmatchrI   Tr^   rU   r]   z)invalid HDFStore format specified \[foo\]fooF zFile z does not exist)r   rA   rB   rE   r   rF   rD   pytestraises
ValueErrorr   	TypeErrorFileNotFoundErrorr   )rZ   rP   r   rI   msgr   r   r   test_api_invalid   s2   
"rj   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   rM   z/az'No object named b in the file'r`   b)r   r   rA   rB   r!   r
   getr?   rC   rd   re   KeyError)rP   rR   leftrightr   r   r   test_get   s    



"rp   c                 C   s(   t tjdd}t|tj|  d S )Nr>   )2   d   )r   rA   randomdefault_rngstandard_normal_check_roundtripr?   rG   )rP   rI   r   r   r   test_put_integer   s   rw   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 ),NrM      r>      f8r   df_f8i8df_i8zdCannot serialize the column [a] because its data contents are not [float] but [integer] object dtyper`   ry   r>   rz   f4r8   r4   df_f4r   float32c                 S   s(   i | ]}|t tjd d|dqS )r>   r6   r   )r   rA   rs   rt   integers)r&   cr   r   r   
<dictcomp>   s    z6test_table_values_dtypes_roundtrip.<locals>.<dictcomp>)r   r!   int32int64int16int8rb   string      ?float322bool20130101time120130102time2df_mixed_dtypes1c                 S   s   g | ]}t |qS r   )strr%   r   r   r   r(          z6test_table_values_dtypes_roundtrip.<locals>.<listcomp>r   objectr!   r   r   r   r   zdatetime64[ns]count)name)r   r   r<   r?   rC   dtypesreescaperd   re   rf   rA   arrayrX   astyper   rO   value_countsr   r   
sort_index)	rP   using_infer_stringrR   df1df2ri   rJ   	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   rD   rv   r?   rC   rA   rB   r!   r
   r   r   valuesasarray)rP   ststs2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   )rA   rs   rt   ru   r   rv   r?   rC   )rP   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/   )rz   r   )r   r4   r   )rA   rB   rs   rt   ru   rE   r   r?   assert_produces_warningpderrorsPerformanceWarningrv   rG   )rP   colidxrQ   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?   rC   )lhsrhsr   r   r   <lambda>/  s    z"test_index_types.<locals>.<lambda>r   yr   rM   gGz?rk   ry   g{Gz?r6   z
2012-01-01z
2012-01-02M8[ns]r   r   r   )rA   rs   rt   ru   r   rv   datetimetodaydater   r   as_unit)rP   r   funcser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   rA   rs   rt   ru   lenrv   r?   rC   OverflowErrorr   applymarkerrd   markxfail)rP   requestdrr   r   r   r   test_timeseries_preepochZ  s   

r   compressionFT)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.   r1   c                 S   r"   r2   r   r%   r   r   r   r(   n  r)   ztest_frame.<locals>.<listcomp>r/   r3   )r   r   )r6   rz   r   r   r>   )r   r0   z
2000-01-01r   r9   )r   freqrb   rI   r   r   )r   rA   rB   rE   r   rF   rD   nanrX   _check_roundtrip_tabler?   rG   rv   rs   rt   ru   r
   r   r   _mgris_consolidatedr   )r   rP   rI   tdfrR   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   myseries)r   r   rM   rk   r   r   )der^   r   r   )r   r   r   rv   r?   rC   rG   )rP   s0s1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   rv   r?   rC   )r   rP   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>   r0   r   r   )
r	   r   rA   rs   rt   ru   r   rv   r?   rG   )rP   rngr5   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.r`   r   r8   r5   )	rd   re   NotImplementedErrorrv   r?   rG   TrC   r   )rP   r    multiindex_dataframe_random_datar5   ri   rR   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.   r1   c                 S   r"   r2   r   r%   r   r   r   r(     r)   z7test_store_mixed.<locals>._make_one.<locals>.<listcomp>r/   r3   rb   obj1barobj2r8   r   bool1r9   bool2ry   int1r>   int2)r   rA   rB   rE   r   rF   rD   _consolidate)rI   r   r   r   	_make_one  s   
z#test_store_mixed.<locals>._make_oner   r   r   r   r   r   )rv   r?   rG   r   rC   )r   rP   r   r   r   rR   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   optionsrR   	retrievedr   r   r   rv     s   "rv   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   r:   )rV   )r   put)r   r   r   r   r   rR   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   rA   rs   rt   ru   r   rv   r?   rC   )rP   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   Δr8   rI   r:   zutf-8)rV   encodingrM   rk   r7   )r   r   r   rl   r?   rG   )rP   charrI   rR   rJ   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 )Nrx   )r   r   r   r   r   r   r   r   r   rz   r   r   )
r   r   rA   rB   r!   r
   r   rv   r?   rG   )rP   rI   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 )	Nry   r>   r   r   )r9   r8   rI   r:   r   rV   )r   r   r   r?   rG   equals)rZ   rP   rI   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 )Npyarrowzfuture.infer_stringTry   r1   r   r3   r8   r9   rI   r:   r   )rd   importorskipr   option_contextr   rF   rD   	set_indexcopyr   r   r?   rG   )rZ   rP   r   rI   r   rJ   r   r   r   test_infer_string_columns?  s   

"r  )F)?r   r   numpyrA   rd   pandas._libs.tslibsr   pandas.compatr   pandasr   r   r   r   r   r   r?   r	   r
   r   pandas.tests.io.pytables.commonr   r   pandas.utilr   tdr   
single_cpu
pytestmarkrK   rS   r[   r\   r_   rj   rp   rw   r   filterwarningsr   r   r   r   r   parametrizeparamskip_if_windowsr   r   r   r!   r   r   r   r   r   rv   r   r   r   r   r  r  r   r   r   r   <module>   s^    (

*!
?


.
)
	

0

	