
    iG                     2   d dl 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mZmZ d dlmZ ej0                  j2                  gZd Zd Zd Zd	 Zd
 Zd Z d Z!d Z"d Z#d Z$ej0                  jK                  d      d        Z&d Z'd Z(ej0                  jK                  d      d        Z)d Z*ej0                  jW                  dd ejX                  dejZ                        g      d        Z.d Z/ej0                  jW                  dej`                  ejb                  e2ddg      d        Z3d  Z4d! Z5ej0                  jW                  dd ejX                  dejZ                        g      d"        Z6d*d#Z7d*d$Z8d% Z9d& Z:d' Z;d( Z<d) Z=y)+    N)	Timestamp)is_platform_windows)		DataFrameDatetimeIndexHDFStoreIndexSeries_testingbdate_range
date_rangeread_hdf)_test_decoratorsc                 L     fd}t        t        j                  dt        j                        t	        dd            }t        j                  | |d|             t        t        d      dt        d      D cg c]  }d	| 	 c}
      }t        j                  | |d|             t        dt        j                  d      j                  d      z  t        t        d            t        t        d      D cg c]  }d| 	 c}            }t        j                  | |d|             t        t        d      t        d      d      }|j                   dd       t         ddg      }t        j                  ||j                  dkD     |       y c c}w c c}w )Nc                 F     |j                   fd| i| t        |       S )Nkey)to_hdfr   )r   objkwargstemp_h5_paths      e/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/io/pytables/test_round_trip.py	roundtripz'test_conv_read_write.<locals>.roundtrip   s(    

<3S3F3c**    
   dtype
2020-01-01periodsindexseriesfloat64i_r   r    string_series皙?x         ABCDr)   i-columnsr    frame   ABtableTr   appendzindex>2)where   )r	   nparanger"   r   tmassert_series_equalranger   reshaper   listassert_frame_equalr   r   r    )r   r   oidfresults   `     r   test_conv_read_writerE      sQ   + 	
		"BJJ'z,PR/S	A 1i!45uRy	E"I1NqBqc(1NOA1i;<biin$$W--d6l#uRy1!r!X12	A
 !Yw23 
qa1	2BIIlI5lGI;?F"RXX\*F3 2O 2s   <F=F!c                     dgdz  }t        d|i|      }| j                  d|dg       | j                  d      }t        j                  ||       y )N2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar   ar   rC   )data_columns)r   r6   selectr;   r@   )temp_hdfstoredatarC   rD   s       r   test_long_stringsrM   6   sT    :?D	C;d	+Br6!!$'F"f%r   c                    | }t        t        d            }|j                  d d j                  |ddd       |j                  dd  j                  |ddd       t	        j
                  t        |d      |       |j                  d d j                  |ddd       |j                  dd  j                  |ddd       t	        j
                  t        |d      |       y )N   r   rC   Tr4   r   r6   formatFr   r=   ilocr   r;   r@   r   r   pathrC   s      r   test_apirV   A   s     D	59	BGGCRL$tGDGGBCL$tGD(4.3 GGCRL$uWEGGBCL$tGD(4.3r   c                    | }t        t        d            }|j                  d d j                  |dd       |j                  dd  j                  |ddd       t	        j
                  t        |d      |       |j                  d d j                  |ddd       |j                  dd  j                  |dd       t	        j
                  t        |d      |       y )	NrO   r   rC   Tr5   r4   rP   FrR   rT   s      r   test_api_appendrX   Q   s    D	59	BGGCRL$t4GGBCL$tGD(4.3 GGCRL$uWEGGBCL$t4(4.3r   c                    t        t        d            }|j                  | ddd       t        j                  t        | d      |       |j                  | ddd       t        j                  t        | d      |       |j                  | dd       t        j                  t        | d      |       |j                  | d       t        j                  t        | d      |       y )	NrO   rC   FfixedrP   fr5   )r   )r   r=   r   r;   r@   r   r   rC   s     r   
