o
    Û­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 s-w   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&   ú_/var/www/html/CropPilot/venv/lib/python3.10/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 s-w   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ƒ�*}tjtdd�� t|dƒ W d   ƒ n1 s3w   Y  t|dƒ W d   ƒ d S 1 sHw   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| ƒ��«}t	|d	ƒ t
jtd
d�� | d	d¡ W d   ƒ n1 s:w   Y  | d	|¡ t
jtt d¡d�� | d	d¡ W d   ƒ n1 s`w   Y  t d¡}t
jt|d�� |jd	ddgd� W d   ƒ n1 s…w   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¿w   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   ƒ d S 1 �sËw   Y  d S )!Nr   )é
   é   ÚABCDz
2000-01-01r5   r+   )ÚperiodsÚfreq©Úcolumnsr-   r%   zNo object named df in the filer   r-   z%'column [foo] not found in the table'Ú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 indexableÚvalues_block_0ÚstringÚdf2)Údata_columnsr6   é   Údf3)Ústartéþÿÿÿr.   )rD   r/   r)   Údf4T)r   ÚnpÚrandomÚdefault_rngÚstandard_normalr   Úlistr   r   r   r   r   r    Úselect_columnÚappendÚreÚescapeÚ	TypeErrorÚtmÚassert_almost_equalÚvaluesr	   r-   Ú
isinstanceÚ
ValueErrorÚcopyÚnanÚlocÚassert_series_equal)	r#   r%   r3   ÚmsgÚresultr@   rC   rF   Úexpectedr&   r&   r'   Útest_read_columnK   st   
ý
ÿ
ÿý
ÿÿÿ$¸r]   c                 C   sN   t | dddƒdd��}|d }W d   ƒ n1 sw   Y  t|tƒs%J ‚d S )NÚioÚdatazlegacy_hdf/pytables_native.h5r2   ©Úmodezdetector/readout)r   rT   r   )Údatapathr3   Úd2r&   r&   r'   Útest_pytables_native_read�   s   ÿ
ýrd   z#native2 read fails oddly on windows)Úreasonc                 C   sX   t | ddddƒdd��}t|ƒ |d }W d   ƒ n1 sw   Y  t|tƒs*J ‚d S )Nr^   r_   Ú
legacy_hdfzpytables_native2.h5r2   r`   Údetector)r   ÚstrrT   r   )rb   r3   Úd1r&   r&   r'   Útest_pytables_native2_read¥   s   ÿ
ürj   c                 C   sr   t | ddddƒdd��}| d¡}W d   ƒ n1 sw   Y  tg d¢gg d	¢td
gdd�d�}t ||¡ d S )Nr^   r_   rf   zlegacy_table_fixed_py2.h5r2   r`   r%   )é   r   é   ÚD)r*   r+   ÚCrm   ÚABCÚ
INDEX_NAME)Únamer:   )r   Úselectr   r   rQ   Úassert_frame_equal©rb   r3   r[   r\   r&   r&   r'   Ú'test_legacy_table_fixed_format_read_py2¯   s   ÿýýru   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 s+w   Y  t ||¡ d S )Nz2020-02-06T18:00r*   ÚdatezM8[ns])r;   r-   Údtyper^   r_   rf   z"legacy_table_fixed_datetime_py2.h5r2   r`   r%   )r   r   r   r   rr   rQ   rs   ©rb   r\   r3   r[   r&   r&   r'   Ú0test_legacy_table_fixed_format_read_datetime_py2¾   s   
üþüry   c                 C   sf   t | ddddƒdd��}| d¡}W d   ƒ n1 sw   Y  tdd	gd
dgdœƒ}t ||¡ d S )Nr^   r_   rf   zlegacy_table_py2.h5r2   r`   Útabler   r   r   rl   r   )r   rr   r   rQ   rs   rt   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	�}| | }|rGd
}tj	t
|d�� |j|ddd� W d   ƒ d S 1 s@w   Y  d S |j|ddd� t|dƒ}t|dd��}t|dƒ}t ||¡ |jskJ ‚W d   ƒ d S 1 svw   Y  d S )Nr   ©r6   é   ÚabcdÚABCDE©r-   r;   ÚlettersÚET©ÚkeysrM   z=Saving a MultiIndex with an extension dtype is not supported.r   r%   Úw©r   ra   r2   r`   )r   rG   rH   rI   rK   r-   rq   Ú	set_indexr   r   ÚNotImplementedErrorr   r   r   rQ   rs   Úis_open)	r"   r#   Úusing_infer_stringr%   r$   rZ   Ú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 s-J ‚t
 ||¡ d S )
