o
    %j4                     @   s  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mZ d dlmZmZ d dl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%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) Z0d*d+ Z1e2d,d-d. Z3ej4d/d0d1gd2d3 Z5ej6d4ej6d5d6d7 Z7d8d9 Z8dS ):    )closing)PathN)	Timestamp)is_platform_windows)	DataFrameHDFStoreIndexSeries_testing
date_rangeread_hdf)_maybe_removeensure_clean_store)_test_decorators)TableIteratorc                 C   sv   | | }t tdtdd}|j|dd tjtdd t|d W d    n1 s-w   Y  |j|dd d S )N   abk1key 'No object named k2 in the file'matchk2)r   rangeto_hdfpytestraisesKeyErrorr   tmp_path
setup_pathpathdf r&   c/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/io/pytables/test_read.py!test_read_missing_key_close_store    s   r(   c                 C   sv   | | }t g g dg d}|j|dd tjtdd t|ddd W d    n1 s-w   Y  |j|dd d S )	NABindexr   r   zlist index out of ranger   r   stop)r   r   r   r   
IndexErrorr   r!   r&   r&   r'   !test_read_index_error_close_store.   s   r1   c              	   C   s   | | }t tdtdd}|j|dd t|d*}tjtdd t|d W d    n1 s3w   Y  t|d W d    d S 1 sHw   Y  d S )	Nr   r   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   "r4   c           	   	   C   s  t tjddttdtddddd}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 s`w   Y  td}t
jt|d |jd	ddgd W d    n1 sw   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d}|jd|d d |d }|dd}t|| W d    d S 1 sw   Y  d S )!Nr   )
      ZABCDz
2000-01-01r5   r+   )Zperiodsfreqcolumnsr-   r%   zNo object named df in the filer   r-   z%'column [foo] not found in the table'Z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 indexableZvalues_block_0stringdf2)Zdata_columnsr6      df3)startr.   )r?   r/   r)   df4T)r   nprandomdefault_rngZstandard_normalr   listr   r   r   r   r   r    Zselect_columnappendreescape	TypeErrortmZassert_almost_equalvaluesr	   r-   
isinstance
ValueErrorcopynanlocassert_series_equal)	r#   r%   r3   msgresultr<   r>   rA   expectedr&   r&   r'   test_read_columnK   st   



$rU   c                 C   sN   t | ddddd}|d }W d    n1 sw   Y  t|ts%J d S )Niodatazlegacy_hdf/pytables_native.h5r2   modezdetector/readout)r   rL   r   )datapathr3   Zd2r&   r&   r'   test_pytables_native_read   s   
r[   z#native2 read fails oddly on windows)reasonc                 C   sX   t | dddddd}t| |d }W d    n1 sw   Y  t|ts*J d S )NrV   rW   
legacy_hdfzpytables_native2.h5r2   rX   Zdetector)r   strrL   r   )rZ   r3   Zd1r&   r&   r'   test_pytables_native2_read   s   
r_   c                 C   sr   t | dddddd}|d}W d    n1 sw   Y  tg dgg d	td
gddd}t|| d S )NrV   rW   r]   zlegacy_table_fixed_py2.h5r2   rX   r%   )   r      D)r*   r+   Crb   ABCZ
INDEX_NAME)namer8   )r   selectr   r   rJ   assert_frame_equalrZ   r3   rS   rT   r&   r&   r'   'test_legacy_table_fixed_format_read_py2   s   ri   c                 C   sp   t tdggdgtdgdd}t| dddd	d
d}|d}W d    n1 s+w   Y  t|| d S )Nz2020-02-06T18:00r*   datezM8[ns])r9   r-   dtyperV   rW   r]   z"legacy_table_fixed_datetime_py2.h5r2   rX   r%   )r   r   r   r   rf   rJ   rg   rZ   rT   r3   rS   r&   r&   r'   0test_legacy_table_fixed_format_read_datetime_py2   s   
rm   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 )NrV   rW   r]   zlegacy_table_py2.h5r2   rX   tabler   r   r   ra   r   )r   rf   r   rJ   rg   rh   r&   r&   r'   test_legacy_table_read_py2   s   ro   c           	      C   s   t tjddtdtdd}d|j_|jddd	}| | }|rGd
}tj	t
|d |j|ddd W d    d S 1 s@w   Y  d S |j|ddd t|d}t|dd}t|d}t|| |jskJ W d    d S 1 svw   Y  d S )Nr   r6      abcdABCDEr-   r9   lettersETkeysrF   z=Saving a MultiIndex with an extension dtype is not supported.r   r%   wr   rY   r2   rX   )r   rB   rC   rD   rE   r-   re   	set_indexr   r   NotImplementedErrorr   r   r   rJ   rg   Zis_open)	r"   r#   Zusing_infer_stringr%   r$   rR   directr3   indirectr&   r&   r'   test_read_hdf_open_store   s.   


