
    [6g3                     x   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        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 Z0d Z1 ej2        d          d             Z3ej        4                    ddd g          d!             Z5ej        6                    d"          ej        6                    d#          d$                         Z7d% 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                 J   | |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key 'No object named k2 in the file'matchk2)r   rangeto_hdfpytestraisesKeyErrorr   tmp_path
setup_pathpathdfs       a/var/www/surfInsights/venv3-11/lib/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IIdI	x'I	J	J	J  t              
 IIdI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   r   zlist index out of ranger   r   stop)r   r   r    r!   
IndexErrorr   r#   s       r(   !test_read_index_error_close_storer3   .   s    j D	"%%R	0	0	0BIIdI	z)C	D	D	D % %t!$$$$% % % % % % % % % % % % % % %
 IIdIs   A++A/2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   r   rr   r   r   )r   r   r   r   r    r!   r"   r   )r$   r%   r&   r'   stores        r(   "test_read_missing_key_opened_storer7   <   sA   j D	qa11	2	2BIIdI	$		 ]8+MNNN 	" 	"UD!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"
 	                 s6   B:5BB:B	B:B	B::B>B>c           	      Z   t          t          j                            d                              d          t          t          d          t                    t          ddd          	          }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                   t1          |t,                    sJ t!          j        d          }t          j        t2          |          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   )
      ABCDdtypez
2000-01-01r9   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_columnsr:      df3)startr0   )rJ   r1   r+   df4T)r   nprandomdefault_rngstandard_normalr	   listobjectr   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'   r6   msgresultrF   rI   rL   expecteds	            r(   test_read_columnrd   K   s   	
	a  0099d6ll&111r<<<
 
 
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   ,V /CV C	V C	AV  E7V E	V 
E	2V =F#V #F'	'V *F'	+BV ;IV I"	"V %I"	&L-V  V$'V$c                     t           | ddd          d          5 }|d         }d d d            n# 1 swxY w Y   t          |t                    sJ d S )Niodatazlegacy_hdf/pytables_native.h5r5   modezdetector/readout)r   r[   r   )datapathr6   d2s      r(   test_pytables_native_readrl      s    	v>??c
 
 
 '	%&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' b)$$$$$$$s   	266z#native2 read fails oddly on windows)reasonc                     t           | dddd          d          5 }t          |           |d         }d d d            n# 1 swxY w Y   t          |t                    sJ d S )Nrf   rg   
legacy_hdfzpytables_native2.h5r5   rh   detector)r   strr[   r   )rj   r6   d1s      r(   test_pytables_native2_readrs      s    	v|-BCC#
 
 
 	E


:	              
 b)$$$$$$$s   AA	Ac                    t           | dddd          d          5 }|                    d          }d d d            n# 1 swxY w Y   t          g dgg d	t          d
gd                    }t	          j        ||           d S )Nrf   rg   ro   zlegacy_table_fixed_py2.h5r5   rh   r'   )   r      D)r,   r-   Crw   ABC
INDEX_NAME)namer@   )r   selectr   r	   rX   assert_frame_equalrj   r6   rb   rc   s       r(   'test_legacy_table_fixed_format_read_py2r      s     
v|-HIIPS
 
 
 $	d##$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 	$$$UG,///  H
 (F+++++   A  AAc                 &   t          t          d          ggdgt          dg          d          }t           | dddd	          d
          5 }|                    d          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nz2020-02-06T18:00r,   datezM8[ns])rA   r/   r=   rf   rg   ro   z"legacy_table_fixed_datetime_py2.h5r5   rh   r'   )r   r   r	   r   r|   rX   r}   rj   rc   r6   rb   s       r(   0test_legacy_table_fixed_format_read_datetime_py2r      s     
&
'
'	()VHoo	  H 
v|-QRR
 
 
 $ 
d##	$ $ $ $ $ $ $ $ $ $ $ $ $ $ $
 (F+++++s   A11A58A5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 )Nrf   rg   ro   zlegacy_table_py2.h5r5   rh   tabler   r   r   rv   r   )r   r|   r   rX   r}   r~   s       r(   test_legacy_table_read_py2r      s     
v|-BCC#
 
 
 '	g&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 SzA7788H(F+++++r   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/   rA   lettersETkeysrT   r'   wr   ri   r5   rh   )r   rM   rN   rO   rQ   r/   r{   	set_indexr   r   r   rX   r}   is_open)r$   r%   r'   r&   directr6   indirects          r(   test_read_hdf_open_storer      sC    

	a  ''//6llW
 
 
