U
    `»{jl,  ã                   @   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   sj   t | ƒ�X}ttdƒtdƒdœƒ}| |d¡ tjtdd�� t|dƒ W 5 Q R X | |d¡ W 5 Q R X 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!   úa/var/www/html/bwave/python/venv/lib/python3.8/site-packages/pandas/tests/io/pytables/test_read.pyÚ!test_read_missing_key_close_store   s    
r#   c                 C   s~   t | ƒ�l}ttdƒtdƒdœƒ}| |d¡ t|dƒ�4}tjtdd�� t|dƒ W 5 Q R X t|dƒ W 5 Q R X W 5 Q R X 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   s  t  ¡ }t| ƒ��ô}t|dƒ tjtdd�� | dd¡ W 5 Q R X | d|¡ tjtt	 
d¡d�� | dd¡ W 5 Q R X t	 
d¡}tjt|d�� |jdddgd	� W 5 Q R X | dd¡}t  |jt|jƒj¡ t|tƒsât‚t	 
d
¡}tjt|d�� | dd¡ W 5 Q R X | ¡ }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 5 Q R X d S )Nr    zNo object named df in the filer   Úindexz%'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   )Ústartéþÿÿÿ)Ústop)r.   r0   é
   )ÚAÚBÚdf4Tr3   )ÚtmZmakeTimeDataFramer   r   r   r   r   Zselect_columnÚappendÚreÚescapeÚ	TypeErrorZassert_almost_equalÚvaluesr   r'   Ú
isinstanceÚAssertionErrorÚ
ValueErrorÚcopyÚnpÚnanÚlocr   ÚrandomZrandnÚassert_series_equal)	r   r    r%   ÚmsgÚresultr*   r-   r4   Úexpectedr!   r!   r"   Útest_read_column=   sd    
 ÿ
ÿrG   c              	   C   s:   t | dddƒdd��}|d }t|tƒs,t‚W 5 Q R X d S )NÚioÚdatazlegacy_hdf/pytables_native.h5r$   ©Úmodezdetector/readout)r   r;   r   r<   )Údatapathr%   Zd2r!   r!   r"   Útest_pytables_native_readŒ   s    
 ÿrM   z#native2 read fails oddly on windows)Úreasonc              	   C   sD   t | ddddƒdd��$}t|ƒ |d }t|tƒs6t‚W 5 Q R X d S )NrH   rI   Ú
legacy_hdfzpytables_native2.h5r$   rJ   Zdetector)r   Ústrr;   r   r<   )rL   r%   Zd1r!   r!   r"   Útest_pytables_native2_read”   s     ÿrQ   c              	   C   sf   t | ddddƒdd��F}| d¡}tdd	d
dggddddgtdgdd�d�}t ||¡ W 5 Q R X d S )NrH   rI   rO   zlegacy_table_fixed_py2.h5r$   rJ   r    é   r   é   ÚDr2   r3   ÚCÚABCZ
INDEX_NAME)Úname©Úcolumnsr'   )r   Úselectr   r   r5   Úassert_frame_equal©rL   r%   rE   rF   r!   r!   r"   Ú'test_legacy_table_fixed_format_read_py2ž   s     ÿ

ýr]   c              	   C   sZ   t | ddddƒdd��:}| d¡}ttdƒggd	gtd
gƒd�}t ||¡ W 5 Q R X d S )NrH   rI   rO   z"legacy_table_fixed_datetime_py2.h5r$   rJ   r    z2020-02-06T18:00r2   ÚdaterX   )r   rZ   r   r   r   r5   r[   r\   r!   r!   r"   Ú0test_legacy_table_fixed_format_read_datetime_py2­   s    þ

ýr_   c              	   C   sR   t | ddddƒdd��}| d¡}W 5 Q R X tdd	gd
dgdœƒ}t ||¡ d S )NrH   rI   rO   zlegacy_table_py2.h5r$   rJ   Útabler   r   r   rS   r   )r   rZ   r   r5   r[   r\   r!   r!   r"   Útest_legacy_table_read_py2½   s     ÿra   c              	   C   sœ   t tj dd¡tdƒtdƒd�}d|j_|jddd	�}t| ƒ�T}|j	|d
dd� t
|d
ƒ}t|dd�}t
|d
ƒ}t ||¡ |js†t‚| ¡  W 5 Q R X d S )Nr+   é   ÚabcdÚABCDE©r'   rY   ÚlettersÚET©Úkeysr6   r    ÚwrJ   r$   )r   r?   rB   ÚrandÚlistr'   rW   Ú	set_indexr   r   r
   r   r5   r[   Zis_openr<   Úclose)r   r    r   Údirectr%   Úindirectr!   r!   r"   Útest_read_hdf_open_storeÉ   s     



rq   c              	   C   s¨   t tj dd¡tdƒtdƒd�}d|j_|jddd	�}t| ƒ�`}|j	|d
ddd� t
|d
ƒ}t
|d
dd�}t|tƒsxt‚t| ¡ ƒ}t ||¡ |j ¡  W 5 Q R X d S )Nr+   rb   rc   rd   re   rf   rg   Trh   r    rj   Út©rK   Úformat)Úiterator)r   r?   rB   rk   rl   r'   rW   rm   r   r   r
   r;   r   r<   ÚnextÚ__iter__r5   r[   r%   rn   )r   r    r   ro   ru   rp   r!   r!   r"   Útest_read_hdf_iteratorÚ   s     