"r   c                 C   sj   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   rp   )r   r`   r   ra   rs   rt   r%   ry   rn   r   rY   format)r   rB   rC   rD   rE   r   r   r-   _databaserJ   rg   )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sCJ t| }W d    n1 sSw   Y  t|| d S )Nr   rp   rr   rs   rt   ru   rv   Trw   r%   ry   tr   )iterator)r   rB   rC   rD   rE   r-   re   r{   r   r   r   r3   rL   r   next__iter__rJ   rg   )r"   r#   r%   r$   r}   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 sIw   Y  d S )Nr   rp   rr   rs   rt   r%   r   rz   r<   ?key must be provided when HDF5 file contains multiple datasets.r   )r   rB   rC   rD   rE   r   r   rJ   rg   r   r   rM   r"   r#   r%   r$   ZrereadrR   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 )Nrq   Zabacdcategoryrk   )icr%   r   rn   r   r<   r   r   )r   r   r	   rE   r   r   rJ   rg   r   r   rM   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   closerG   rH   r   r   rM   r   )r"   r#   r$   r3   rR   r&   r&   r'   test_read_nokey_empty>  s   
"r   c                 C   s`   t tjddtdtdd}| | }t|}|j|ddd t|dd	}t	|| d S )
Nr   rp   rr   rs   rt   r%   r   rz   r   )
r   rB   rC   rD   rE   r   r   r   rJ   rg   )r"   r#   rT   filenamepath_objactualr&   r&   r'   test_read_from_pathlib_pathJ  s   r   zpy.pathc                 C   sl   ddl m} ttjddtdtdd}| | }||}|j|dd	d
 t|dd}t	
|| d S )Nr   )localr   rp   rr   rs   rt   r%   r   rz   r   )Zpy.pathr   r   rB   rC   rD   rE   r   r   rJ   rg   )r"   r#   Z	LocalPathrT   r   r   r   r&   r&   r'   test_read_from_py_localpathZ  s   r   r   fixedrn   c                 C   sH   t tdtjd}| | }|j|d|d t|ddd}t|| d S )Nr5   r   rW   r   r   r2   rz   )r	   r   rB   Zfloat64r   r   rJ   rQ   )r"   r   r#   Zseriesr$   rS   r&   r&   r'   test_read_hdf_series_mode_rm  s
   r   z8ignore:Period with BDay freq is deprecated:FutureWarningz3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                 C   sl   t g dtjg dddd}t| dddd	d
d}|d }W d    n1 s)w   Y  t|| d S )N)g      ?r   ra   )z
2015-01-01z
2015-01-02z
2015-01-05r+   )r7   r,   rV   rW   r]   z*periodindex_0.20.1_x86_64_darwin_2.7.13.h5r2   rX   p)r   pdZPeriodIndexr   rJ   rg   rl   r&   r&   r'   test_read_py2_hdf_file_in_py3y  s   
r   c                 C   s   t dg di}| | }|j|ddd tdd t|ddd	}W d    n1 s,w   Y  t dg ditjtjd
tdgtjtjd
dd}t	
|| d S )Nr   )r   r   NrW   rn   r   zfuture.infer_stringTr2   rz   )Zna_valuer   )rk   r9   )r   r   r   Zoption_contextr   ZStringDtyperB   rO   r   rJ   rg   )r"   r#   r%   r$   rS   rT   r&   r&   r'   test_read_infer_string  s   
r   )9
contextlibr   pathlibr   rG   numpyrB   r   Zpandas._libs.tslibsr   Zpandas.compatr   Zpandasr   r   r   r   r	   r
   rJ   r   r   Zpandas.tests.io.pytables.commonr   r   Zpandas.utilr   tdZpandas.io.pytablesr   markZ
single_cpuZ
pytestmarkr(   r1   r4   rU   r[   Zskipifr_   ri   rm   ro   r   r   r   r   r   r   r   Z
skip_if_nor   Zparametrizer   filterwarningsr   r   r&   r&   r&   r'   <module>   sL    $	
R
	



