o
    5cl,                     @   sR  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	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 dlmZ ejjZd	d
 Zdd Z dd Z!dd Z"ejj#e	 d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-e.d'd(d) Z/ej0d*d+d,gd-d. Z1d/d0 Z2dS )1    )PathN)	Timestamp)is_platform_windows)	DataFrameHDFStoreIndexSeries_testingread_hdf)_maybe_removeensure_clean_pathensure_clean_store)_test_decorators)TableIteratorc              	   C   s   t | <}ttdtdd}||d tjtdd t|d W d    n1 s-w   Y  ||d W d    d S 1 sCw   Y  d S )N   abk1 'No object named k2 in the file'matchk2)r   r   rangeto_hdfpytestraisesKeyErrorr
   )
setup_pathpathdf r!   X/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/io/pytables/test_read.py!test_read_missing_key_close_store   s   
"r#   c              
   C   s   t | X}ttdtdd}||d t|d)}tjtdd t|d W d    n1 s3w   Y  t|d W d    n1 sGw   Y  W d    d S W d    d S 1 s_w   Y  d S )Nr   r   r   rr   r   r   )	r   r   r   r   r   r   r   r   r
   )r   r   r    storer!   r!   r"   "test_read_missing_key_opened_store-   s   
"r&   c           	   	   C   sx  t  }t| }t|d tjtdd |dd W d    n1 s'w   Y  |d| tjtt	
dd |dd W d    n1 sMw   Y  t	
d}tjt|d |jdddgd	 W d    n1 srw   Y  |dd}t |jt|jj t|tsJ t	
d
}tjt|d |dd W d    n1 sw   Y  | }d|d< |jd|dgd |dd}t |j|d j | }d|d< tj|j|jdd df< |jd|dgd |dd}t |j|d j |jdddd}t |j|d jdd   |jdddd}t |j|d jdd   |jdddd}t |j|d jd d  |jdddd}t |j|d jd d  |jddddd}t |j|d jdd  |jddddd}t |j|d jdd  ttjddd}|jd|dd |d }|dd}t || W d    d S 1 sw   Y  d S )Nr    zNo object named df in the filer   indexz%'column [foo] not found in the table'fooz:select_column() got an unexpected keyword argument 'where'zindex>5)wherezScolumn [values_block_0] can not be extracted individually; it is not data indexablevalues_block_0stringdf2)data_columns      df3r   )start)stop)r1   r3   
   )ABdf4Tr6   )tmmakeTimeDataFramer   r   r   r   r   select_columnappendreescape	TypeErrorassert_almost_equalvaluesr   r'   
isinstance
ValueErrorcopynpnanlocr   randomrandnassert_series_equal)	r   r    r%   msgresultr,   r0   r7   expectedr!   r!   r"   test_read_column=   sl   


$rM   c                 C   sP   t | ddddd}|d }t|tsJ W d    d S 1 s!w   Y  d S )Niodatazlegacy_hdf/pytables_native.h5r$   modezdetector/readout)r   rA   r   )datapathr%   d2r!   r!   r"   test_pytables_native_read   s   "rT   z#native2 read fails oddly on windows)reasonc                 C   sZ   t | dddddd}t| |d }t|tsJ W d    d S 1 s&w   Y  d S )NrN   rO   
legacy_hdfzpytables_native2.h5r$   rP   detector)r   strrA   r   )rR   r%   d1r!   r!   r"   test_pytables_native2_read   s   "rZ   c                 C   st   t | dddddd%}|d}tg dgg d	td
gddd}t|| W d    d S 1 s3w   Y  d S )NrN   rO   rV   zlegacy_table_fixed_py2.h5r$   rP   r    )   r      D)r5   r6   Cr]   ABC
INDEX_NAME)namecolumnsr'   )r   selectr   r   r8   assert_frame_equalrR   r%   rK   rL   r!   r!   r"   'test_legacy_table_fixed_format_read_py2   s   
"rg   c                 C   sp   t | dddddd#}|d}ttdggd	gtd
gd}t|| W d    d S 1 s1w   Y  d S )NrN   rO   rV   z"legacy_table_fixed_datetime_py2.h5r$   rP   r    z2020-02-06T18:00r5   daterb   )r   rd   r   r   r   r8   re   rf   r!   r!   r"   0test_legacy_table_fixed_format_read_datetime_py2   s   

