a
    é´«jÐ4  ã                   @   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mZ d dlmZmZ d dlmZ d d	lmZ ejjg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)„ Z0d*d+„ Z1e 2d,¡d-d.„ ƒZ3ej 4d/d0d1g¡d2d3„ ƒZ5ej 6d4¡ej 6d5¡d6d7„ ƒƒZ7d8d9„ Z8dS ):é    )Úclosing)ÚPathN)Ú	Timestamp)Úis_platform_windows)Ú	DataFrameÚHDFStoreÚIndexÚSeriesÚ_testingÚ
date_rangeÚread_hdf)Ú_maybe_removeÚensure_clean_store)Ú_test_decorators)ÚTableIteratorc                 C   sv   | | }t tdƒtdƒdœƒ}|j|dd� tjtdd�� t|dƒ W d   ƒ n1 sZ0    Y  |j|dd� d S )Né   ©ÚaÚbÚk1©Úkeyú 'No object named k2 in the file'©ÚmatchÚk2)r   ÚrangeÚto_hdfÚpytestÚraisesÚKeyErrorr   ©Útmp_pathÚ
setup_pathÚpathÚdf© r&   úa/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/io/pytables/test_read.pyÚ!test_read_missing_key_close_store    s    (r(   c                 C   sv   | | }t g g dœg d�}|j|dd� tjtdd�� t|ddd� W d   ƒ n1 sZ0    Y  |j|dd� d S )	N©ÚAÚB©Úindexr   r   zlist index out of ranger   r   ©Ústop)r   r   r   r   Ú
IndexErrorr   r!   r&   r&   r'   Ú!test_read_index_error_close_store.   s    ,r1   c              	   C   sœ   | | }t tdƒtdƒdœƒ}|j|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  d S )	Nr   r   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    (r4   c           	   	   C   s¨  t tj d¡ d¡ttdƒƒtdddd�d�}t| ƒ��Z}t	|d	ƒ t
jtd
d�� | d	d¡ W d   ƒ n1 st0    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ƒ�sHJ ‚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 �sš0    Y  d S )!Nr   )é
   é   ÚABCDz
2000-01-01r5   r+   )ZperiodsÚfreq©Úcolumnsr-   r%   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_columnsr6   é   Údf3)Ústartéþÿÿÿr.   )r@   r/   r)   Údf4T)r   ÚnpÚrandomÚdefault_rngZstandard_normalr   Úlistr   r   r   r   r   r    Zselect_columnÚappendÚreÚescapeÚ	TypeErrorÚtmZassert_almost_equalÚvaluesr	   r-   Ú
isinstanceÚ
ValueErrorÚcopyÚnanÚlocÚassert_series_equal)	r#   r%   r3   ÚmsgÚresultr=   r?   rB   Úexpectedr&   r&   r'   Útest_read_columnK   sj    
ý
*
ÿ*
2ÿ,rV   c                 C   sN   t | dddƒdd��}|d }W d   ƒ n1 s20    Y  t|tƒsJJ ‚d S )NÚioÚdatazlegacy_hdf/pytables_native.h5r2   ©Úmodezdetector/readout)r   rM   r   )Údatapathr3   Zd2r&   r&   r'   Útest_pytables_native_read�   s    ÿ&r\   z#native2 read fails oddly on windows)Úreasonc                 C   sX   t | ddddƒdd�� }t|ƒ |d }W d   ƒ n1 s<0    Y  t|tƒsTJ ‚d S )NrW   rX   Ú
legacy_hdfzpytables_native2.h5r2   rY   Údetector)r   ÚstrrM   r   )r[   r3   Zd1r&   r&   r'   Útest_pytables_native2_read¥   s    ÿ&ra   c                 C   sr   t | ddddƒdd��}| d¡}W d   ƒ n1 s60    Y  tg d¢gg d	¢td
gdd�d�}t ||¡ d S )NrW   rX   r^   zlegacy_table_fixed_py2.h5r2   rY   r%   )é   r   é   ÚD)r*   r+   ÚCrd   ÚABCZ
INDEX_NAME)Únamer9   )r   Úselectr   r   rK   Úassert_frame_equal©r[   r3   rT   rU   r&   r&   r'   Ú'test_legacy_table_fixed_format_read_py2¯   s    ÿ(ýrk   c                 C   sp   t tdƒggdgtdgƒdd�}t| dddd	ƒd
d��}| d¡}W d   ƒ n1 sV0    Y  t ||¡ d S )Nz2020-02-06T18:00r*   ÚdatezM8[ns])r:   r-   ÚdtyperW   rX   r^   z"legacy_table_fixed_datetime_py2.h5r2   rY   r%   )r   r   r   r   rh   rK   ri   ©r[   rU   r3   rT   r&   r&   r'   Ú0test_legacy_table_fixed_format_read_datetime_py2¾   s    
üþ(ro   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 )NrW   rX   r^   zlegacy_table_py2.h5r2   rY   Útabler   r   r   rc   r   )r   rh   r   rK   ri   rj   r&   r&   r'   Útest_legacy_table_read_py2Ï   s    ÿ(rq   c           	      C   sö   t tj d¡ d¡tdƒtdƒd�}d|j_|jddd	�}| | }|rŒd
}tj	t
|d��  |j|ddd� W d   ƒ n1 s~0    Y  d S |j|ddd� t|dƒ}t|dd��0}t|dƒ}t ||¡ |jsÔJ ‚W d   ƒ n1 sè0    Y  d S )Nr   ©r6   é   ÚabcdÚABCDE©r-   r:   ÚlettersÚET©ÚkeysrG   z=Saving a MultiIndex with an extension dtype is not supported.r   r%   Úw©r   rZ   r2   rY   )r   rC   rD   rE   rF   r-   rg   Ú	set_indexr   r   ÚNotImplementedErrorr   r   r   rK   ri   Zis_open)	r"   r#   Zusing_infer_stringr%   r$   rS   Údirectr3   Úindirectr&   r&   r'   Útest_read_hdf_open_storeÛ   s&    ý.