test_api_2r]   _   s    	59	BIIlU7IC(<6;IIlU3I?(<6;IIlUI3(<6;IIlI%(<6;r   c                    t        t        d            }| j                  d|j                  d d dd       | j                  d|j                  dd  dd       t	        j
                  | j                  d      |       | j                  d       | j                  d|j                  d d dd       | j                  d|j                  dd  dd       t	        j
                  | j                  d      |       | j                  d       | j                  d|j                  d d dd       | j                  d|j                  dd  dd       t	        j
                  | j                  d      |       | j                  d       | j                  d|j                  d d dd       | j                  d|j                  dd  dd        t	        j
                  | j                  d      |       y )NrO   rC   r   Tr4   )r6   rQ   F)r   r=   r6   rS   r;   r@   rJ   remove)rK   rC   s     r   
test_api_3r`   n   s   	59	Brwws|DIrwwrs|DI-..t4b9 rwws|E'Jrwwrs|DI-..t4b9 rwws|E'Jrwwrs|DI-..t4b9rwws|E'Jrwwrs|DF-..t4b9r   c                    | }t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }d}t        j                  t        |	      5  |j                  |d
dd       d d d        t        j                  t        |	      5  |j                  |d
dd       d d d        d}t        j                  t        |	      5  |j                  |d
dd       d d d        t        j                  t        |	      5  |j                  |d
dd       d d d        d}d| d}t        j                  t        |	      5  t        |d
       d d d        y c c}w # 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   kxY w# 1 sw Y   y xY w)Nr&   r'   r(   r+   r)   r,   r-   zCan only append to TablesmatchrC   Tr[   rP   rZ   z)invalid HDFStore format specified \[foo\]fooF zFile z does not exist)r   r9   r:   r>   r   r?   r=   pytestraises
ValueErrorr   	TypeErrorFileNotFoundErrorr   )r   rU   rB   rC   msgs        r   test_api_invalidrl      s   D	biin$$W--d6l#uRy1!r!X12
B &C	z	- ;
		$Dc	:; 
z	- ?
		$Dg	>? 7C	y	, =
		$De	<= 
y	, >
		$Du	=> D$
'C	(	4 t / 2
; ;? ?
= => > sB   FFF<F)5F56GFF&)F25F>G
c                    t        t        j                  dt        j                        t	        dd            | d<   | j                  d      }| d   }t        j                  ||       | j                  d      }| d   }t        j                  ||       t        j                  t        d	      5  | j                  d
       d d d        y # 1 sw Y   y xY w)Nr   r   r   r   r   rH   z/az'No object named b in the file'rb   b)r	   r9   r:   r"   r   getr;   r<   rf   rg   KeyError)rK   leftrights      r   test_getrs      s    
		"BJJ'z,PR/SM# S!D#E4'T"D$E4'	x'H	I #  s   2CCc                     t        t        j                  j                  d      j	                  d            }t        |t        j                  |        y )Nr8   )2   d   )r   r9   randomdefault_rngstandard_normal_check_roundtripr;   r@   r\   s     r   test_put_integerr{      s8    	299((+;;IF	GBR..=r   c                 \   t        dg did      }| j                  d|       t        j                  |j                  | d   j                         t        dg did      }| j                  d|       t        j                  |j                  | d   j                         t        j                  d      }t        j                  t        |	      5  | j                  d|       d d d        t        t        j                  d
gdgdggd      dg      }| j                  d|       t        j                  |j                  | d   j                         |j                  j                  d   dk(  sJ t        dD ci c]<  }|t        t        j                  j                  d      j!                  d      |      > c}      }d|d<   d|d<   |d   j#                  d      |d<   |d   dkD  |d<   t%        d      j'                  d      |d<   t%        d      j'                  d      |d<   t%        d      j'                  d       |d!<   t%        d"      |d#<   | j                  d$|       | j)                  d$      j                  j+                         }|j,                  D cg c]  }t/        |       c}|_        |rd%nd&}t        ddd'd
d(d
dd
d)d
d*d
d+d
|d
d,dd-d
d.d
id/0      }	|j1                         }|	j1                         }	t        j                  ||	       y # 1 sw Y   5xY wc c}w c c}w )1NrH      r8      f8r   df_f8i8df_i8zdCannot serialize the column [a] because its data contents are not [float] but [integer] object dtyperb   r~   r8   r   f4r2   r.   df_f4r   float32)r   r"   int32int64int16int8r0   rd   string      ?float322bool20130101stime_s_1z20130101 00:00:00time_s_2z20130101 00:00:00.000mstime_msz20130102 00:00:00.000000000time_nsdf_mixed_dtypes1strobjectr"   r   r   r   r   zdatetime64[s]zdatetime64[ms]zdatetime64[ns]count)name)r   r6   r;   r<   dtypesreescaperf   rg   rh   r9   arrayrS   r	   rw   rx   integersastyper   as_unitrJ   value_countsr    r   
sort_index)
rK   using_infer_stringdf1df2rk   crD   rB   	str_dtypeexpecteds
             r   "test_table_values_dtypes_roundtripr      s   
S)$D
1C#&3::}W'='D'DE
S)$D
1C#&3::}W'='D'DE ))	%C
 
z	- +Wc*+
 BHHqcA3_D9C5
IC#&3::}W'='D'DE::??1***  O	
 vbii++A.77:!DD	
C CMC
O*o,,Y7C
Oi.1$CK
+33C8C
O 34<<SAC
O67??EC	N<=C	N+S1!!"45<<IIKF$*LL1qCF1FL+IqqQAQAQqQaa	
 H   F""$H68,a+ +	
  2s   L;AL$L)L!z(ignore::pandas.errors.PerformanceWarningc           	         t        t        d      dt        d      D cg c]  }d| 	 c}      }t        |t        j                  |        t        t        j                  dt
        j                        t        dd      	      }t        |t        j                  |        t        |j                  t        |j                              }t        |t        j                  |        t        |j                  t        t        j                  |j                                    }t        |t        j                  | d
       y c c}w )Nr   r"   r#   r$   rU   r   r   r   r   F)rU   check_index_type)r	   r=   rz   r;   r<   r9   r:   r"   r   r    r   valuesasarray)r   rB   r   tsts2ts3s         r   test_seriesr      s    uRy	E"I1NqBqc(1NOAQ..\B	
		"BJJ'z,PR/S
B R//lC
5?
+CS"00|D
E"**RXX"67
8CR##, 2Os   Ec                 
   t         j                  j                  d      j                  d      }t	        t         j                  j                  d      j                  d      |      }t        |t        j                  |        y )Nr8   r   r   r   )r9   rw   rx   ry   r	   rz   r;   r<   )r   r    r   s      r   test_float_indexr     sY    II!!!$44R8Eryy$$Q'77;5IAQ..\Br   c                 X   t        j                  d      }g d}t         j                  j                  d      j	                  d      j                  d      }t        |||      }t        j                  |      5  t        |t        j                  |        d d d        y # 1 sw Y   y xY w)Nr   ))g        r   )       @      @)g      @g      @r8   r)   )r   r   )r    r.   r   )r9   r:   rw   rx   ry   r>   r   r;   assert_produces_warningrz   r@   )r   performance_warningcolidxrL   DFs         r   test_tuple_indexr     s    
))B-C
.C99  #33B7??HD	4sC	0B		#	#$7	8 GR22FG G Gs   :B  B)c                 ^   t         j                  j                  d      j                  d      }d }t	        |ddg      }t        |||        t	        |t        j                  j                         dg      }t        |||        t	        |ddg      }t        |||        t	        |t        j                  j                         dg      }t        |||        t	        |ddg      }t        |||        t	        |t        j                  j                         dg      }t        |||        t	        |ddg      }t        |||        t	        |t        j                  j                         dg      }t        |||        t	        |ddg      }t        |||        t	        |d	d
g      }t        |||        t	        |d	dg      }t        |||        t        ddgd      }t	        ||      }t        |||        |j                  j                  d      |_
        t        |||        y )Nr8   c                 2    t        j                  | |d      S )NT)r   )r;   r<   )lhsrhss     r   <lambda>z"test_index_types.<locals>.<lambda>)  s    B223dS r   r   yr   rH   gGz?rn   r~   g{Gz?r0   z
2012-01-01z
2012-01-02M8[ns]r   r   r   )r9   rw   rx   ry   r	   rz   datetimetodaydater   r    r   )r   r   funcserdtis        r   test_index_typesr   %  s   YY""1%55a8FSD
!S
"CS$\2
(++113Q7
8CS$\2
#q
"CS$\2
(----/5
6CS$\2
!S
"CS$\2
(++113Q7
8CS$\2
#q
"CS$\2
(----/5
6CS$\2
$
%CS$\2
!T
#CS$\2
!Q
 CS$\2
|4H
EC
s
#CS$\2		!!#&CIS$\2r   c                 f   t        dd      }t        t        j                  j	                  d      j                  t        |            |      }	 t        |t        j                  |        y # t        $ r: t               r.|j                  t        j                  j                  d              w xY w)Nz1/1/1940z1/1/1960r8   r   r   z'known failure on some windows platforms)r   r	   r9   rw   rx   ry   lenrz   r;   r<   OverflowErrorr   applymarkerrf   markxfail)r   requestdrr   s       r   test_timeseries_preepochr   T  s    	Z	,B			%%a(88RA	LBR33,G  !!"KL 	s   A- -AB0compressionFT)marksc                    t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }t        j                  |j                  d<   t        j                  |j                  d	<   t        |t        j                  || 
       t        |t        j                  || 
       t        t        j                  j                  d      j                  d      t	        t        d            t!        ddd            }t        |t        j                  || 
       t#        |      5 }t        j                  j                  d      j                  t%        |            |d<   ||d<   |d   }|j&                  j)                         sJ 	 d d d        |d d }t	        g       |_        t        |d d t        j                  |       y c c}w # 1 sw Y   CxY w)Nr&   r'   r(   r+   r)   r,   r-   )r   r   )r0   r   rU   r   r8   )r   r*   z
2000-01-01r   r3   )r   freqrd   rC   r   r   )r   r9   r:   r>   r   r?   r=   nanrS   _check_roundtrip_tabler;   r@   rz   rw   rx   ry   r   r   r   _mgris_consolidatedr    )r   r   rB   rC   tdfstorereconsr   s           r   
test_framer   a  s    
biin$$W--d6l#uRy1!r!X12
B FFBGGDMFFBGGDM
B!!+ 
B!!+ 
		a 009d6l#r<C
 R""; 
,	 -5II))!,<<SWE5	dt{{**,,,- Ra&Cb	CIS!Wb33,GE 2.- -s   G<A!HH
c                    t        t              }t        dt              }t               }t        g d      }t        g d      }t        |t        j
                  |        t        |t        j
                  |        t        |t        j                  |        t        |t        j                  |        t        |t        j                  |        y )	Nr   myseries)r   r   rH   rn   r   r   )der[   r   r   )r	   r   r   rz   r;   r<   r@   )r   s0s1df0r   r   s         r   test_empty_series_framer     s    	f	B	Zv	.B
+C
/
*C
O
,CR//lCR//lCS"//lCS"//lCS"//lCr   r   zm8[ns]r   c                 T    t        |       }t        |t        j                  |       y )Nr   r   )r	   rz   r;   r<   )r   r   r   s      r   test_empty_seriesr     s    UAQ..\Br   c                    t        dd      D cg c]  }|j                          }}t        t        j                  j                  d      j                  t        |      df      |      }t        |t        j                  |        y c c}w )Nz1/1/2000z	1/30/2000r8   r*   r   r   )r   r   r   r9   rw   rx   ry   r   rz   r;   r@   )r   xrngr/   s       r   test_can_serialize_datesr     sm    ([A
B1668
BC
B
		a 00#c(A?sE UB11E Cs   B	c                 J   |}t        |t        j                  |        t        |j                  t        j                  |        t        |d   t        j                  |        t        |       5 }||d<   |d   }t        j                  ||       d d d        y # 1 sw Y   y xY w)Nr   r2   r/   )rz   r;   r@   Tr<   r   )r   r    multiindex_dataframe_random_datar/   r   r   s         r   test_store_hierarchicalr     s     -EUB11EUWWb33,GU3Z!7!7lK 
,	 -5gw
fe,- - -s   /!BB"c                    d } |       } |       }t        |t        j                  |       t        |t        j                  |       t        |      5 }||d<   t        j                  |d   |       ||d<   t        j                  |d   |       d d d        t        |d   t        j                  ||        t        |d   t        j                  ||        t        |d   t        j                  ||        y # 1 sw Y   jxY w)Nc                  P   t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D  cg c]  } d|  	 c}             }d|d	<   d
|d<   |d   dkD  |d<   |d   dkD  |d<   d|d<   d|d<   |j                         S c c} w )Nr&   r'   r(   r+   r)   r,   r-   rd   obj1barobj2r2   r   bool1r3   bool2r~   int1r8   int2)r   r9   r:   r>   r   r?   r=   _consolidate)rB   rC   s     r   	_make_onez#test_store_mixed.<locals>._make_one  s    "))C.((11$v,'595a2aS56

 6
6
gk7gk76
6
   6s   B#r   r   r   r   r   r   )rz   r;   r@   r   r<   )r   r   r  r   r   r   s         r   test_store_mixedr    s    ! +C
+CS"//lCS"//lC	,	 15e
eElC0e
eElC0	1 F
	 G
	 F
	'1 1s   =C;;Dc                     i }|rd|d<   t        |dfi |5 }| |d<   |d   } ||| fi | d d d        y # 1 sw Y   y xY w)Nblosccomplibwr   )r   )r   
comparatorrU   r   r   optionsr   	retrieveds           r   rz   rz     s[    G$		$	'w	' -5e%L	9c,V,- - -s   5>c                     i }|rd|d<   t        |dfi |5 }|j                  d| d       |d   } |||        d d d        y # 1 sw Y   y xY w)Nr  r  r  r   r4   )rQ   )r   put)r   r  rU   r   r  r   r	  s          r   r   r     s_    G$		$	'w	' #5		%W	-%L	9c"	# # #s   #AAc                     ddg}t        t        j                  j                  d      j	                  t        |            |      }t        |t        j                  |        y )Nu   σu   σσr8   r   )	r	   r9   rw   rx   ry   r   rz   r;   r<   )r   unicode_valuesr   s      r   test_unicode_indexr    sO    /N
		a 00^1DE	A Q..\Br   c                 Z   d}t        d|gi      }| j                  d|dd       | j                  d      }t        j                  ||       t        d|gddgd	      }| j                  d       | j                  d|dd       | j                  d      }t        j                  ||       y )
Nu   Δr2   rC   r4   zutf-8)rQ   encodingrH   rn   r1   )r   r  ro   r;   r@   r_   )rK   charrC   rD   s       r   test_unicode_longer_encodedr    s    D	C$=	!BdBwAt$F&"%	#tC:6	7BdBwAt$F&"%r   c                     t        g dg dg dd      }t        t        j                  dt        j                        t        dd            }|j                  d d	 |d
<   t        |t        j                  |        y )Nr}   )r   r   r   r   r   r   r   r   r   r   r   r   )
r   r	   r9   r:   r"   r   r    rz   r;   r@   )r   rC   r   s      r   test_store_datetime_mixedr    s`    	O	PB	
		"BJJ'z,PR/S