"ri   c                 C   sf   t | dddddd}|d}W d    n1 sw   Y  tdd	gd
dgd}t|| d S )NrN   rO   rV   zlegacy_table_py2.h5r$   rP   tabler   r   r   r\   r   )r   rd   r   r8   re   rf   r!   r!   r"   test_legacy_table_read_py2   s   rk   c                 C   s   t tjddtdtdd}d|j_|jddd	}t| 0}|j	|d
dd t
|d
}t|dd}t
|d
}t|| |jsCJ |  W d    d S 1 sRw   Y  d S )Nr.      abcdABCDEr'   rc   lettersETkeysr;   r    wrP   r$   )r   rD   rG   randlistr'   ra   	set_indexr   r   r
   r   r8   re   is_openclose)r   r    r   directr%   indirectr!   r!   r"   test_read_hdf_open_store   s    




"r|   c                 C   s   t tjddtdtdd}d|j_|jddd	}t| 6}|j	|d
ddd t
|d
}t
|d
dd}t|ts<J t| }t|| |j  W d    d S 1 sXw   Y  d S )Nr.   rl   rm   rn   ro   rp   rq   Trr   r    rt   trQ   format)iterator)r   rD   rG   ru   rv   r'   ra   rw   r   r   r
   rA   r   next__iter__r8   re   r%   ry   )r   r    r   rz   r   r{   r!   r!   r"   test_read_hdf_iterator   s    

"r   c              	   C   s   t tjddtdtdd}t| H}|j|ddd t|}t	|| |j|d	dd d
}t
jt|d t| W d    n1 sGw   Y  W d    d S W d    d S 1 s_w   Y  d S )Nr.   rl   rm   rn   ro   r    r   rP   r,   ?key must be provided when HDF5 file contains multiple datasets.r   )r   rD   rG   ru   rv   r   r   r
   r8   re   r   r   rB   r   r    r   rereadrJ   r!   r!   r"   test_read_nokey   s    

"r   c              	   C   s   t tdttdddd}t| J}|j|dddd	 t|}t|| |j|d
ddd	 d}t	j
t|d t| W d    n1 sHw   Y  W d    d S W d    d S 1 s`w   Y  d S )Nrl   abacdcategory)dtype)icr    r   rj   r~   r,   r   r   )r   r   r   rv   r   r   r
   r8   re   r   r   rB   r   r!   r!   r"   test_read_nokey_table   s   

"r   c              	   C   s   t | 9}t|}|  td}tjt|d t| W d    n1 s(w   Y  W d    d S W d    d S 1 s@w   Y  d S )Nz]Dataset(s) incompatible with Pandas data types, not table, or no datasets found in HDF5 file.r   )	r   r   ry   r<   r=   r   r   rB   r
   )r   r   r%   rJ   r!   r!   r"   test_read_nokey_empty	  s   

"r   c                 C   sz   t tjddtdtdd}t| }t|}|j|ddd t|d}W d    n1 s0w   Y  t	
|| d S )	Nr.   rl   rm   rn   ro   r    r   rP   )r   rD   rG   ru   rv   r   r   r   r
   r8   re   )r   rL   filenamepath_objactualr!   r!   r"   test_read_from_pathlib_path  s   
r   zpy.pathc                 C   s   ddl m} ttjddtdtdd}t| }||}|j|dd	d
 t	|d}W d    n1 s6w   Y  t
|| d S )Nr   )localr.   rl   rm   rn   ro   r    r   rP   )py.pathr   r   rD   rG   ru   rv   r   r   r
   r8   re   )r   	LocalPathrL   r   r   r   r!   r!   r"   test_read_from_py_localpath$  s   
r   r   fixedrj   c                 C   s^   t  }t|}|j|d| d t|ddd}W d    n1 s"w   Y  t || d S )NrO   )keyr   r$   )r   rQ   )r8   makeFloatSeriesr   r   r
   rI   )r   r   seriesr   rK   r!   r!   r"   test_read_hdf_series_mode_r6  s   
r   c                 C   sn   t g dtjg dddd}t| dddd	d
d}|d }t|| W d    d S 1 s0w   Y  d S )N)g      ?r   r\   )z
2015-01-01z
2015-01-02z
2015-01-05r6   )freq)r'   rN   rO   rV   z*periodindex_0.20.1_x86_64_darwin_2.7.13.h5r$   rP   p)r   pdPeriodIndexr   r8   re   )rR   rL   r%   rK   r!   r!   r"   test_read_py2_hdf_file_in_py3B  s   "r   )3pathlibr   r<   numpyrD   r   pandas._libs.tslibsr   pandas.compatr   pandasr   r   r   r   r   r	   r8   r
   pandas.tests.io.pytables.commonr   r   r   pandas.utilr   tdpandas.io.pytablesr   mark
single_cpu
pytestmarkr#   r&   rM   rT   skipifrZ   rg   ri   rk   r|   r   r   r   r   r   
skip_if_nor   parametrizer   r   r!   r!   r!   r"   <module>   s@     O
	

