
    o[we2                     t   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
 Z d Z!d Z"d Z#d Z$ej        %                     e            d          d             Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0 ej1        d          d             Z2ej        3                    ddd g          d!             Z4ej        5                    d"          ej        5                    d#          d$                         Z6d% Z7dS )&    )closing)PathN)	Timestamp)is_platform_windows)	DataFrameHDFStoreIndexSeries_testingread_hdf)_maybe_removeensure_clean_store)_test_decorators)TableIteratorc                 F   | |z  }t          t          d          t          d          d          }|                    |d           t          j        t
          d          5  t          |d           d d d            n# 1 swxY w Y   |                    |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dfs       Blib/python3.11/site-packages/pandas/tests/io/pytables/test_read.py!test_read_missing_key_close_storer&      s    j D	qa11	2	2BIIdD	x'I	J	J	J  t              
 IIdDs   #B  BBc                    | |z  }t          g g dg           }|                    |d           t          j        t          d          5  t          |dd           d d d            n# 1 swxY w Y   |                    |d           d S )NABindexr   zlist index out of ranger   r   stop)r   r   r   r   
IndexErrorr   r    s       r%   !test_read_index_error_close_storer0   -   s    j D	"%%R	0	0	0BIIdD	z)C	D	D	D % %t!$$$$% % % % % % % % % % % % % % %
 IIdDs   A**A.1A.c                    | |z  }t          t          d          t          d          d          }|                    |d           t          |d          5 }t	          j        t          d          5  t          |d           d d d            n# 1 swxY w Y   t          |d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   rr   r   r   )r   r   r   r   r   r   r   r   )r!   r"   r#   r$   stores        r%   "test_read_missing_key_opened_storer4   ;   s?   j D	qa11	2	2BIIdD	$		 ]8+MNNN 	" 	"UD!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"
 	                 s6   B94BB9B	B9B	B99B= B=c                 
   t          j                    }t          |           5 }t          |d           t	          j        t          d          5  |                    dd           d d d            n# 1 swxY w Y   |                    d|           t	          j        t          t          j
        d                    5  |                    dd           d d d            n# 1 swxY w Y   t          j
        d          }t	          j        t          |          5  |                    dddg	           d d d            n# 1 swxY w Y   |                    dd          }t          j        |j        t          |j                  j                   t!          |t                    sJ t          j
        d
          }t	          j        t"          |          5  |                    dd           d d d            n# 1 swxY w Y   |                                }d|d<   |                    d|dg           |                    dd          }t          j        |j        |d         j                   |                                }d|d<   t&          j        |j        |j        dd         df<   |                    d|dg           |                    dd          }t          j        |j        |d         j                   |                    ddd          }t          j        |j        |d         j        dd                     |                    ddd          }t          j        |j        |d         j        dd                     |                    ddd          }t          j        |j        |d         j        d d                    |                    ddd          }t          j        |j        |d         j        d d                    |                    dddd          }t          j        |j        |d         j        dd                    |                    dddd          }t          j        |j        |d         j        dd                    t-          t&          j                            d                              d          dd          }|                    d|d           |d         }|                    dd          }t          j        ||           d d d            d S # 1 swxY w Y   d S )Nr$   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_columns      df3r   )startr-   )r?   r.   
   r(   df4Tr*   )tmmakeTimeDataFramer   r   r   r   r   select_columnappendreescape	TypeErrorassert_almost_equalvaluesr
   r,   
isinstance
ValueErrorcopynpnanlocr   randomdefault_rngstandard_normalassert_series_equal)	r"   r$   r3   msgresultr:   r>   rB   expecteds	            r%   test_read_columnrY   J   sF   				B	J	'	' H15eT"""
 ]8+KLLL 	/ 	/g...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	T2]BI&MNN
 
 
 	- 	- e,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-
 iTUU]9C000 	B 	Bgi[AAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B $$T733
v}fRX.>.>.EFFF&&))))) i'
 
 ]:S111 	8 	8&6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 ggiiHUCxj999$$UH55
v}c(m.BCCC ggiiH,.F	!A#()UCxj999$$UH55
v}c(m.BCCC $$UHA$>>
v}c(m.B122.FGGG$$UHB$??
v}c(m.B233.GHHH$$UH1$==
v}c(m.B2A2.FGGG$$UH2$>>
v}c(m.B3B3.GHHH$$UHAB$GG
v}c(m.B1R4.HIII$$UHBQ$GG
v}c(m.B2a4.HIII bi33A66FFrJJQVWWXXUCd333s8$$UC00
vx000QH1 H1 H1 H1 H1 H1 H1 H1 H1 H1 H1 H1 H1 H1 H1 H1 H1 H1s   ,U A2&U 2A6	6U 9A6	:AU  C#U #C'	'U *C'	+2U E7U E	U 
E	BU G>2U >H	U H	L-U  UUc                     t           | ddd          d          5 }|d         }t          |t                    sJ 	 d d d            d S # 1 swxY w Y   d S )Niodatazlegacy_hdf/pytables_native.h5r2   modezdetector/readout)r   rL   r   )datapathr3   d2s      r%   test_pytables_native_readra      s    	v>??c
 
 
 )	%&"i((((((	) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s    AAAz#native2 read fails oddly on windows)reasonc                     t           | dddd          d          5 }t          |           |d         }t          |t                    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr[   r\   
