
    i              
          d dl Z d dlmZ d dlZd dlZd dl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 ej&                  j(                  gZd Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zej&                  j?                  d eddddd       e	 e d            g      d        Z!d Z"d Z#d Z$ej&                  j?                  dddg ddg      d        Z%y)     N)BytesIO)CategoricalIndex	DataFrameHDFStoreIndex
MultiIndex
date_rangeread_hdf)Term_maybe_adjust_namec                 2   t        dt        j                  d      j                  d      z  t	        t        d      t              t	        t        d      D cg c]  }d| 	 c}t                    }| j                  d	|       d
}t        j                  t        |      5  | j                  d	dg       d d d        d}t        j                  t        |      5  | j                  d	dg       d d d        y c c}w # 1 sw Y   IxY w# 1 sw Y   y xY w)N皙?x         ABCDdtyper   i-columnsindexdfzqcannot pass a column specification when reading a Fixed format store. this store must be selected in its entiretymatchA)r   zucannot pass a where specification when reading from a Fixed format store. this store must be selected in its entiretyz	columns=Awhere)r   nparangereshaper   listobjectrangeputpytestraises	TypeErrorselecttemp_hdfstoreir   msgs       a/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/io/pytables/test_errors.pytest_pass_spec_to_storerr0      s    	biin$$W--d6l&1uRy1!r!X1@
B dB	=  
y	, 2TC512	D  
y	, 8T+78 8 22 28 8s   C<$DDD
Dc                 8   t        dg di      }t        dg dit        ddd            }| j                  d	|d
       t        j                  d      }t        j                  t        |      5  | j                  d	|d
d       d d d        y # 1 sw Y   y xY w)Na)         )r         z1/1/2000r5   nsperiodsunit)r   frametableformatz3incompatible kind in col [integer - datetime64[ns]]r   T)r?   append)r   r	   r&   reescaper'   r(   r)   )r,   df1df2r.   s       r/   $test_table_index_incompatible_dtypesrE   1   s    
S)$
%C
	i
:qt LC gs73
))I
JC	y	, E'3wtDE E Es   1BBc                    dt        j                  ddd      fg}|D ]  \  }}t        dt        j                  d      j                  d      z  t        t        d      t        	      t        t        d
      D cg c]  }d| 	 c}t        	            }|||<   t        j                  d| d      }t        j                  t        |      5  | j                  d| |       d d d         y c c}w # 1 sw Y   xY w)Ndate  r3   r4   r   r   r   r   r   r   r   r   [z&] is not implemented as a table columnr   df1_)datetimerG   r   r    r!   r"   r   r#   r$   r%   rA   rB   r'   r(   r)   r@   )r,   dtypesnfr-   r   r.   s          r/   'test_unimplemented_dtypes_table_columnsrO   =   s    x}}T1a012F  	11"))C.((11$v,f5595a2aS5VD

 1ii!A3DEF]]9C0 	1  4sR0	1 	1	1 6	1 	1s   9C1C66C?	c                 T   t        dt        j                  d      j                  d      z  t	        t        d      t              t	        t        d      D cg c]  }d| 	 c}t                    }d	|d
<   d|d<   t        j                  ddd      |d<   |j                         }dj                  t        j                  d      t        j                  d      g      }t        j                  t         |      5  | j#                  d|       d d d        y c c}w # 1 sw Y   y xY w)Nr   r   r   r   r   r   r   r   fooobj1barobj2rH   r3   r4   	datetime1|zjCannot serialize the column [datetime1]
because its data contents are not [string] but [date] object dtypez+[date] is not implemented as a table columnr   df_unimplemented)r   r    r!   r"   r   r#   r$   r%   rK   rG   _consolidatejoinrA   rB   r'   r(   r)   r@   r+   s       r/   (test_unimplemented_dtypes_table_columns2rZ   M   s    	biin$$W--d6l&1uRy1!r!X1@
B
 BvJBvJmmD!Q/B{O		B ((IID IICD	
C 
y	, 5/45 5# 2"5 5s   D=DD'c           
         t        t        j                  j                  d      j	                  d      t        t        d      t              t        dddd	      
      }d|d<   d|j                  |j                  dd df<   | j                  d|d       t        j                  d      }t        j                  t         |      5  t#                d d d        t        j                  d      }t        j                  t$        |      5  | j'                  dd       d d d        d}t        j                  t(        |      5  | j'                  dd       d d d        y # 1 sw Y   xY w# 1 sw Y   NxY w# 1 sw Y   y xY w)Nr4   
   r   r   r   z
2000-01-01r]   Br8   )r:   freqr;   r   rQ   stringrS   r   r   r   r=   r>   z:__init__() missing 1 required positional argument: 'where'r   zWcannot process expression [df.index[3]], [2000-01-06 00:00:00] is not a valid conditionzdf.index[3]zinvalid syntaxzindex>)r   r    randomdefault_rngstandard_normalr   r#   r$   r	   locr   r&   rA   rB   r'   r(   r)   r   
ValueErrorr*   SyntaxError)r,   r   r.   s      r/   test_invalid_termsrg   g   sD   	
		a 009d6l&1r$G
