B
    Y0d,                 @   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 d Q R X ||d W d Q R X d S )N   )abk1z 'No object named k2 in the file')matchk2)r   r   rangeto_hdfpytestraisesKeyErrorr
   )
setup_pathpathdf r   T/var/www/html/venv/lib/python3.7/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 d Q R X t|d W d Q R X W d Q R X d S )Nr   )r   r   r   rz 'No object named k2 in the file')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 d Q R X |d| tjtt	
dd |dd W d Q R X t	
d}tjt|d |jdddgd	 W d Q R X |dd}t |jt|jj t|tstt	
d
}tjt|d |dd W d 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 d Q R X d S )Nr   zNo object named df in the file)r   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+   r-   
   )ABdf4Tr0   )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*   r1   expectedr   r   r   test_read_column=   s^    

rD   c          	   C   s:   t | ddddd}|d }t|ts,tW d Q R X d S )Niodatazlegacy_hdf/pytables_native.h5r!   )modezdetector/readout)r   r8   r   r9   )datapathr   r"   Zd2r   r   r   test_pytables_native_read   s
    rI   z#native2 read fails oddly on windows)reasonc          	   C   sD   t | dddddd$}t| |d }t|ts6tW d Q R X d S )NrE   rF   
legacy_hdfzpytables_native2.h5r!   )rG   detector)r   strr8   r   r9   )rH   r   r"   Zd1r   r   r   test_pytables_native2_read   s    rN   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 d Q R X d S )NrE   rF   rK   zlegacy_table_fixed_py2.h5r!   )rG   r      r      Dr/   r0   CABCZ
INDEX_NAME)name)columnsr$   )r   selectr   r   r2   assert_frame_equal)rH   r   r"   rB   rC   r   r   r   'test_legacy_table_fixed_format_read_py2   s    

rX   c          	   C   sZ   t | dddddd:}|d}ttdggd	gtd
gd}t|| W d Q R X d S )NrE   rF   rK   z"legacy_table_fixed_datetime_py2.h5r!   )rG   r   z2020-02-06T18:00r/   date)rU   r$   )r   rV   r   r   r   r2   rW   )rH   r   r"   rB   rC   r   r   r   0test_legacy_table_fixed_format_read_datetime_py2   s    

rZ   c          	   C   sR   t | dddddd}|d}W d Q R X tdd	gd
dgd}t|| d S )NrE   rF   rK   zlegacy_table_py2.h5r!   )rG   tabler   r   r   rP   )r   r   )r   rV   r   r2   rW   )rH   r   r"   rB   rC   r   r   r   test_legacy_table_read_py2   s    r\   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st|  W d Q R X d S )Nr(      abcdABCDE)r$   rU   lettersET)keysr3   r   w)rG   r!   )r   r<   r?   randlistr$   rT   	set_indexr   r   r
   r   r2   rW   Zis_openr9   close)r   r   r   directr"   indirectr   r   r   test_read_hdf_open_store   s     



rj   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 d Q R X d S )Nr(   r]   r^   r_   )r$   rU   r`   ra   T)rb   r3   r   rc   t)rG   format)iterator)r   r<   r?   rd   re   r$   rT   rf   r   r   r
   r8   r   r9   next__iter__r2   rW   r"   rg   )r   r   r   rh   rm   ri   r   r   r   test_read_hdf_iterator   s     

rp   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 d Q R X W d Q R X d S )Nr(   r]   r^   r_   )r$   rU   r   r   )rG   r'   z?key must be provided when HDF5 file contains multiple datasets.)r   )r   r<   r?   rd   re   r   r   r
   r2   rW   r   r   r:   )r   r   r   rereadrA   r   r   r   test_read_nokey   s     
rr   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 d Q R X W d Q R X d S )Nr]   Zabacdcategory)Zdtype)icr   r   r[   )rG   rl   r'   z?key must be provided when HDF5 file contains multiple datasets.)r   )r   r   r   re   r   r   r
   r2   rW   r   r   r:   )r   r   r   rq   rA   r   r   r   test_read_nokey_table   s    
rv   c          
   C   sT   t | B}t|}|  td}tjt|d t| W d Q R X W d 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   rg   r4   r5   r   r   r:   r
   )r   r   r"   rA   r   r   r   test_read_nokey_empty	  s    
rw   c          	   C   sf   t tjddtdtdd}t| (}t|}|j|ddd t|d}W d Q R X t	
|| d S )	Nr(   r]   r^   r_   )r$   rU   r   r   )rG   )r   r<   r?   rd   re   r   r   r   r
   r2   rW   )r   rC   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 d Q R X t
|| d S )Nr   )localr(   r]   r^   r_   )r$   rU   r   r   )rG   )Zpy.pathr|   r   r<   r?   rd   re   r   r   r
   r2   rW   )r   Z	LocalPathrC   rx   ry   rz   r   r   r   test_read_from_py_localpath$  s    
r}   rl   Zfixedr[   c          	   C   sJ   t  }t|$}|j|d| d t|ddd}W d Q R X t || d S )NrF   )keyrl   r!   )r~   rG   )r2   ZmakeFloatSeriesr   r   r
   r@   )rl   r   Zseriesr   rB   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 d Q R X d S )Ng      ?r   rP   z
2015-01-01z
2015-01-02z
2015-01-05r0   )freq)r$   rE   rF   rK   z*periodindex_0.20.1_x86_64_darwin_2.7.13.h5r!   )rG   p)r   pdZPeriodIndexr   r2   rW   )rH   rC   r"   rB   r   r   r   test_read_py2_hdf_file_in_py3B  s    
r   )3pathlibr   r4   numpyr<   r   Zpandas._libs.tslibsr   Zpandas.compatr   Zpandasr   r   r   r   r   r	   r2   r
   Zpandas.tests.io.pytables.commonr   r   r   Zpandas.utilr   tdZpandas.io.pytablesr   markZsingleZ
pytestmarkr    r#   rD   rI   ZskipifrN   rX   rZ   r\   rj   rp   rr   rv   rw   r{   Z
skip_if_nor}   Zparametrizer   r   r   r   r   r   <module>   s8    O
