a
    nÝEb¤,  ã                   @   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   s’   t | ƒ�v}ttdƒtdƒdœƒ}| |d¡ tjtdd�� t|dƒ W d   ƒ n1 sZ0    Y  | |d¡ W d   ƒ n1 s„0    Y  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!   úb/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/io/pytables/test_read.pyÚ!test_read_missing_key_close_store   s    
(r#   c              
   C   sº   t | ƒ�ž}ttdƒtdƒdœƒ}| |d¡ t|dƒ�R}tjtdd�� t|dƒ W d   ƒ n1 sf0    Y  t|dƒ W d   ƒ n1 sŽ0    Y  W d   ƒ n1 s¬0    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    
(r&   c           	   	   C   sz  t  ¡ }t| ƒ��R}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 sš0    Y  t	 
d¡}tjt|d��" |jdddgd	� W d   ƒ n1 sä0    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œƒ}|jd|dd� |d }| dd¡}t  ||¡ W d   ƒ n1 �sl0    Y  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Ú
ValueErrorÚcopyÚnpÚnanÚlocr   ÚrandomZrandnÚassert_series_equal)	r   r    r%   ÚmsgÚresultr*   r-   r4   Úexpectedr!   r!   r"   Útest_read_column=   sb    
*
ÿ*
0ÿ,rF   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   r;   r   )Údatapathr   r%   Zd2r!   r!   r"   Útest_pytables_native_readŒ   s    ÿrL   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 )NrG   rH   Ú
legacy_hdfzpytables_native2.h5r$   rI   Údetector)r   Ústrr;   r   )rK   r   r%   Zd1r!   r!   r"   Útest_pytables_native2_read”   s    ÿrQ   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 )NrG   rH   rN   zlegacy_table_fixed_py2.h5r$   rI   r    )é   r   é   ÚD)r2   r3   ÚCrT   ÚABCZ
INDEX_NAME)Úname©Úcolumnsr'   )r   Úselectr   r   r5   Úassert_frame_equal©rK   r   r%   rD   rE   r!   r!   r"   Ú'test_legacy_table_fixed_format_read_py2ž   s    ÿ
ýr]   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 )NrG   rH   rN   z"legacy_table_fixed_datetime_py2.h5r$   rI   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   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 )NrG   rH   rN   zlegacy_table_py2.h5r$   rI   Ú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| ƒ�^}|j	|d
dd� t
|d
ƒ}t|dd�}t
|d
ƒ}t ||¡ |js†J ‚| ¡  W d   ƒ n1 s¢0    Y  d S )Nr+   é   ÚabcdÚABCDE©r'   rY   ÚlettersÚET©Úkeysr6   r    ÚwrI   r$   )r   r>   rA   ÚrandÚlistr'   rW   Ú	set_indexr   r   r
   r   r5   r[   Zis_openÚ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}|j	|d
ddd� t
|d
ƒ}t
|d
dd�}t|tƒsxJ ‚t| ¡ ƒ}t ||¡ |j ¡  W d   ƒ n1 s®0    Y  d S )Nr+   rb   rc   rd   re   rf   rg   Trh   r    rj   Út©rJ   Úformat)Úiterator)r   r>   rA   rk   rl   r'   rW   rm   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 d   ƒ n1 sŽ0    Y  W d   ƒ n1 s¬0    Y  d S )Nr+   rb   rc   rd   re   r    r   rI   r*   ú?key must be provided when HDF5 file contains multiple datasets.r   )r   r>   rA   rk   rl   r   r   r
   r5   r[   r   r   r<   ©r   r    r   ZrereadrC   r!   r!   r"   Útest_read_nokeyé   s     
r{   c              	   C   s¼   t tdƒttdƒdd�dœƒ}t| ƒ�‚}|j|dddd	� t|ƒ}t ||¡ |j|d
ddd	� d}t	j
t|d�� t|ƒ W d   ƒ n1 s�0    Y  W d   ƒ n1 s®0    Y  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   s|   t | ƒ�`}t|ƒ}| ¡  t d¡}tjt|d�� t|ƒ W d   ƒ n1 sP0    Y  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   r   rn   r7   r8   r   r   r<   r
   )r   r   r%   rC   r!   r!   r"   Útest_read_nokey_empty	  s    
ÿr€   c                 C   sz   t tj dd¡tdƒtdƒd�}t| ƒ�2}t|ƒ}|j|ddd� t|dƒ}W d   ƒ n1 s`0    Y  t	 
||¡ d S )	Nr+   rb   rc   rd   re   r    r   rI   )r   r>   rA   rk   rl   r   r   r   r
   r5   r[   )r   rE   ÚfilenameÚpath_objÚactualr!   r!   r"   Útest_read_from_pathlib_path  s    ÿ
(r„   zpy.pathc                 C   s†   ddl m} ttj dd¡tdƒtdƒd�}t| ƒ�2}||ƒ}|j|dd	d
� t	|dƒ}W d   ƒ n1 sl0    Y  t
 ||¡ d S )Nr   )Úlocalr+   rb   rc   rd   re   r    r   rI   )Zpy.pathr…   r   r>   rA   rk   rl   r   r   r
   r5   r[   )r   Z	LocalPathrE   r�   r‚   rƒ   r!   r!   r"   Útest_read_from_py_localpath$  s    ÿ
(r†   rt   Úfixedr`   c                 C   s^   t  ¡ }t|ƒ�.}|j|d| d� t|ddd�}W d   ƒ n1 sD0    Y  t  ||¡ d S )NrH   )Úkeyrt   r$   )rˆ   rJ   )r5   ZmakeFloatSeriesr   r   r
   rB   )rt   r   Zseriesr   rD   r!   r!   r"   Útest_read_hdf_series_mode_r6  s
    
,r‰   c                 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   rS   )z
2015-01-01z
2015-01-02z
2015-01-05r3   )Úfreq)r'   rG   rH   rN   z*periodindex_0.20.1_x86_64_darwin_2.7.13.h5r$   rI   Úp)r   ÚpdZPeriodIndexr   r5   r[   )rK   rE   r%   rD   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   ÚmarkÚsingleZ
pytestmarkr#   r&   rF   rL   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
	

