o
    d7-                     @   sb  d dl m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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 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.d(d) Z/e0d*d+d, Z1ej2d-d.d/gd0d1 Z3d2d3 Z4dS )4    )closing)PathN)	Timestamp)is_platform_windows)	DataFrameHDFStoreIndexSeries_testingread_hdf)_maybe_removeensure_clean_store)_test_decorators)TableIteratorc                 C   sr   | | }t tdtdd}||d tjtdd t|d W d    n1 s,w   Y  ||d d S )N   abk1 'No object named k2 in the file'matchk2)r   rangeto_hdfpytestraisesKeyErrorr   )tmp_path
setup_pathpathdf r"   g/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/io/pytables/test_read.py!test_read_missing_key_close_store   s   r$   c              	   C   s   | | }t tdtdd}||d t|d*}tjtdd t|d W d    n1 s2w   Y  t|d W d    d S 1 sGw   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)r2   r4   
   )ABdf4Tr7   )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-   r1   r8   expectedr"   r"   r#   test_read_column<   sl   


$rN   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   rB   r   )datapathr&   d2r"   r"   r#   test_pytables_native_read   s   "rU   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 )NrO   rP   
legacy_hdfzpytables_native2.h5r%   rQ   detector)r   strrB   r   )rS   r&   d1r"   r"   r#   test_pytables_native2_read   s   "r[   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 )NrO   rP   rW   zlegacy_table_fixed_py2.h5r%   rQ   r!   )   r      D)r6   r7   Cr^   ABC
INDEX_NAME)namecolumnsr(   )r   selectr   r   r9   assert_frame_equalrS   r&   rL   rM   r"   r"   r#   'test_legacy_table_fixed_format_read_py2   s   
"rh   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 )NrO   rP   rW   z"legacy_table_fixed_datetime_py2.h5r%   rQ   r!   z2020-02-06T18:00r6   daterc   )r   re   r   r   r   r9   rf   rg   r"   r"   r#   0test_legacy_table_fixed_format_read_datetime_py2   s   

"rj   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 )NrO   rP   rW   zlegacy_table_py2.h5r%   rQ   tabler   r   r   r]   r   )r   re   r   r9   rf   rg   r"   r"   r#   test_legacy_table_read_py2   s   rl   c                 C   s   t tjddtdtdd}d|j_|jddd	}| | }|j|d
dd t	|d
}t
|dd}t	|d
}t|| |jsCJ W d    d S 1 sNw   Y  d S )Nr/      abcdABCDEr(   rd   lettersETkeysr<   r!   wrQ   r%   )r   rE   rH   randlistr(   rb   	set_indexr   r   r   r9   rf   is_open)r   r   r!   r    directr&   indirectr"   r"   r#   test_read_hdf_open_store   s    

"r|   c                 C   sf   t tjddg dtdd}| | }|j|dddd	 t|d}|jjj	d u s+J t
|| d S )
Nr/   rm   )r   r\   r   r]   ro   rp   r!   ru   rk   rR   format)r   rE   rH   rv   rw   r   r   r(   _databaser9   rf   )r   r   r!   r    r-   r"   r"   r#   test_read_hdf_index_not_view   s    
r   c                 C   s   t tjddtdtdd}d|j_|jddd	}| | }|j|d
ddd t	|d
}t	|d
dd}t
|j t|tsAJ t| }t|| W d    d S 1 sXw   Y  d S )Nr/   rm   rn   ro   rp   rq   rr   Trs   r!   ru   tr}   )iterator)r   rE   rH   rv   rw   r(   rb   rx   r   r   r   r&   rB   r   next__iter__r9   rf   )r   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}| | }|j|ddd t|}t|| |j|d	dd d
}t	j
t|d t| W d    d S 1 sGw   Y  d S )Nr/   rm   rn   ro   rp   r!   r   rQ   r-   ?key must be provided when HDF5 file contains multiple datasets.r   )r   rE   rH   rv   rw   r   r   r9   rf   r   r   rC   r   r   r!   r    rereadrK   r"   r"   r#   test_read_nokey   s    
"r   c                 C   s   t tdttdddd}| | }|j|dddd	 t|}t|| |j|d
ddd	 d}tj	t
|d t| W d    d S 1 sHw   Y  d S )Nrm   abacdcategory)dtype)icr!   r   rk   r}   r-   r   r   )r   r   r	   rw   r   r   r9   rf   r   r   rC   r   r"   r"   r#   test_read_nokey_table  s   
"r   c                 C   s^   | | }t |}|  td}tjt|d t| 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   closer=   r>   r   r   rC   r   )r   r   r    r&   rK   r"   r"   r#   test_read_nokey_empty  s   
"r   c                 C   sZ   t tjddtdtdd}| | }t|}|j|ddd t|d}t	|| d S )	Nr/   rm   rn   ro   rp   r!   r   rQ   )
r   rE   rH   rv   rw   r   r   r   r9   rf   )r   r   rM   filenamepath_objactualr"   r"   r#   test_read_from_pathlib_path   s   
r   zpy.pathc                 C   sf   ddl m} ttjddtdtdd}| | }||}|j|dd	d
 t|d}t	
|| d S )Nr   )localr/   rm   rn   ro   rp   r!   r   rQ   )py.pathr   r   rE   rH   rv   rw   r   r   r9   rf   )r   r   	LocalPathrM   r   r   r   r"   r"   r#   test_read_from_py_localpath.  s   
r   r~   fixedrk   c                 C   s>   t  }| | }|j|d|d t|ddd}t || d S )NrP   )keyr~   r%   )r   rR   )r9   makeFloatSeriesr   r   rJ   )r   r~   r   seriesr    rL   r"   r"   r#   test_read_hdf_series_mode_r?  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-05r7   )freq)r(   rO   rP   rW   z*periodindex_0.20.1_x86_64_darwin_2.7.13.h5r%   rQ   p)r   pdPeriodIndexr   r9   rf   )rS   rM   r&   rL   r"   r"   r#   test_read_py2_hdf_file_in_py3K  s   "r   )5
contextlibr   pathlibr   r=   numpyrE   r   pandas._libs.tslibsr   pandas.compatr   pandasr   r   r   r   r	   r
   r9   r   pandas.tests.io.pytables.commonr   r   pandas.utilr   tdpandas.io.pytablesr   mark
single_cpu
pytestmarkr$   r'   rN   rU   skipifr[   rh   rj   rl   r|   r   r   r   r   r   r   
skip_if_nor   parametrizer   r   r"   r"   r"   r#   <module>   sD     N
	

