
    Oh4                     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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<                  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       j/var/www/html/diagnosisapp-backend/venv/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        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(                         t/        |t*              sJ t        j                   d      }t        j                  t0        |      5  |j                  d	d       d d d        |j3                         }d|d<   |j                  d|dg       |j                  dd      }t%        j&                  |j(                  |d   j(                         |j3                         }d|d<   t        j4                  |j6                  |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%        j8                  ||       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   )
      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d6l#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2T2BU!T?4LUT"	U%T/	*U2T<	7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   rX   r   )datapathr6   d2s      r(   test_pytables_native_readri      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)Nrc   rd   
legacy_hdfzpytables_native2.h5r5   re   detector)r   strrX   r   )rg   r6   d1s      r(   test_pytables_native2_readrp      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)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|      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])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     
&
'	()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)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      sl     
v|-BC#
 '	g&'
 SzA78H(F+' 's   AA#c                 f   t        t        j                  j                  d      j                  d      t	        d      t	        d            }d|j
                  _        |j                  dd	      }| |z  }|r;d
}t        j                  t        |      5  |j                  |dd       d d d        y |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# 1 sw Y   y xY w)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 ''/6lW
B
 BHHM	3t	,Bj DM]].c: 	0IId3I/	0IId3I'dD!F	$S	! UE4(
fh/}}} 	0 s   D 1D'D$'D0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   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 ''/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   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 ''/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   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 ''/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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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   closerR   rS   r    r!   rY   r   )r$   r%   r&   r6   r^   s        r(   test_read_nokey_emptyr   >  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   rK   rL   rM   rO   r   r   r   rU   rz   )r$   r%   r`   filenamepath_objactuals         r(   test_read_from_pathlib_pathr   J  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   rK   rL   rM   rO   r   r   rU   rz   )r$   r%   	LocalPathr`   r   r   r   s          r(   test_read_from_py_localpathr   Z  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   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  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   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  sv     nnGcRH
 
&,(T	
 	
 
 
s &(+ s   A""A+c           
         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t        j
                  t        j                  
      t        dgt        j
                  t        j                  
                  }t        j                  |       y # 1 sw Y   xY w)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 6$F56	nnbff-se2>>266#BCH
 &(+6 6s   CC)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      sR     	   ) -    / ,kk$$%
O1d% ')2WX% Y%,,"	,4#$,&*	,  y, ,$ GW#56+ 7+ WXRS, T Y,4,r   