o
    5cB                     @   s  d dl Z d dlZd dlmZm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 d dlmZmZmZ d dlmZ dZejj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+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+d, Z4d-d. Z5d/d0 Z6ej,d d!ej-d"ej.d#gd1d2 Z7d?d3d4Z8d?d5d6Z9d7d8 Z:d9d: Z;d;d< Z<d=d> Z=dS )@    N)catch_warningssimplefilter)	Timestamp)is_platform_windows)	DataFrameIndexSeries_testingbdate_rangeread_hdf)_maybe_removeensure_clean_pathensure_clean_store)_test_decoratorsbloscc                     s   t  \  fdd} t  }t || d| t  }t || d| t  }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 scw   Y  d S )Nc                    s   |j  | fi | t | S )N)to_hdfr   )keyobjkwargspath ^/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/io/pytables/test_round_trip.py	roundtrip'   s   
z'test_conv_read_write.<locals>.roundtripseriesstring_seriesframe   ABtableTappendzindex>2)where   )tmensure_cleanmakeTimeSeriesassert_series_equalmakeStringSeriesmakeDataFrameassert_frame_equalr   ranger   r   index)r   odfresultr   r   r   test_conv_read_write$   s   
"r2   c                 C   sz   t dtjddditjdddd}t| }|jd|dgd |d}t|| W d    d S 1 s6w   Y  d S )Nad   
   )sizer.   r0   )data_columns)r   r&   rands_arrayr   r#   selectr,   )
setup_pathr0   storer1   r   r   r   test_long_strings;   s   

"r=   c              	   C   sR  t | V}t }|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| W d    n1 s]w   Y  t | T}t }|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| W d    n1 sw   Y  t | P}t }|j|dddd tt|d| |j|ddd	d tt|d| |j|ddd tt|d| ||d tt|d| W d    n	1 sw   Y  t| }t }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    n	1 sw   Y  t | }t }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 sKw   Y  tjt|d |j|dddd W d    n	1 slw   Y  W d    n	1 s|w   Y  d}d| d}tjt|d t|d W d    d S 1 sw   Y  d S )Nr5   r0   Tr!   )r#   formatFr"   fixedfzCan only append to Tablesmatchz)invalid HDFStore format specified \[foo\]foo zFile z does not exist)r   r&   r+   ilocr   r,   r   r   r   r#   r:   pytestraises
ValueError	TypeErrorFileNotFoundError)r;   r   r0   r<   msgr   r   r   test_apiI   s   








$rL   c              	   C   s   t | Q}t |d< |d}|d }t|| |d}|d }t|| tjtdd |d W d    n1 s@w   Y  W d    d S W d    d S 1 sXw   Y  d S )Nr3   z/az'No object named b in the file'rA   b)r   r&   r(   getr)   rF   rG   KeyError)r;   r<   leftrightr   r   r   test_get   s   



"rR   c                 C   s$   t tjdd}t|tj|  d S )N2   r4   )r   nprandomrandn_check_roundtripr&   r,   )r;   r0   r   r   r   test_put_integer   s   rX   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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 |_tdd
d
d
d
d
d
d
dd"	}| }| }t|| W d    d S 1 sw   Y  d S )#Nr3      r%      f8dtypedf_f8i8df_i8zinvalid combination of [values_axes] on appending data [name->values_block_0,cname->values_block_0,dtype->float64,kind->float,shape->(1, 3)] vs current table [name->values_block_0,cname->values_block_0,dtype->int64,kind->integer,shape->None]rA   rZ   r%   r[   f4r   columnsdf_f4r   float32c                 S   s"   i | ]}|t tjd |dqS )r   r]   )r   rT   rU   randint).0cr   r   r   
<dictcomp>   s    z6test_table_values_dtypes_roundtrip.<locals>.<dictcomp>)rf   float64int32int64int16int8rC   string      ?float322bool20130101time120130102time2df_mixed_dtypes1c                 S   s   g | ]}t |qS r   )str)rh   ir   r   r   
<listcomp>       z6test_table_values_dtypes_roundtrip.<locals>.<listcomp>)	rf   rk   rl   rs   rn   ro   rm   objectzdatetime64[ns])r   r   r#   r&   r)   dtypesreescaperF   rG   rH   rT   arrayastyper   r:   value_countsr.   r   
sort_index)r;   r<   df1df2rK   r1   expectedr   r   r   "test_table_values_dtypes_roundtrip   s^   
$"r   c                 C   s   t  }t|t j| d t  }t|t j| d t|jt|jtd}t|t j| d t|j	tt
j|jtdtd}t|t j| dd d S )Nr   r]   F)r   check_index_type)r&   r*   rW   r)   r(   r   r.   r   r}   valuesrT   asarray)r;   ststs2ts3r   r   r   test_series  s    

r   c                 C   s4   t jd}tt jd|d}t|tj| d d S )Nr5   r7   r   )rT   rU   rV   r   rW   r&   r)   )r;   r.   r   r   r   r   test_float_index  s   r   c                 C   s   t d}g d}t jdd}t|||d}tdd tdtj	j
 t|tj| d	 W d    d S 1 s9w   Y  d S )
