
    Owg3                     r   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<                  jM                   e       d      d        Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1 ejd                  d      d        Z3ej<                  ji                  ddd g      d!        Z5ej<                  jm                  d"      ej<                  jm                  d#      d$               Z7d% Z8y)&    )closing)PathN)	Timestamp)is_platform_windows)	DataFrameHDFStoreIndexSeries_testing
date_rangeread_hdf)_maybe_removeensure_clean_store)_test_decorators)TableIteratorc                    | |z  }t        t        d      t        d      d      }|j                  |d       t        j                  t
        d      5  t        |d       d d d        |j                  |d       y # 1 sw Y   xY w)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       Y/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/io/pytables/test_read.py!test_read_missing_key_close_storer)       ss    j D	qa1	2BIIdI	x'I	J t
 IIdI s   A==Bc                     | |z  }t        g g dg       }|j                  |d       t        j                  t        d      5  t        |dd       d d d        |j                  |d       y # 1 sw Y   xY w)	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   .   so    j D	"%R	0BIIdI	z)C	D %t!$%
 IIdI% %s   A//A8c                 F   | |z  }t        t        d      t        d      d      }|j                  |d       t        |d      5 }t	        j
                  t        d      5  t        |d       d d d        t        |d       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	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   <   s    j D	qa1	2BIIdI	$	 ]]8+MN 	"UD!	"
 	 	" 	" s$   B!B.BB	BB c           	      
   t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }t        |       5 }t        |d
       t        j                  t        d      5  |j                  d
d       d d d        |j                  d
|       t        j                  t        t!        j"                  d            5  |j                  d
d       d d d        t!        j"                  d      }t        j                  t$        |      5  |j                  d
ddg       d d d        |j                  d
d      }t'        j(                  |j*                  t-        |j.                        j*                         t1        |t,              sJ t!        j"                  d      }t        j                  t2        |      5  |j                  d
d       d d d        |j5                         }d|d<   |j                  d|dg       |j                  dd      }t'        j(                  |j*                  |d   j*                         |j5                         }d|d<   t        j6                  |j8                  |j.                  dd df<   |j                  d|dg       |j                  dd      }t'        j(                  |j*                  |d   j*                         |j                  ddd      }t'        j(                  |j*                  |d   j*                  dd         |j                  ddd      }t'        j(                  |j*                  |d   j*                  dd         |j                  ddd      }t'        j(                  |j*                  |d   j*                  d d        |j                  ddd      }t'        j(                  |j*                  |d   j*                  d d        |j                  dddd      }t'        j(                  |j*                  |d   j*                  dd        |j                  dddd      }t'        j(                  |j*                  |d   j*                  dd        t        t        j                  j                  d      j	                  d      dd      }|j                  d |d!       |d   }|j                  d d      }t'        j:                  ||       d d d        y # 1 sw Y   {xY w# 1 sw Y   -xY w# 1 sw Y   xY w# 1 sw Y   MxY w# 1 sw Y   y xY w)"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d6l&1r<
B 
J	' H15eT"
 ]]8+KL 	/g.	/ 	T2]]BII&MN
 	- e,	-
 iiTU]]9C0 	Bgi[A	B $$T73
v}}fRXX.>.E.EF&&))) ii'
 ]]:S1 	8&67	8 ggiHUCxj9$$UH5
v}}c(m.B.BC ggiH,.FF		!A()UCxj9$$UH5
v}}c(m.B.BC $$UHA$>
v}}c(m.B.B12.FG$$UHB$?
v}}c(m.B.B23.GH$$UH1$=
v}}c(m.B.B2A.FG$$UH2$>
v}}c(m.B.B3B.GH$$UHAB$G
v}}c(m.B.B1R.HI$$UHBQ$G
v}}c(m.B.B2a.HI bii33A6FFrJQVWXUCd3s8$$UC0
vx0QH1 H1	/ 	/
	- 	-	B 	B	8 	8=H1 H1so   *(UT%AU-T+ 8U8T8BU'U:LUT(	#U+T5	0U8U	=UU	
UUc                     t         | ddd      d      5 }|d   }d d d        t        t              sJ y # 1 sw Y   xY w)Niodatazlegacy_hdf/pytables_native.h5r5   modezdetector/readout)r   r[   r   )datapathr6   d2s      r(   test_pytables_native_readrl      sN    	v>?c
 '	%&' b)$$$	' 's	   7A z#native2 read fails oddly on windows)reasonc                     t         | dddd      d      5 }t        |       |d   }d d d        t        t              sJ y # 1 sw Y   xY w)Nrf   rg   