legacy_hdfzpytables_native2.h5r2   r]   detector)r   strrL   r   )r_   r3   d1s      r%   test_pytables_native2_readrh      s    	v|-BCC#
 
 
 )	E


:"i(((((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   /AA"Ac           	         t           | dddd          d          5 }|                    d          }t          g dgg d	t          d
gd                    }t	          j        ||           d d d            d S # 1 swxY w Y   d S )Nr[   r\   rd   zlegacy_table_fixed_py2.h5r2   r]   r$   )   r      D)r)   r*   Crl   ABC
INDEX_NAME)namecolumnsr,   )r   selectr   r	   rC   assert_frame_equalr_   r3   rW   rX   s       r%   'test_legacy_table_fixed_format_read_py2rv      s     
v|-HIIPS
 
 
 	0	d##^^(((l333
 
 

 	h///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   AA==BBc                 &   t           | dddd          d          5 }|                    d          }t          t          d          ggd	gt	          d
g                    }t          j        ||           d d d            d S # 1 swxY w Y   d S )Nr[   r\   rd   z"legacy_table_fixed_datetime_py2.h5r2   r]   r$   z2020-02-06T18:00r)   daterq   )r   rs   r   r   r	   rC   rt   ru   s       r%   0test_legacy_table_fixed_format_read_datetime_py2ry      s     
v|-QRR
 
 
 
0 
d##*++,-E//
 
 

 	h///
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0 
0s   ABB
B
c                     t           | dddd          d          5 }|                    d          }d d d            n# 1 swxY w Y   t          dd	gd
dgd          }t          j        ||           d S )Nr[   r\   rd   zlegacy_table_py2.h5r2   r]   tabler   r   r   rk   r   )r   rs   r   rC   rt   ru   s       r%   test_legacy_table_read_py2r|      s     
v|-BCC#
 
 
 '	g&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 SzA7788H(F+++++s   A  AAc                    t          t          j                            d                              d          t	          d          t	          d                    }d|j        _        |                    dd	          }| |z  }|                    |d
d           t          |d
          }t          |d          5 }t          |d
          }t          j        ||           |j        sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   r<      abcdABCDEr,   rr   lettersETkeysrF   r$   wr]   r2   )r   rO   rR   rS   listr,   rp   	set_indexr   r   r   rC   rt   is_open)r!   r"   r$   r#   directr3   indirects          r%   test_read_hdf_open_storer      sC    

	a  ''//6llW
 
 
B
 BHM	3t	,	,Bj DIIdDsI###dD!!F	$S	!	!	! UE4((
fh///}                 s   >/C;;C?C?c                 T   t          t          j                            d                              d          g dt	          d                    }| |z  }|                    |ddd	           t          |d          }|j        j        j	        J t          j        ||           d S )
Nr   r~   )r   rj   r   rk   r   r   r$   r   r{   r^   format)r   rO   rR   rS   r   r   r   r,   _databaserC   rt   )r!   r"   r$   r#   r:   s        r%   test_read_hdf_index_not_viewr      s     

	a  ''//llW
 
 
B j DIIdDs7I333
4

