o
    �¨Êh´   ã                	   @   s  d dl Z d dlmZ d dlZd dlZd dlZd dlmZm	Z	m
Z
mZmZmZmZmZ d dlmZ d dlmZmZ ejjZdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zej deddddd�ee dƒƒg¡dd„ ƒZ!dd„ Z"dd„ Z#dd „ Z$ej d!d"d#g d$d%g¡d&d'„ ƒZ%dS )(é    N)ÚBytesIO)ÚCategoricalIndexÚ	DataFrameÚHDFStoreÚIndexÚ
MultiIndexÚ_testingÚ
date_rangeÚread_hdf)Úensure_clean_store)ÚTermÚ_maybe_adjust_namec              	   C   s  t dt d¡ d¡ ttdƒtd�tdd„ tdƒD ƒtd�d	�}t| ƒ�Y}| 	d
|¡ d}t
jt|d�� |jd
dgd� W d   ƒ n1 sGw   Y  d}t
jt|d�� |jd
dgd� W d   ƒ n1 shw   Y  W d   ƒ d S W d   ƒ d S 1 s€w   Y  d S )Nçš™™™™™ñ?éx   ©é   é   ÚABCD©Údtypec                 S   ó   g | ]}d |› �‘qS ©zi-© ©Ú.0Úir   r   úV/var/www/html/env/lib/python3.10/site-packages/pandas/tests/io/pytables/test_errors.pyÚ
<listcomp>    ó    z,test_pass_spec_to_storer.<locals>.<listcomp>r   ©ÚcolumnsÚindexÚdfzqcannot pass a column specification when reading a Fixed format store. this store must be selected in its entirety©ÚmatchÚA)r    zucannot pass a where specification when reading from a Fixed format store. this store must be selected in its entiretyz	columns=A©Úwhere)r   ÚnpÚarangeÚreshaper   ÚlistÚobjectÚranger   ÚputÚpytestÚraisesÚ	TypeErrorÚselect)Ú
setup_pathr"   ÚstoreÚmsgr   r   r   Útest_pass_spec_to_storer   s(   ý
ÿÿÿÿô"ôr6   c              	   C   sÄ   t dg d¢iƒ}t dg d¢itddd�d�}t| ƒ�>}|jd|d	d
� t d¡}tjt|d�� |jd|d	dd� W d   ƒ n1 sCw   Y  W d   ƒ d S W d   ƒ d S 1 s[w   Y  d S )NÚa)é   é   é   )r   é   é   z1/1/2000r:   ©Úperiods)r!   ÚframeÚtable©Úformatz3incompatible kind in col [integer - datetime64[ns]]r#   T)rB   Úappend)	r   r	   r   r.   ÚreÚescaper/   r0   r1   )r3   Údf1Údf2r4   r5   r   r   r   Ú$test_table_index_incompatible_dtypes3   s   

ÿý"ýrH   c              
   C   sÐ  t | ƒ�f}dt ddd¡fg}|D ]Q\}}tdt d¡ d¡ ttdƒt	d	�td
d„ t
dƒD ƒt	d	�d�}|||< t d|› d�¡}tjt|d�� | d|› �|¡ W d   ƒ n1 s]w   Y  qW d   ƒ n1 smw   Y  tdt d¡ d¡ ttdƒt	d	�tdd„ t
dƒD ƒt	d	�d�}d|d< d|d< t ddd¡|d< | ¡ }t | ƒ�3}t d¡}tjt|d�� | d|¡ W d   ƒ n1 sÉw   Y  W d   ƒ d S W d   ƒ d S 1 sáw   Y  d S )NÚdateiÑ  r8   r9   r   r   r   r   r   c                 S   r   r   r   r   r   r   r   r   G   r   z;test_unimplemented_dtypes_table_columns.<locals>.<listcomp>r   r   ú[z&] is not implemented as a table columnr#   Údf1_c                 S   r   r   r   r   r   r   r   r   R   r   ÚfooÚobj1ÚbarÚobj2Ú	datetime1zjCannot serialize the column [datetime1]
because its data contents are not [string] but [date] object dtypeÚdf_unimplemented)r   ÚdatetimerI   r   r(   r)   r*   r   r+   r,   r-   rD   rE   r/   r0   r1   rC   Ú_consolidate)r3   r4   ÚdtypesÚnÚfr"   r5   r   r   r   Ú'test_unimplemented_dtypes_table_columns>   sF   
ýÿ€øüý
ÿÿú"úrW   c              	   C   s0  t |ƒ�™}ttj d¡ d¡ttdƒtd�t	dddd�d	�}d
|d< d|j
|jdd… df< |jd|dd� t d¡}tjt|d�� tƒ  W d   ƒ n1 sPw   Y  t d¡}tjt|d�� | dd¡ W d   ƒ n1 srw   Y  d}tjt|d�� | dd¡ W d   ƒ n1 s‘w   Y  W d   ƒ n1 s w   Y  | | }ttj d¡ d¡tdƒt	ddd�d	�}|j|dddd� t|ddd� t|ddd� | | }ttj d¡ d¡tdƒt	ddd�d	�}|j|ddd � d!}tjt|d�� t|ddd� W d   ƒ d S 1 �sw   Y  d S )"Nr9   )é
   r   r   r   z
