U
    -e7-                     @   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   s^   | | }t tdtdd}||d tjtdd t|d W 5 Q R X ||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"   c/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/pandas/tests/io/pytables/test_read.py!test_read_missing_key_close_store   s    r$   c              
   C   sr   | | }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 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st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/   r1   
   )ABdf4Tr4   )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.   r5   expectedr"   r"   r#   test_read_column<   sd    
 
rH   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    
 rN   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 )NrI   rJ   
legacy_hdfzpytables_native2.h5r%   rK   detector)r   strr<   r   r=   )rM   r&   Zd1r"   r"   r#   test_pytables_native2_read   s     rS   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 )NrI   rJ   rP   zlegacy_table_fixed_py2.h5r%   rK   r!      r      Dr3   r4   CABCZ
INDEX_NAME)namecolumnsr(   )r   selectr   r   r6   assert_frame_equalrM   r&   rF   rG   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 )NrI   rJ   rP   z"legacy_table_fixed_datetime_py2.h5r%   rK   r!   z2020-02-06T18:00r3   daterZ   )r   r\   r   r   r   r6   r]   r^   r"   r"   r#   0test_legacy_table_fixed_format_read_datetime_py2   s    

ra   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 )NrI   rJ   rP   zlegacy_table_py2.h5r%   rK   tabler   r   r   rU   r   )r   r\   r   r6   r]   r^   r"   r"   r#   test_legacy_table_read_py2   s     rc   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stW 5 Q R X d S )Nr,      abcdABCDEr(   r[   lettersETkeysr7   r!   wrK   r%   )r   r@   rC   randlistr(   rY   	set_indexr   r   r   r6   r]   Zis_openr=   )r   r   r!   r    directr&   indirectr"   r"   r#   test_read_hdf_open_store   s     

rr   c                 C   sj   t tjddddddgtdd}| | }|j|d	d
dd t|d	}|jjj	d ksZt
t|| d S )Nr,   rd   r   rT   r   rU   rf   rg   r!   rl   rb   rL   format)r   r@   rC   rm   rn   r   r   r(   _databaser=   r6   r]   )r   r   r!   r    r+   r"   r"   r#   test_read_hdf_index_not_view   s    $
rw   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stt| }t|| W 5 Q R X d S )Nr,   rd   re   rf   rg   rh   ri   Trj   r!   rl   trs   )iterator)r   r@   rC   rm   rn   r(   rY   ro   r   r   r   r&   r<   r   r=   next__iter__r6   r]   )r   r   r!   r    rp   ry   rq   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 5 Q R X d S )Nr,   rd   re   rf   rg   r!   r   rK   r+   ?key must be provided when HDF5 file contains multiple datasets.r   )r   r@   rC   rm   rn   r   r   r6   r]   r   r   r>   r   r   r!   r    ZrereadrE   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 5 Q R X d S )Nrd   Zabacdcategory)Zdtype)icr!   r   rb   rs   r+   r}   r   )r   r   r	   rn   r   r   r6   r]   r   r   r>   r~   r"   r"   r#   test_read_nokey_table  s    r   c              	   C   sH   | | }t |}|  td}tjt|d t| 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   closer8   r9   r   r   r>   r   )r   r   r    r&   rE   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,   rd   re   rf   rg   r!   r   rK   )
r   r@   rC   rm   rn   r   r   r   r6   r]   )r   r   rG   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,   rd   re   rf   rg   r!   r   rK   )Zpy.pathr   r   r@   rC   rm   rn   r   r   r6   r]   )r   r   Z	LocalPathrG   r   r   r   r"   r"   r#   test_read_from_py_localpath.  s      
r   rt   Zfixedrb   c                 C   s>   t  }| | }|j|d|d t|ddd}t || d S )NrJ   )keyrt   r%   )r   rL   )r6   ZmakeFloatSeriesr   r   rD   )r   rt   r   Zseriesr    rF   r"   r"   r#   test_read_hdf_series_mode_r?  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   rU   z
2015-01-01z
2015-01-02z
2015-01-05r4   )freq)r(   rI   rJ   rP   z*periodindex_0.20.1_x86_64_darwin_2.7.13.h5r%   rK   p)r   pdZPeriodIndexr   r6   r]   )rM   rG   r&   rF   r"   r"   r#   test_read_py2_hdf_file_in_py3K  s        r   )5
contextlibr   pathlibr   r8   numpyr@   r   Zpandas._libs.tslibsr   Zpandas.compatr   Zpandasr   r   r   r   r	   r
   r6   r   Zpandas.tests.io.pytables.commonr   r   Zpandas.utilr   tdZpandas.io.pytablesr   markZ
single_cpuZ
pytestmarkr$   r'   rH   rN   ZskipifrS   r_   ra   rc   rr   rw   r|   r   r   r   r   Z
skip_if_nor   Zparametrizer   r   r"   r"   r"   r#   <module>   sB    N
	