Nr5   ))g        rq   )       @      @)g      @g      @   )r[   r5   )r.   rd   Trecordignorer   )rT   arangerU   rV   reshaper   r   r   pderrorsPerformanceWarningrW   r&   r,   )r;   colidxdataDFr   r   r   test_tuple_index  s   
"r   z(ignore::pandas.errors.PerformanceWarningc              	   C   s  t dd tjd}dd }W d    n1 sw   Y  t dd t|ddg}t||| d W d    n1 s=w   Y  t dd t|tj dg}t||| d W d    n1 scw   Y  t dd t|ddg}t||| d W d    n1 sw   Y  t dd t|tj d	g}t||| d W d    n1 sw   Y  t 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|ddg}t||| d t|ddg}t||| d t|tdddtdddg}t||| d W d    d S 1 sCw   Y  d S )NTr   r%   c                 S   s   t j| |ddS )NT)r   )r&   r)   )lrr   r   r   <lambda>,  s    z"test_index_types.<locals>.<lambda>r   yr   r3   gGz?rM   rZ   g{Gz?r   i  )	r   rT   rU   rV   r   rW   datetimetodaydate)r;   r   funcserr   r   r   test_index_types'  sP   
$r   c                 C   s`   t dd}ttjt||d}zt|tj| d W d S  t	y/   t
 r.td Y d S  w )Nz1/1/1940z1/1/1960r7   r   z'known failure on some windows platforms)r
   r   rT   rU   rV   lenrW   r&   r)   OverflowErrorr   rF   xfail)r;   drr   r   r   r   test_timeseries_preepochZ  s   
r   compressionFT)marksc                 C   s   t  }tj|jd< tj|jd< t|t j|| d t|t j|| d t  }t|t j|| d t	|!}tj
t||d< ||d< |d }|j sMJ W d    n1 sWw   Y  t|d d t j|d d S )N)r   r   )r   r[   r   r   rC   r0   r   r   )r&   r+   rT   nanr   _check_roundtrip_tabler,   rW   makeTimeDataFramer   rU   rV   r   _mgris_consolidated)r   r;   r0   tdfr<   reconsr   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)namer^   r3   rM   ri   r7   )der@   rc   r   )r   r}   r   rW   r&   r)   r,   )r;   s0s1df0r   r   r   r   r   test_empty_series_frame  s   
r   r^   zm8[ns]zM8[ns]c                 C   s   t | d}t|tj|d d S )Nr]   r   )r   rW   r&   r)   )r^   r;   r   r   r   r   test_empty_series  s   
r   c                 C   sB   dd t ddD }ttjt|d|d}t|tj| d d S )Nc                 S   s   g | ]}|  qS r   )r   )rh   xr   r   r   r{     r|   z,test_can_serialize_dates.<locals>.<listcomp>z1/1/2000z	1/30/2000   r7   r   )	r
   r   rT   rU   rV   r   rW   r&   r,   )r;   rngr   r   r   r   test_can_serialize_dates  s   r   c                 C   s   |}t |tj| d t |jtj| d t |d tj| d t| }||d< |d }t|| W d    d S 1 s;w   Y  d S )Nr   r   r   )rW   r&   r,   Tr)   r   )r;    multiindex_dataframe_random_datar   r<   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   sP   t  } d| d< d| d< | d dk| d< | d dk| d	< d
| d< d| d< |  S )NrC   obj1barobj2r   r   bool1r    bool2rZ   int1r%   int2)r&   r+   _consolidate)r0   r   r   r   	_make_one  s   z#test_store_mixed.<locals>._make_oner   r   r   r   r   r   )rW   r&   r,   r   r)   )r   r;   r   r   r   r<   r   r   r   test_store_mixed  s:   


r   c                 K   sj   i }|rt |d< t|dfi |}| |d< |d }||| fi | W d    d S 1 s.w   Y  d S )Ncomplibwr   )_default_compressorr   )r   
comparatorr   r   r   optionsr<   	retrievedr   r   r   rW     s   "rW   c                 C   sj   i }|rt |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>   )r   r   put)r   r   r   r   r   r<   r   r   r   r   r     s   "r   c                 C   sl   ddg}t dd# tdtjj ttjt	||}t
|tj| d W d    d S 1 s/w   Y  d S )Nu   σu   σσTr   r   r   )r   r   r   r   r   r   rT   rU   rV   r   rW   r&   r)   )r;   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   Δr   r0   r!   zutf-8)r>   encodingr3   rM   r   )r   r   r   rN   r&   r,   )r;   charr0   r<   r1   r   r   r   test_unicode_longer_encoded  s   



"r   c                 C   sJ   t g dg dg dd}t }|jd d |d< t|tj| d d S )NrY   )rq   r   r   r   r[   r   r   )r   r&   r(   r.   rW   r,   )r;   r0   r   r   r   r   test_store_datetime_mixed  s   r   c                 C   s   t ddgddgd}t| *}|j|ddd t|d}t|| ||s*J ||s1J W d    d S 1 s<w   Y  d S )	NrZ   r%   r   r   )r    r   r0   r!   r   )r   r   r   r   r&   r,   equals)r;   r0   r   otherr   r   r   test_round_trip_equals  s   

"r   )F)>r   r   warningsr   r   numpyrT   rF   pandas._libs.tslibsr   pandas.compatr   pandasr   r   r   r   r	   r&   r
   r   pandas.tests.io.pytables.commonr   r   r   pandas.utilr   tdr   mark
single_cpu
pytestmarkr2   r=   rL   rR   rX   r   r   r   r   filterwarningsr   r   parametrizeparamskip_if_windowsr   r   rm   rk   r}   r   r   r   r   rW   r   r   r   r   r   r   r   r   r   <module>   sX     aA

2



,