2000-01-01rX   ÚB)r>   Úfreqr   rL   ÚstringrN   r   r   r"   r@   rA   z:__init__() missing 1 required positional argument: 'where'r#   zWcannot process expression [df.index[3]], [2000-01-06 00:00:00] is not a valid conditionzdf.index[3]zinvalid syntaxzindex>Ú20130101r=   ÚdfqT)ÚkeyrB   Údata_columnsz0index>Timestamp('20130104') & columns=['A', 'B']r&   z
A>0 or C>0)r^   rB   a  The passed where expression: A>0 or C>0\n\s*contains an invalid variable reference\n\s*all of the variable references must be a reference to\n\s*an axis \(e.g. 'index' or 'columns'\), or a data_column\n\s*The currently defined references are: index,columns\n)r   r   r(   ÚrandomÚdefault_rngÚstandard_normalr   r+   r,   r	   Úlocr!   r.   rD   rE   r/   r0   r1   r   Ú
ValueErrorr2   ÚSyntaxErrorÚto_hdfr
   )Útmp_pathr3   r4   r"   r5   Úpathr]   r   r   r   Útest_invalid_termsc   s\   
ý
ÿÿÿÿ€ç
ý
ýÿ$ÿri   c           
   
   C   s  t tj d¡ d¡ƒ}t dtj d¡ d¡iƒ}t dtj d¡ d¡iƒ}t dtj d¡ d¡iƒ}t ddtftj d¡ d¡iƒ}t| ƒ�<}d}| ||¡ ||||fD ]$}t 	d	¡}	t
jt|	d
�� | ||¡ W d   ƒ n1 stw   Y  qUW d   ƒ d S 1 s…w   Y  d S )Nr9   )rX   r8   r7   rX   ©r8   r9   )Ú1r9   rk   Údf_diff_valerrorz?cannot match existing table structure for [0] on appending datar#   )r   r(   r`   ra   rb   r,   r   rC   rD   rE   r/   r0   rd   )
r3   r"   rG   Údf3Údf4Údf5r4   ÚnameÚdr5   r   r   r   Ú7test_append_with_diff_col_name_types_raises_value_error¡   s$    
ÿÿ€ü"ürr   c              	   C   s¦   t tj d¡ d¡tdƒtdƒd�}t | ¡�2}d}tjt	|d�� |j
|dd	d
� W d   ƒ n1 s4w   Y  W d   ƒ d S W d   ƒ d S 1 sLw   Y  d S )Nr9   ©r   r;   ÚabcdÚABCDE©r!   r    z)complib only supports \[.*\] compression.r#   r"   Úfoolib)r^   Úcomplib)r   r(   r`   ra   r+   ÚtmÚensure_cleanr/   r0   rd   rf   )r3   r"   rh   r5   r   r   r   Útest_invalid_complib´   s   ýÿþ"þr{   ÚidxÚ2019ÚDr:   ÚUTC)rZ   r>   ÚtzÚabcc                 C   sh   t  | | g¡}td|dgd�}|| }tjtdd�� |j|dd� W d   ƒ d S 1 s-w   Y  d S )Nr   r7   rv   zSaving a MultiIndexr#   r"   ©r^   )r   Úfrom_arraysr   r/   r0   ÚNotImplementedErrorrf   )r|   rg   r3   Úmir"   rh   r   r   r   Ú&test_to_hdf_multiindex_extension_dtypeÀ   s   	"ÿr†   c                 C   sL   | dddƒ}d}t jt|d�� t|ƒ W d   ƒ d S 1 sw   Y  d S )NÚioÚdataz"legacy_hdf/incompatible_dataset.h5z_Dataset\(s\) incompatible with Pandas data types, not table, or no datasets found in HDF5 file.r#   )r/   r0   rd   r
   )ÚdatapathÚ	data_pathÚmessager   r   r   Útest_unsuppored_hdf_file_errorÐ   s   ÿ
"ÿrŒ   c                 C   sÌ   t tj d¡ d¡tdƒtdƒd�}||  }d}tjt|d�� t|dƒ W d   ƒ n1 s/w   Y  |j	|d	d
� t
|dd�}| ¡  d}tjt|d�� t|d	ƒ W d   ƒ d S 1 s_w   Y  d S )Nr9   rs   rt   ru   rv   zFile [\S]* does not existr#   r^   r"   r‚   Úr)Úmodez&The HDFStore must be open for reading.)r   r(   r`   ra   r+   r/   r0   ÚOSErrorr
   rf   r   Úclose)r3   rg   r"   rh   r5   r4   r   r   r   Útest_read_hdf_errorsÜ   s"   ýÿ"ÿr‘   c                  C   sF   d} t jt| d�� ttdƒdƒ W d   ƒ d S 1 sw   Y  d S )Nz5Support for generic buffers has not been implemented.r#   ó    r"   )r/   r0   r„   r
   r   )r5   r   r   r   Ú#test_read_hdf_generic_buffer_errorsñ   s   "ÿr“   Úbad_versionrj   )r8   Ú12Ú123c                 C   sD   d}t jt|d�� td| d� W d   ƒ d S 1 sw   Y  d S )Nz5Version is incorrect, expected sequence of 3 integersr#   Úvalues_block_0)Úversion)r/   r0   rd   r   )r”   r5   r   r   r   Ú)test_maybe_adjust_name_bad_version_raises÷   s   "ÿr™   )&rR   r‡   r   rD   Únumpyr(   r/   Úpandasr   r   r   r   r   r   ry   r	   r
   Úpandas.tests.io.pytables.commonr   Úpandas.io.pytablesr   r   ÚmarkÚ
single_cpuÚ
pytestmarkr6   rH   rW   ri   rr   r{   Úparametrizer+   r†   rŒ   r‘   r“   r™   r   r   r   r   Ú<module>   s6    (
%>
þþ
	