r�   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   rr   )r   rb   r   rc   ru   rv   r%   r{   rp   ©r   rZ   Úformat)r   rC   rD   rE   rF   r   r   r-   Ú_dataÚbaserK   ri   )r"   r#   r%   r$   r=   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ƒ�* t|tƒs†J ‚t| ¡ ƒ}W d   ƒ n1 s¦0    Y  t ||¡ d S )Nr   rr   rt   ru   rv   rw   rx   Try   r%   r{   Útr‚   )Úiterator)r   rC   rD   rE   rF   r-   rg   r}   r   r   r   r3   rM   r   ÚnextÚ__iter__rK   ri   )r"   r#   r%   r$   r   rˆ   r€   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 s�0    Y  d S )Nr   rr   rt   ru   rv   r%   r   r|   r=   ú?key must be provided when HDF5 file contains multiple datasets.r   )r   rC   rD   rE   rF   r   r   rK   ri   r   r   rN   ©r"   r#   r%   r$   ZrereadrS   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 sŽ0    Y  d S )Nrs   ZabacdÚcategory©rm   )ÚiÚcr%   r   rp   r‚   r=   rŒ   r   )r   r   r	   rF   r   r   rK   ri   r   r   rN   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   ÚcloserH   rI   r   r   rN   r   )r"   r#   r$   r3   rS   r&   r&   r'   Útest_read_nokey_empty>  s    ÿr•   c                 C   s`   t tj d¡ d¡tdƒtdƒd�}| | }t|ƒ}|j|ddd� t|dd	�}t 	||¡ d S )
Nr   rr   rt   ru   rv   r%   r   r|   r   )
r   rC   rD   rE   rF   r   r   r   rK   ri   )r"   r#   rU   ÚfilenameÚpath_objÚactualr&   r&   r'   Útest_read_from_pathlib_pathJ  s    ýr™   zpy.pathc                 C   sl   ddl m} ttj d¡ d¡tdƒtdƒd�}| | }||ƒ}|j|dd	d
� t|dd�}t	 
||¡ d S )Nr   )Úlocalr   rr   rt   ru   rv   r%   r   r|   r   )Zpy.pathrš   r   rC   rD   rE   rF   r   r   rK   ri   )r"   r#   Z	LocalPathrU   r–   r—   r˜   r&   r&   r'   Útest_read_from_py_localpathZ  s    ýr›   rƒ   Úfixedrp   c                 C   sH   t tdƒtjd�}| | }|j|d|d� t|ddd�}t ||¡ d S )Nr5   r�   rX   ©r   rƒ   r2   r|   )r	   r   rC   Zfloat64r   r   rK   rR   )r"   rƒ   r#   Zseriesr$   rT   r&   r&   r'   Útest_read_hdf_series_mode_rm  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 }W d   ƒ n1 sR0    Y  t ||¡ d S )N)g      ð?r   rc   )z
2015-01-01z
2015-01-02z
2015-01-05r+   )r8   r,   rW   rX   r^   z*periodindex_0.20.1_x86_64_darwin_2.7.13.h5r2   rY   Úp)r   ÚpdZPeriodIndexr   rK   ri   rn   r&   r&   r'   Útest_read_py2_hdf_file_in_py3y  s    þÿü&r¡   c                 C   s¦   t dg d¢iƒ}| | }|j|ddd� t dd¡� t|ddd	�}W d   ƒ n1 sX0    Y  t dg d¢itjtjd
�tdgtjtjd
�d�d�}t	 
||¡ d S )Nr   )r   r   NrX   rp   r�   zfuture.infer_stringTr2   r|   )Zna_valuer�   )rm   r:   )r   r   r    Zoption_contextr   ZStringDtyperC   rP   r   rK   ri   )r"   r#   r%   r$   rT   rU   r&   r&   r'   Útest_read_infer_string•  s    ,
ýr¢   )9Ú
contextlibr   Úpathlibr   rH   ÚnumpyrC   r   Zpandas._libs.tslibsr   Zpandas.compatr   Zpandasr    r   r   r   r	   r
   rK   r   r   Zpandas.tests.io.pytables.commonr   r   Zpandas.utilr   ÚtdZpandas.io.pytablesr   ÚmarkZ
single_cpuZ
pytestmarkr(   r1   r4   rV   r\   Zskipifra   rk   ro   rq   r�   r†   r‹   rŽ   r“   r•   r™   Z
skip_if_nor›   Zparametrizerž   Úfilterwarningsr¡   r¢   r&   r&   r&   r'   Ú<module>   sJ   $	
R
	