rx   c              
   C   s’   t tj dd¡tdƒtdƒd�}t| ƒ�`}|j|ddd� t|ƒ}t 	||¡ |j|d	dd� d
}t
jt|d�� t|ƒ W 5 Q R X W 5 Q R X d S )Nr+   rb   rc   rd   re   r    r   rJ   r*   ú?key must be provided when HDF5 file contains multiple datasets.r   )r   r?   rB   rk   rl   r   r   r
   r5   r[   r   r   r=   ©r   r    r   ZrereadrD   r!   r!   r"   Útest_read_nokeyé   s     
r{   c              
   C   s”   t tdƒttdƒdd�dœƒ}t| ƒ�d}|j|dddd	� t|ƒ}t ||¡ |j|d
ddd	� d}t	j
t|d�� t|ƒ W 5 Q R X W 5 Q R X d S )Nrb   ZabacdÚcategory)Zdtype)ÚiÚcr    r   r`   rs   r*   ry   r   )r   r   r   rl   r   r   r
   r5   r[   r   r   r=   rz   r!   r!   r"   Útest_read_nokey_tableú   s    
r   c              
   C   sT   t | ƒ�B}t|ƒ}| ¡  t d¡}tjt|d�� t|ƒ W 5 Q R X W 5 Q R X d S )Nz]Dataset(s) incompatible with Pandas data types, not table, or no datasets found in HDF5 file.r   )	r   r   rn   r7   r8   r   r   r=   r
   )r   r   r%   rD   r!   r!   r"   Útest_read_nokey_empty	  s    
ÿr€   c              	   C   sf   t tj dd¡tdƒtdƒd�}t| ƒ�(}t|ƒ}|j|ddd� t|dƒ}W 5 Q R X t	 
||¡ d S )	Nr+   rb   rc   rd   re   r    r   rJ   )r   r?   rB   rk   rl   r   r   r   r
   r5   r[   )r   rF   ÚfilenameÚpath_objÚactualr!   r!   r"   Útest_read_from_pathlib_path  s      ÿ
r„   zpy.pathc              	   C   sr   ddl m} ttj dd¡tdƒtdƒd�}t| ƒ�(}||ƒ}|j|dd	d
� t	|dƒ}W 5 Q R X t
 ||¡ d S )Nr   )Úlocalr+   rb   rc   rd   re   r    r   rJ   )Zpy.pathr…   r   r?   rB   rk   rl   r   r   r
   r5   r[   )r   Z	LocalPathrF   r�   r‚   rƒ   r!   r!   r"   Útest_read_from_py_localpath$  s      ÿ
r†   rt   Zfixedr`   c              	   C   sJ   t  ¡ }t|ƒ�$}|j|d| d� t|ddd�}W 5 Q R X t  ||¡ d S )NrI   )Úkeyrt   r$   )r‡   rK   )r5   ZmakeFloatSeriesr   r   r
   rC   )rt   r   Zseriesr   rE   r!   r!   r"   Útest_read_hdf_series_mode_r6  s
    
rˆ   c              	   C   s\   t dddgtjdddgdd�d	�}t| d
dddƒdd��}|d }t ||¡ W 5 Q R X d S )Ng      ð?r   rS   z
2015-01-01z
2015-01-02z
2015-01-05r3   )Úfreq)r'   rH   rI   rO   z*periodindex_0.20.1_x86_64_darwin_2.7.13.h5r$   rJ   Úp)r   ÚpdZPeriodIndexr   r5   r[   )rL   rF   r%   rE   r!   r!   r"   Útest_read_py2_hdf_file_in_py3B  s     þ   ÿürŒ   )3Úpathlibr   r7   Únumpyr?   r   Zpandas._libs.tslibsr   Zpandas.compatr   Zpandasr‹   r   r   r   r   r	   r5   r
   Zpandas.tests.io.pytables.commonr   r   r   Zpandas.utilr   ÚtdZpandas.io.pytablesr   ÚmarkZ
single_cpuZ
pytestmarkr#   r&   rG   rM   ZskipifrQ   r]   r_   ra   rq   rx   r{   r   r€   r„   Z
skip_if_nor†   Zparametrizerˆ   rŒ   r!   r!   r!   r"   Ú<module>   s>    O
	

