a
    d2                     @   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 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#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+ Z0e1d,d-d. Z2ej3d/d0d1gd2d3 Z4ej5d4ej5d5d6d7 Z6d8d9 Z7dS ):    )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 sX0    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#   k/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/io/pytables/test_read.py!test_read_missing_key_close_store   s    (r%   c                 C   sr   | | }t g g dg d}||d tjtdd t|ddd W d    n1 sX0    Y  ||d d S )NABindexr   zlist index out of ranger   r   stop)r   r   r   r   
IndexErrorr   r   r#   r#   r$   !test_read_index_error_close_store-   s    ,r.   c              	   C   s   | | }t tdtdd}||d t|dR}tjtdd t|d W d    n1 sd0    Y  t|d W d    n1 s0    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    (r1   c           	   	   C   s  t  }t| X}t|d tjtdd |dd W d    n1 sN0    Y  |d| tjtt	
dd |dd W d    n1 s0    Y  t	
d}tjt|d" |jdddgd	 W d    n1 s0    Y  |dd}t |jt|jj t|ts J t	
d
}tjt|d |dd W d    n1 s\0    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    n1 sr0    Y  d S )Nr"   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_columns      df3r   )startr+   )r8   r,   
   r&   df4Tr(   )tmZmakeTimeDataFramer   r   r   r   r   Zselect_columnappendreescape	TypeErrorZassert_almost_equalvaluesr	   r*   
isinstance
ValueErrorcopynpnanlocr   randomdefault_rngZstandard_normalassert_series_equal)	r    r"   r0   msgresultr4   r7   r;   expectedr#   r#   r$   test_read_columnJ   sb    
*
*
0,rN   c                 C   sN   t | ddddd&}|d }t|ts,J W d    n1 s@0    Y  d S )Niodatazlegacy_hdf/pytables_native.h5r/   modezdetector/readout)r   rB   r   )datapathr0   Zd2r#   r#   r$   test_pytables_native_read   s    rT   z#native2 read fails oddly on windows)reasonc                 C   sX   t | dddddd.}t| |d }t|ts6J W d    n1 sJ0    Y  d S )NrO   rP   
legacy_hdfzpytables_native2.h5r/   rQ   detector)r   strrB   r   )rS   r0   d1r#   r#   r$   test_pytables_native2_read   s    rZ   c                 C   sr   t | ddddddH}|d}tg dgg d	td
gddd}t|| W d    n1 sd0    Y  d S )NrO   rP   rV   zlegacy_table_fixed_py2.h5r/   rQ   r"   )   r      D)r'   r(   Cr]   ABCZ
INDEX_NAME)namecolumnsr*   )r   selectr   r   r<   assert_frame_equalrS   r0   rL   rM   r#   r#   r$   'test_legacy_table_fixed_format_read_py2   s    
rf   c                 C   sn   t | ddddddD}|d}ttdggd	gtd
gd}t|| W d    n1 s`0    Y  d S )NrO   rP   rV   z"legacy_table_fixed_datetime_py2.h5r/   rQ   r"   z2020-02-06T18:00r'   datera   )r   rc   r   r   r   r<   rd   re   r#   r#   r$   0test_legacy_table_fixed_format_read_datetime_py2   s    

rh   c                 C   sf   t | dddddd}|d}W d    n1 s60    Y  tdd	gd
dgd}t|| d S )NrO   rP   rV   zlegacy_table_py2.h5r/   rQ   tabler   r   r   r\   r   )r   rc   r   r<   rd   re   r#   r#   r$   test_legacy_table_read_py2   s    (rj   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0}t	|d
}t|| |jsJ W d    n1 s0    Y  d S )Nr   r5      abcdABCDEr*   rb   lettersETkeysr=   r"   wrQ   r/   )r   rE   rH   rI   listr*   r`   	set_indexr   r   r   r<   rd   Zis_open)r   r    r"   r!   directr0   indirectr#   r#   r$   test_read_hdf_open_store   s    

ry   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 sZJ t
|| d S )
Nr   rk   )r   r[   r   r\   rn   ro   r"   rt   ri   rR   format)r   rE   rH   rI   ru   r   r   r*   _databaser<   rd   )r   r    r"   r!   r4   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6 t|tsJ t| }t|| W d    n1 s0    Y  d S )Nr   rk   rm   rn   ro   rp   rq   Trr   r"   rt   trz   )iterator)r   rE   rH   rI   ru   r*   r`   rv   r   r   r   r0   rB   r   next__iter__r<   rd   )r   r    r"   r!   rw   r   rx   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    n1 s0    Y  d S )Nr   rk   rm   rn   ro   r"   r   rQ   r4   ?key must be provided when HDF5 file contains multiple datasets.r   )r   rE   rH   rI   ru   r   r   r<   rd   r   r   rC   r   r    r"   r!   Z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    n1 s0    Y  d S )Nrl   Zabacdcategorydtype)icr"   r   ri   rz   r4   r   r   )r   r   r	   ru   r   r   r<   rd   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    n1 sN0    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!   r0   rK   r#   r#   r$   test_read_nokey_empty2  s    r   c                 C   s^   t tjddtdtdd}| | }t|}|j|ddd t|d}t	|| d S )	Nr   rk   rm   rn   ro   r"   r   rQ   )
r   rE   rH   rI   ru   r   r   r   r<   rd   )r   r    rM   filenamepath_objactualr#   r#   r$   test_read_from_pathlib_path>  s    
r   zpy.pathc                 C   sj   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   rk   rm   rn   ro   r"   r   rQ   )Zpy.pathr   r   rE   rH   rI   ru   r   r   r<   rd   )r   r    Z	LocalPathrM   r   r   r   r#   r#   r$   test_read_from_py_localpathN  s    
r   r{   fixedri   c                 C   s>   t  }| | }|j|d|d t|ddd}t || d S )NrP   keyr{   r/   r   rR   )r<   ZmakeFloatSeriesr   r   rJ   )r   r{   r    Zseriesr!   rL   r#   r#   r$   test_read_hdf_series_mode_ra  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 }t|| W d    n1 s^0    Y  d S )N)g      ?r   r\   )z
2015-01-01z
2015-01-02z
2015-01-05r(   )freqr)   rO   rP   rV   z*periodindex_0.20.1_x86_64_darwin_2.7.13.h5r/   rQ   p)r   pdZPeriodIndexr   r<   rd   )rS   rM   r0   rL   r#   r#   r$   test_read_py2_hdf_file_in_py3m  s    r   c                 C   s   t d tdg di}| | }|j|ddd tdd t|dd	d
}W d    n1 sb0    Y  tdg didtdgddd}t	|| d S )NZpyarrowr   )r   r   NrP   ri   r   zfuture.infer_stringTr/   r   zstring[pyarrow_numpy]r   )r   rb   )
r   Zimportorskipr   r   r   Zoption_contextr   r   r<   rd   )r   r    r"   r!   rL   rM   r#   r#   r$   test_read_infer_string  s    
,
r   )8
contextlibr   pathlibr   r>   numpyrE   r   Zpandas._libs.tslibsr   Zpandas.compatr   Zpandasr   r   r   r   r	   r
   r<   r   Zpandas.tests.io.pytables.commonr   r   Zpandas.utilr   tdZpandas.io.pytablesr   markZ
single_cpuZ
pytestmarkr%   r.   r1   rN   rT   ZskipifrZ   rf   rh   rj   ry   r~   r   r   r   r   r   Z
skip_if_nor   Zparametrizer   filterwarningsr   r   r#   r#   r#   r$   <module>   sJ    N
	