B hhrlBsGR..\Br   c                     t        ddgddgd      }|j                  | dd       t        | d      }t        j                  ||       |j                  |      sJ |j                  |      sJ y )	Nr~   r8   r   r   )r3   r2   rC   r4   r   rQ   )r   r   r   r;   r@   equals)r   rC   others      r   test_round_trip_equalsr  &  sk    	!QsCj1	2BIIlWI5\4(E"e$99U<<r   c           
         t        j                  d       t        j                  dd      5  t	        dt        d      t        t        d                  j                  dd	g      }|j                         }|j                  | d
d       t        | d
      }t        j                  ||       d d d        y # 1 sw Y   y xY w)Npyarrowzfuture.infer_stringTr~   r+   r   r-   r2   r3   rC   r4   r  )rf   importorskippdoption_contextr   r?   r=   	set_indexcopyr   r   r;   r@   )r   rC   r   rD   s       r   test_infer_string_columnsr!  1  s    
	"			0$	7 0q$v,d59oFPP#J
 779
		,D	9,-
fh/0 0 0s   BB66B?)F)>r   r   numpyr9   rf   pandas._libs.tslibsr   pandas.compatr   pandasr  r   r   r   r   r	   r
   r;   r   r   r   pandas.utilr   tdr   
single_cpu
pytestmarkrE   rM   rV   rX   r]   r`   rl   rs   r{   r   filterwarningsr   r   r   r   r   parametrizeparamskip_if_windowsr   r   r   r"   r   r   r   r   r  rz   r   r  r  r  r  r!   r   r   <module>r/     s    	   ) - 
 
 
 /kk$$%
46&4 4<:2B >?-D FG H$CG FG+3 H+3\
 E<6<<B4F4FGH&H&HRD 288RZZ8"TUC VC
F-  E<6<<B4F4FGH--`-	#C&C0r   