B
 BxL&+BFF288Aa=("#dBw/ ))P
QC	y	,  ))	9C 
z	- 2T=12 C	{#	. -T8,- - 2 2- -s$   E
E*E6E'*E36E?c           	         t        t        j                  j                  d      j	                  d      t        d      t        ddd            }|j                  | d	d
d       t        | d	d       t        | d	d       y )Nr4   r\   r   20130101r]   r8   r9   r   dfqr=   T)keyr?   data_columnsz0index>Timestamp('20130104') & columns=['A', 'B']r   
A>0 or C>0)	r   r    ra   rb   rc   r#   r	   to_hdfr
   )temp_h5_pathrj   s     r/   test_invalid_terms_from_docsrp      sr    

		a 009VRd;C
 JJ|wTJJ e#U \55    c           	      J   t        t        j                  j                  d      j	                  d      t        d      t        ddd            }|j                  | d	d
       d}t        j                  t        |      5  t        | d	d       d d d        y # 1 sw Y   y xY w)Nr4   r\   r   ri   r]   r8   r9   r   rj   r=   )rk   r?   a  The passed where expression: A>0 or C>0\n\s*contains an invalid variable reference\n\s*all of the variable references must be a reference to\n\s*an axis \(e.g. 'index' or 'columns'\), or a data_column\n\s*The currently defined references are: index,columns\nr   rm   r   )r   r    ra   rb   rc   r#   r	   rn   r'   r(   re   r
   )ro   rj   r.   s      r/   test_invalid_terms_referencers      s    

		a 009VRd;C
 JJ|wJ7	A  
z	- :uL9: : :s   BB"c                 4   t        t        j                  j                  d      j	                  d            }t        dt        j                  j                  d      j	                  d      i      }t        dt        j                  j                  d      j	                  d      i      }t        dt        j                  j                  d      j	                  d      i      }t        ddt
        ft        j                  j                  d      j	                  d      i      }d}| j                  ||       ||||fD ]M  }t        j                  d	      }t        j                  t        |
      5  | j                  ||       d d d        O y # 1 sw Y   ZxY w)Nr4   )r]   r3   r2   r]   r3   r4   )1r4   rv   df_diff_valerrorz?cannot match existing table structure for [0] on appending datar   )r   r    ra   rb   rc   r$   r@   rA   rB   r'   r(   re   )	r,   r   rD   df3df4df5namedr.   s	            r/   7test_append_with_diff_col_name_types_raises_value_errorr}      sJ   	299((+;;GD	EB
S"))//2BB2FG
HC
VRYY2215EEbIJ
KC
Xryy44Q7GGKL
MC
c1f%ryy'<'<Q'?'O'OPR'ST
UCDr"3S! *iiM
 ]]:S1 	*  q)	* 	*	*	* 	*s   0FF	c                 (   t        t        j                  j                  d      j                  d      t	        d      t	        d            }d}t        j                  t        |      5  |j                  | dd	
       d d d        y # 1 sw Y   y xY w)Nr4   r   r6   abcdABCDEr   r   z)complib only supports \[.*\] compression.r   r   foolib)rk   complib)	r   r    ra   rb   r#   r'   r(   re   rn   )ro   r   r.   s      r/   test_invalid_complibr      ss    	
		a ''/6lW
B
 7C	z	- <
		,D(	;< < <s   *BBidx2019Dr5   UTCr8   )r_   r:   tzr;   abcc                     t        j                  | | g      }t        d|dg      }t        j                  t
        d      5  |j                  |d       d d d        y # 1 sw Y   y xY w)Nr   r2   r   zSaving a MultiIndexr   r   rk   )r   from_arraysr   r'   r(   NotImplementedErrorrn   )r   ro   mir   s       r/   &test_to_hdf_multiindex_extension_dtyper      s]     
		c
	+B	1B	.B	*2G	H *
		,D	)* * *s   AA(c                      | ddd      }d}t        j                  t        |      5  t        |       d d d        y # 1 sw Y   y xY w)Niodataz"legacy_hdf/incompatible_dataset.h5z_Dataset\(s\) incompatible with Pandas data types, not table, or no datasets found in HDF5 file.r   )r'   r(   re   r
   )datapath	data_pathmessages      r/   test_unsuppored_hdf_file_errorr      sH    v'KLI	8 
 
z	1   s	   =Ac                    t        t        j                  j                  d      j                  d      t	        d      t	        d            }d}t        j                  t        |      5  t        t        j                          dd	       d d d        |j                  | d
       t        | d      }|j                          d}t        j                  t        |      5  t        |d
       d d d        y # 1 sw Y   lxY w# 1 sw Y   y xY w)Nr4   r   r   r   r   zFile [\S]* does not existr   z.h5rk   r   r   r)modez&The HDFStore must be open for reading.)r   r    ra   rb   r#   r'   r(   OSErrorr
   uuiduuid4rn   r   close)ro   r   r.   stores       r/   test_read_hdf_errorsr      s    	
		a ''/6lW
B 'C	wc	* .DJJL>%u-. IIlI%\,E	KKM
2C	wc	*  . . s   *"C7!D7D Dc                      d} t        j                  t        |       5  t        t	        d      d       d d d        y # 1 sw Y   y xY w)Nz5Support for generic buffers has not been implemented.r   rq   r   )r'   r(   r   r
   r   )r.   s    r/   #test_read_hdf_generic_buffer_errorsr      s9    
AC	*#	6 %t$% % %s	   =Abad_versionru   )r3   12123c                     d}t        j                  t        |      5  t        d|        d d d        y # 1 sw Y   y xY w)Nz5Version is incorrect, expected sequence of 3 integersr   values_block_0)version)r'   r(   re   r   )r   r.   s     r/   )test_maybe_adjust_name_bad_version_raisesr      s9    
AC	z	- B+[AB B Bs   5>)&rK   r   r   rA   r   numpyr    r'   pandasr   r   r   r   r   r	   r
   pandas.io.pytablesr   r   mark
single_cpu
pytestmarkr0   rE   rO   rZ   rg   rp   rs   r}   r   parametrizer#   r   r   r   r   r    rq   r/   <module>r      s      	     
 kk$$%
8,	E1 54-:6 :(*$< 	6Q5tDe%**	(% r4(GHB IBrq   