C9?'''"c"""""    c                 x   t          t          j                            d                              d          t	          d          t	          d                    }d|j        _        |                    dd	          }| |z  }|                    |d
dd           t          |d
          }t          |d
d          }t          |j                  5  t          |t                    sJ t          |                                          }t!          j        ||           d d d            d S # 1 swxY w Y   d S )Nr   r~   r   r   r   r   r   Tr   r$   r   tr   )iterator)r   rO   rR   rS   r   r,   rp   r   r   r   r   r3   rL   r   next__iter__rC   rt   )r!   r"   r$   r#   r   r   r   s          r%   test_read_hdf_iteratorr      sf   	
	a  ''//6llW
 
 
B
 BHM	3t	,	,Bj DIIdDs3I///dD!!FdT222H		 	  0 0(M22222))++,,
fh///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   AD//D36D3c                    t          t          j                            d                              d          t	          d          t	          d                    }| |z  }|                    |dd           t          |          }t          j        ||           |                    |d	d           d
}t          j
        t          |          5  t          |           d d d            d S # 1 swxY w Y   d S )Nr   r~   r   r   r   r$   r   r]   r:   ?key must be provided when HDF5 file contains multiple datasets.r   )r   rO   rR   rS   r   r   r   rC   rt   r   r   rM   r!   r"   r$   r#   rereadrV   s         r%   test_read_nokeyr     s,   	
	a  ''//6llW
 
 
B j DIIdDsI###d^^F"f%%%IIdEI$$$
KC	z	-	-	-                   s   C00C47C4c                    t          t          d          t          t          d          d          d          }| |z  }|                    |ddd	           t          |          }t          j        ||           |                    |d
dd	           d}t          j	        t          |          5  t          |           d d d            d S # 1 swxY w Y   d S )Nr   abacdcategorydtype)icr$   r   r{   r   r:   r   r   )r   r   r
   r   r   r   rC   rt   r   r   rM   r   s         r%   test_read_nokey_tabler   #  s   	qtG}}J(O(O(OPP	Q	QBj DIIdDs7I333d^^F"f%%%IIdEGI444
KC	z	-	-	-                   s   4CCCc                    | |z  }t          |          }|                                 t          j        d          }t	          j        t          |          5  t          |           d d d            d S # 1 swxY w Y   d S )Nz]Dataset(s) incompatible with Pandas data types, not table, or no datasets found in HDF5 file.r   )r   closerG   rH   r   r   rM   r   )r!   r"   r#   r3   rV   s        r%   test_read_nokey_emptyr   2  s    j DTNNE	KKMMM
)	' C 
z	-	-	-                   s   A55A9<A9c                 `   t          t          j                            d                              d          t	          d          t	          d                    }| |z  }t          |          }|                    |dd           t          |d          }t          j	        ||           d S )	Nr   r~   r   r   r   r$   r   r]   )
r   rO   rR   rS   r   r   r   r   rC   rt   )r!   r"   rX   filenamepath_objactuals         r%   test_read_from_pathlib_pathr   >  s    
	a  ''//6llW  H
 *$HH~~HOOHdO---h%%F(F+++++r   zpy.pathc                 d   ddl m} t          t          j                            d                              d          t          d          t          d                    }| |z  } ||          }|                    |dd	
           t          |d          }t          j
        ||           d S )Nr   )localr   r~   r   r   r   r$   r   r]   )py.pathr   r   rO   rR   rS   r   r   r   rC   rt   )r!   r"   	LocalPathrX   r   r   r   s          r%   test_read_from_py_localpathr   N  s     +*****
	a  ''//6llW  H
 *$Hy""HOOHdO---h%%F(F+++++r   r   fixedr{   c                     t          j                    }| |z  }|                    |d|           t          |dd          }t          j        ||           d S )Nr\   keyr   r2   r   r^   )rC   makeFloatSeriesr   r   rU   )r!   r   r"   seriesr#   rW   s         r%   test_read_hdf_series_mode_rr   a  sa    
 !!Fj D
MM$F6M222dS111F66*****r   z8ignore:Period with BDay freq is deprecated:FutureWarningz3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                     t          g dt          j        g dd                    }t           | dddd	          d
          5 }|d         }t	          j        ||           d d d            d S # 1 swxY w Y   d S )N)g      ?r   rk   )z
2015-01-01z
2015-01-02z
2015-01-05r*   )freqr+   r[   r\   rd   z*periodindex_0.20.1_x86_64_darwin_2.7.13.h5r2   r]   p)r   pdPeriodIndexr   rC   rt   )r_   rX   r3   rW   s       r%   test_read_py2_hdf_file_in_py3r   m  s     nGGGcRRR  H
 
&,(T	
 	
 	
 
 
 0
 
s
fh///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   A22A69A6c                    t          j        d           t          dg di          }| |z  }|                    |dd           t	          j        dd          5  t          |dd	
          }d d d            n# 1 swxY w Y   t          dg didt          dgd                    }t          j	        ||           d S )Npyarrowr   )r   r   Nr\   r{   r   zfuture.infer_stringTr2   r   zstring[pyarrow_numpy]r   )r   rr   )
r   importorskipr   r   r   option_contextr   r	   rC   rt   )r!   r"   r$   r#   rW   rX   s         r%   test_read_infer_stringr     s   
	"""	C)))*	+	+Bj DIIdwI///		0$	7	7 6 6$F5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6	%se#:;;;  H
 &(+++++s   A99A= A=)8
contextlibr   pathlibr   rG   numpyrO   r   pandas._libs.tslibsr   pandas.compatr   pandasr   r   r   r	   r
   r   rC   r   pandas.tests.io.pytables.commonr   r   pandas.utilr   tdpandas.io.pytablesr   mark
single_cpu
pytestmarkr&   r0   r4   rY   ra   skipifrh   rv   ry   r|   r   r   r   r   r   r   r   
skip_if_nor   parametrizer   filterwarningsr   r    r   r%   <module>r      s                				      ) ) ) ) ) ) - - - - - -                           / . . . . . , , , , , ,[#
      K1 K1 K1\) ) ) ''))2WXX) ) YX)0 0 00 0 0 	, 	, 	,  (# # #$0 0 0&  *  	 	 	, , ,  y, , ,$ GW#566+ + 76+ WXXRSS0 0 TS YX04, , , , ,r   