Nr   r|   )r   rk   r   rl   r   r€   r%   r…   rz   ©r   ra   Úformat)r   rG   rH   rI   rK   r   r   r-   Ú_dataÚbaserQ   rs   )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ƒsCJ ‚t| ¡ ƒ}W d   ƒ n1 sSw   Y  t ||¡ d S )Nr   r|   r~   r   r€   r�   r‚   Trƒ   r%   r…   ÚtrŽ   )Úiterator)r   rG   rH   rI   rK   r-   rq   r‡   r   r   r   r3   rT   r   ÚnextÚ__iter__rQ   rs   )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   ƒ d S 1 sIw   Y  d S )Nr   r|   r~   r   r€   r%   r   r†   r@   ú?key must be provided when HDF5 file contains multiple datasets.r   )r   rG   rH   rI   rK   r   r   rQ   rs   r   r   rU   ©r"   r#   r%   r$   ÚrereadrZ   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   ƒ d S 1 sHw   Y  d S )Nr}   ÚabacdÚcategory©rw   )ÚiÚcr%   r   rz   rŽ   r@   r˜   r   )r   r   r	   rK   r   r   rQ   rs   r   r   rU   r™   r&   r&   r'   Útest_read_nokey_table/  s   
"ÿr¡   c                 C   s^   | | }t |ƒ}| ¡  t d¡}tjt|d�� t|ƒ W d   ƒ d S 1 s(w   Y  d S )Nz]Dataset(s) incompatible with Pandas data types, not table, or no datasets found in HDF5 file.r   )r   ÚcloserN   rO   r   r   rU   r   )r"   r#   r$   r3   rZ   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   r|   r~   r   r€   r%   r   r†   r   )
r   rG   rH   rI   rK   r   r   r   rQ   rs   )r"   r#   r\   Ú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   r|   r~   r   r€   r%   r   r†   r   )Úpy.pathr¨   r   rG   rH   rI   rK   r   r   rQ   rs   )r"   r#   Ú	LocalPathr\   r¤   r¥   r¦   r&   r&   r'   Útest_read_from_py_localpathZ  s   ýr«   r�   Úfixedrz   c                 C   sH   t tdƒtjd�}| | }|j|d|d� t|ddd�}t ||¡ d S )Nr5   rž   r_   ©r   r�   r2   r†   )r	   r   rG   Úfloat64r   r   rQ   rY   )r"   r�   r#   Úseriesr$   r[   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 s)w   Y  t ||¡ d S )N)g      ð?r   rl   )z
2015-01-01z
2015-01-02z
2015-01-05r+   )r9   r,   r^   r_   rf   z*periodindex_0.20.1_x86_64_darwin_2.7.13.h5r2   r`   Úp)r   ÚpdÚPeriodIndexr   rQ   rs   rx   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 s,w   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   Nr_   rz   r­   zfuture.infer_stringTr2   r†   )Úna_valuerž   )rw   r;   )r   r   r²   Úoption_contextr   ÚStringDtyperG   rW   r   rQ   rs   )r"   r#   r%   r$   r[   r\   r&   r&   r'   Útest_read_infer_string•  s   ÿ
ýr¸   )9Ú
contextlibr   Úpathlibr   rN   ÚnumpyrG   r   Úpandas._libs.tslibsr   Úpandas.compatr   Úpandasr²   r   r   r   r	   r
   rQ   r   r   Úpandas.tests.io.pytables.commonr   r   Úpandas.utilr   ÚtdÚpandas.io.pytablesr   ÚmarkÚ
single_cpuÚ
pytestmarkr(   r1   r4   r]   rd   Úskipifrj   ru   ry   r{   r�   r’   r—   r›   r¡   r£   r§   Ú
skip_if_nor«   Úparametrizer°   Úfilterwarningsr´   r¸   r&   r&   r&   r'   Ú<module>   sL    $	
R
	