legacy_hdfzpytables_native2.h5r5   rh   detector)r   strr[   r   )rj   r6   d1s      r(   test_pytables_native2_readrs      sV    	v|-BC#
 	E
:	
 b)$$$ s   AAc                     t         | dddd      d      5 }|j                  d      }d d d        t        g dgg d	t        d
gd            }t	        j
                  |       y # 1 sw Y   ?xY w)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      sw     
v|-HIPS
 $	d#$ 	$UG,/H
 (F+$ $s   A''A0c                     t        t        d      ggdgt        dg      d      }t         | dddd	      d
      5 }|j	                  d      }d d d        t        j                  |       y # 1 sw Y    xY w)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     
&
'	()VHo	H 
v|-QR
 $ 
d#	$
 (F+$ $s   A--A6c                     t         | dddd      d      5 }|j                  d      }d d d        t        dd	gd
dgd      }t        j                  |       y # 1 sw Y   2xY w)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      sl     
v|-BC#
 '	g&'
 SzA78H(F+' 's   AA#c                    t        t        j                  j                  d      j                  d      t	        d      t	        d            }d|j
                  _        |j                  dd	      }| |z  }|j                  |d
d       t        |d
      }t        |d      5 }t        |d
      }t        j                  ||       |j                  sJ 	 d d d        y # 1 sw Y   y xY w)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      s     

		a ''/6lW
B
 BHHM	3t	,Bj DIId3I'dD!F	$S	! UE4(
fh/}}}  s   #1CC'c                 J   t        t        j                  j                  d      j                  d      g dt	        d            }| |z  }|j                  |ddd	       t        |d      }|j                  j                  j                  J t        j                  ||       y )
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 ''/W
B j DIId3wI7
4
C99??'''"c"    c                 "   t        t        j                  j                  d      j                  d      t	        d      t	        d            }d|j
                  _        |j                  dd	      }| |z  }|j                  |d
dd       t        |d
      }t        |d
d      }t        |j                        5  t        |t              sJ t        |j                               }d d d        t!        j"                  |       y # 1 sw Y    xY w)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 ''/6lW
B
 BHHM	3t	,Bj DIId3sI3dD!FdT2H		  -(M222))+,- &(+- -s   :,DDc                    t        t        j                  j                  d      j                  d      t	        d      t	        d            }| |z  }|j                  |dd       t        |      }t        j                  ||       |j                  |d	d       d
}t        j                  t        |      5  t        |       d d d        y # 1 sw Y   y xY w)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 ''/6lW
B j DIId3I'd^F"f%IIdCI(
KC	z	-   s   8CCc                 t   t        t        d      t        t        d      d      d      }| |z  }|j	                  |ddd	       t        |      }t        j                  ||       |j	                  |d
dd	       d}t        j                  t        |      5  t        |       d d d        y # 1 sw Y   y xY w)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P	QBj DIId3wI7d^F"f%IIdCI8
KC	z	-   s   B..B7c                     | |z  }t        |      }|j                          t        j                  d      }t	        j
                  t        |      5  t        |       d d d        y # 1 sw Y   y xY w)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TNE	KKM
))	'C 
z	-   s   A&&A/c                 *   t        t        j                  j                  d      j                  d      t	        d      t	        d            }| |z  }t        |      }|j                  |dd       t        |d	      }t        j                  ||       y )
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  sz    
		a ''/6lWH
 *$HH~HOOH$SO1hD)F(F+r   zpy.pathc                 0   ddl m} t        t        j                  j                  d      j	                  d      t        d      t        d            }| |z  } ||      }|j                  |dd	
       t        |d      }t        j                  ||       y )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 ''/6lWH
 *$H"HOOH$SO1hD)F(F+r   r   fixedr   c                     t        t        d      t        j                        }| |z  }|j	                  |d|       t        |dd      }t        j                  ||       y )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  sR    
 E"IRZZ0Fj D
MM$F6M2dS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        t	        j
                  |       y # 1 sw Y    xY w)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  sv     nnGcRH
 
&,(T	
 	
 
 
s &(+ s   A""A+c                 X   t        j                  d       t        dg di      }| |z  }|j                  |dd       t	        j
                  dd      5  t        |dd	
      }d d d        t        dg didt        dgd            }t        j                  |       y # 1 sw Y   >xY w)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 6$F56	%se#:;H
 &(+6 6s   B  B))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      sO     	   ) -    / ,[[##
O1d% ')2WX% Y%,,"	,(#$,&*	,  y, ,$ GW#56+ 7+ WXRS, T Y,4,r   