B
 BHM	3t	,	,Bj DIId3I'''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   ru   r   rv   r   r   r'   r   r   r   ri   format)r   rM   rN   rO   rQ   r   r   r/   _databaserX   r}   )r$   r%   r'   r&   rF   s        r(   test_read_hdf_index_not_viewr      s     

	a  ''//llW
 
 
B j DIId3wI777
4

C9?'''"c"""""    c                 v   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          |                                          }d d d            n# 1 swxY w Y   t!          j        ||           d S )Nr   r   r   r   r   r   r   Tr   r'   r   tr   )iterator)r   rM   rN   rO   rQ   r/   r{   r   r   r   r   r6   r[   r   next__iter__rX   r}   )r$   r%   r'   r&   r   r   r   s          r(   test_read_hdf_iteratorr     s_   	
	a  ''//6llW
 
 
B
 BHM	3t	,	,Bj DIId3sI333dD!!FdT222H		 	  - -(M22222))++,,- - - - - - - - - - - - - - - &(+++++s   9DD D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   rF   ?key must be provided when HDF5 file contains multiple datasets.r   )r   rM   rN   rO   rQ   r   r   rX   r}   r    r!   r\   r$   r%   r'   r&   rereadra   s         r(   test_read_nokeyr     s,   	
	a  ''//6llW
 
 
B j DIId3I'''d^^F"f%%%IIdCI(((
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categoryr<   )icr'   r   r   r   rF   r   r   )r   r   r
   rQ   r   r   rX   r}   r    r!   r\   r   s         r(   test_read_nokey_tabler   )  s   	qtG}}J(O(O(OPP	Q	QBj DIId3wI777d^^F"f%%%IIdCI888
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   closerU   rV   r    r!   r\   r   )r$   r%   r&   r6   ra   s        r(   test_read_nokey_emptyr   8  s    j DTNNE	KKMMM
)	' C 
z	-	-	-                   s   A55A9<A9c                 b   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   )
r   rM   rN   rO   rQ   r   r   r   rX   r}   )r$   r%   rc   filenamepath_objactuals         r(   test_read_from_pathlib_pathr   D  s    
	a  ''//6llW  H
 *$HH~~HOOH$SO111hD)))F(F+++++r   zpy.pathc                 f   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   r   )py.pathr   r   rM   rN   rO   rQ   r   r   rX   r}   )r$   r%   	LocalPathrc   r   r   r   s          r(   test_read_from_py_localpathr   T  s     +*****
	a  ''//6llW  H
 *$Hy""HOOH$SO111hD)))F(F+++++r   r   fixedr   c                     t          t          d          t          j                  }| |z  }|                    |d|           t          |dd          }t          j        ||           d S )Nr9   r<   rg   r   r   r5   r   )r
   r   rM   float64r   r   rX   r`   )r$   r   r%   seriesr&   rb   s         r(   test_read_hdf_series_mode_rr   g  sm    
 E"IIRZ000F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         }d d d            n# 1 swxY w Y   t	          j        ||           d S )N)g      ?r   rv   )z
2015-01-01z
2015-01-02z
2015-01-05r-   )r?   r.   rf   rg   ro   z*periodindex_0.20.1_x86_64_darwin_2.7.13.h5r5   rh   p)r   pdPeriodIndexr   rX   r}   r   s       r(   test_read_py2_hdf_file_in_py3r   s  s     nGGGcRRR  H
 
&,(T	
 	
 	
 
 
 
 
s               &(+++++s   	AA #A 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   Nrg   r   r   zfuture.infer_stringTr5   r   zstring[pyarrow_numpy]r<   )r=   rA   )
r    importorskipr   r   r   option_contextr   r	   rX   r}   )r$   r%   r'   r&   rb   rc   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=)9
contextlibr   pathlibr   rU   numpyrM   r    pandas._libs.tslibsr   pandas.compatr   pandasr   r   r   r	   r
   r   rX   r   r   pandas.tests.io.pytables.commonr   r   pandas.utilr   tdpandas.io.pytablesr   mark
single_cpu
pytestmarkr)   r3   r7   rd   rl   skipifrs   r   r   r   r   r   r   r   r   r   r   
skip_if_nor   parametrizer   filterwarningsr   r    r   r(   <module>r      s
               				      ) ) ) ) ) ) - - - - - -                             / . . . . . , , , , , ,[#
      O1 O1 O1d% % % ''))2WXX% % YX%, , ,, , ,"	, 	, 	,  (# # #$, , ,&  *  	 	 	, , ,  y, , ,$ GW#566+ + 76+ WXXRSS, , TS YX,4, , , , ,r   