
    bMh4                     z   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
 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       b/var/www/html/test/jupyter/venv/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           	      L   t          t          j                            d                              d          t          t          d                    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                   t/          |t*                    sJ t          j        d          }t          j        t0          |          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   )
      ABCDz
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   )rH   r1   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'   r6   msgresultrD   rG   rJ   expecteds	            r(   test_read_columnra   K   s   	
	a  0099d6ll##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D<0V<E 	 VE 	2V6FVF 	 V#F 	$BV4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   rX   r   )datapathr6   d2s      r(   test_pytables_native_readri      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 )Nrc   rd   
legacy_hdfzpytables_native2.h5r5   re   detector)r   strrX   r   )rg   r6   d1s      r(   test_pytables_native2_readrp      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 )Nrc   rd   rl   zlegacy_table_fixed_py2.h5r5   re   r'   )   r      D)r,   r-   Crt   ABC
INDEX_NAME)namer>   )r   selectr   r	   rU   assert_frame_equalrg   r6   r_   r`   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])r?   r/   dtyperc   rd   rl   z"legacy_table_fixed_datetime_py2.h5r5   re   r'   )r   r   r	   r   ry   rU   rz   rg   r`   r6   r_   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 )Nrc   rd   rl   zlegacy_table_py2.h5r5   re   tabler   r   r   rs   r   )r   ry   r   rU   rz   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  }|rOd
}t          j	        t          |          5  |                    |dd           d d d            n# 1 swxY w Y   d S |                    |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/   r?   lettersETkeysrQ   z=Saving a MultiIndex with an extension dtype is not supported.r   r'   wr   rf   r5   re   )r   rK   rL   rM   rO   r/   rx   	set_indexr    r!   NotImplementedErrorr   r   r   rU   rz   is_open)	r$   r%   using_infer_stringr'   r&   r^   directr6   indirects	            r(   test_read_hdf_open_storer      s    

	a  ''//6llW
 
 
B
 BHM	3t	,	,Bj D M].c::: 	0 	0IId3I///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0IId3I'''dD!!F	$S	!	!	! UE4((
fh///}                 s$   $C		CC/EEE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   rr   r   rs   r   r   r'   r   r   r   rf   format)r   rK   rL   rM   rO   r   r   r/   _databaserU   rz   )r$   r%   r'   r&   rD   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   rK   rL   rM   rO   r/   rx   r   r   r   r   r6   rX   r   next__iter__rU   rz   )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   rD   ?key must be provided when HDF5 file contains multiple datasets.r   )r   rK   rL   rM   rO   r   r   rU   rz   r    r!   rY   r$   r%   r'   r&   rereadr^   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categoryr   )icr'   r   r   r   rD   r   r   )r   r   r
   rO   r   r   rU   rz   r    r!   rY   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   closerR   rS   r    r!   rY   r   )r$   r%   r&   r6   r^   s        r(   test_read_nokey_emptyr   >  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   rK   rL   rM   rO   r   r   r   rU   rz   )r$   r%   r`   filenamepath_objactuals         r(   test_read_from_pathlib_pathr   J  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   rK   rL   rM   rO   r   r   rU   rz   )r$   r%   	LocalPathr`   r   r   r   s          r(   test_read_from_py_localpathr   Z  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   rd   r   r   r5   r   )r
   r   rK   float64r   r   rU   r]   )r$   r   r%   seriesr&   r_   s         r(   test_read_hdf_series_mode_rr   m  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   rs   )z
2015-01-01z
2015-01-02z
2015-01-05r-   )r=   r.   rc   rd   rl   z*periodindex_0.20.1_x86_64_darwin_2.7.13.h5r5   re   p)r   pdPeriodIndexr   rU   rz   r   s       r(   test_read_py2_hdf_file_in_py3r   y  s     nGGGcRRR  H
 
&,(T	
 	
 	
 
 
 
 
s               &(+++++s   	AA #A c           
         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t          j        t          j        
          t          dgt          j        t          j        
                              }t          j
        ||           d S )Nr   )r   r   Nrd   r   r   zfuture.infer_stringTr5   r   )na_valuer   )r   r?   )r   r   r   option_contextr   StringDtyperK   r[   r	   rU   rz   )r$   r%   r'   r&   r_   r`   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	nbf---se2>26#B#B#BCCC  H
 &(+++++s   A%%A),A))9
contextlibr   pathlibr   rR   numpyrK   r    pandas._libs.tslibsr   pandas.compatr   pandasr   r   r   r	   r
   r   rU   r   r   pandas.tests.io.pytables.commonr   r   pandas.utilr   tdpandas.io.pytablesr   mark
single_cpu
pytestmarkr)   r3   r7   ra   ri   skipifrp   r|   r   r   r   r   r   r   r   r   r   
skip_if_nor   parametrizer   filterwarningsr   r    r   r(   <module>r      s               				      ) ) ) ) ) ) - - - - - -                             / . . . . . , , , , , ,k$%
      O1 O1 O1d% % % ''))2WXX% % YX%, , ,, , ,"	, 	, 	,  4# # #$, , ,&  *  	 	 	, , ,  y, , ,$ GW#566+ + 76+ WXXRSS, , TS YX,4, , , , ,r   