
    i؈                        d dl Z d dlZd dlZd dlZd dlZd dlZd dl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mZ d dlmZ d dlmZ d dlmZ d dlmZm Z  ejB                  jD                  gZ# ejH                  d      Z%d Z&ejB                  jO                   ee%jP                         ed	      k\  d
      d        Z)d Z*d Z+d Z,d Z-d Z.ejB                  j_                  ddddh e0       f e0       ddhfdhddhf e0       dhfdfddhddhf e0       dhfdfg      d        Z1d  Z2d! Z3d" Z4ejB                  j_                  d#d$d%g      d&        Z5d' Z6d( Z7d) Z8d* Z9d+ Z:d, Z;d- Z<d. Z=ejB                  j_                  d/dd0g      ejB                  j_                  d1d%d$g      d2               Z>d3 Z?d4 Z@d5 ZAd6 ZBd7 ZCd8 ZDd9 ZEd: ZFd; ZGd< ZHd= ZIejB                  j_                  d>g d?      d@        ZJdA ZKdB ZLejB                  j_                  dCdDdEg      dF        ZMdG ZNdH ZOdI ZPejB                  j                  dJ      ejB                  j_                  dK ed dLgej                  M       edNdOgej                  M       edPdQR       edSdQR       edPdQdTU      g      dV               ZTejB                  j_                  dWddXg      dY        ZUdZ ZVd[ ZWejB                  j_                  d\g d]      d^        ZXd_ ZYy)`    N)PY312)
	DataFrameDatetimeIndexIndex
MultiIndexSeries	Timestampconcat
date_rangeperiod_rangetimedelta_range)CategoricalDtype)VersionHDFStoreread_hdftablesc                    	 t        |       5 }t        d      # 1 sw Y   nxY wn# t        $ r Y nw xY wt        |       5 }t        dt        j                  d      j                  d      z  t        t        d      t              t        t        d      D cg c]  }d| 	 nc c}w c}t              	      |d
<   t        |      dk(  sJ t        |d
         t        k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nblah皙?x         ABCDdtyper   i-columnsindexa   )r   
ValueErrorr   nparangereshaper   listobjectrangelentype)temp_h5_pathtblis      `/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/io/pytables/test_store.pytest_contextr1   )   s    l# 	%sV$$	% 	% 	% 	,	 +3"))C.((11$v,f5595a2aS55VD
C
 3x1}}CH~***+ + +s2   & "& 	22 AC/B$#AC//C82zAtrack_times=False produces non-deterministic files with HDF5 >= 2)reasonc                     t         j                  dfdfd} || d      } || d      }t        j                  d        || d      } || d      }||k(  sJ ||k7  sJ y )N   c                      |       t        | d      5 t        fdd      D ]  }j                  |        	 d d d        j                         S # 1 sw Y   j                         S xY w)Nrbc                  @    j                   j                  z        S N)read
block_size)chunk_num_blocksfhs   r0   <lambda>z7test_no_track_times.<locals>.checksum.<locals>.<lambda>D   s    aff-=-L&M     r@   )openiterupdatedigest)filenamehash_factoryr<   chunkr=   r>   s     ` @@r0   checksumz%test_no_track_times.<locals>.checksumA   sd    N(D! 	 QMsS   	  xxz	  xxzs   (AA0c           	          t        ddgi      }t        | d      5 }|j                  d|ddd |       d d d         |       S # 1 sw Y   xY w)Nr"   r#   w)modetableT)formatdata_columnsr!   track_times)r   r   put)r-   rO   dfhdfrH   s       r0   create_h5_and_return_checksumz:test_no_track_times.<locals>.create_h5_and_return_checksumH   sd    aSz"l- 	GG!'  	 %%	 	s   AAF)rO   Tr#   )hashlibmd5timesleep)r-   rS   checksum_0_tt_falsechecksum_0_tt_truechecksum_1_tt_falsechecksum_1_tt_truerH   s         @r0   test_no_track_timesr\   9   s     )0c & 8RWX6|QUV 	JJqM7RWX6|QUV "5555 !3333r@   c                 $    t        |       g k(  sJ y r9   )r(   )temp_hdfstores    r0   test_iter_emptyr_   g   s    "$$$r@   c                    | }t        |       |j                          t        t        j                  dt        j
                        t        dd            |d<   t        t        d      dt        d      D cg c]  }d| 	 c}	      |d
<   t        dt        j                  d      j                  d      z  t        t        d      t              t        t        d      D cg c]  }d| 	 c}t                    |d<   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<   |d   dkD  |d<   |d   dkD  |d<   d|d<   d|d<   d |d!<   t        d"      |d#<   t        d$      |d%<   t        j                  d&dd dd      |d'<   t        j                  d&dd(dd      |d)<   t        j                   |j"                  |j$                  d(d* dgf<   |j'                         }|rd n|}d+}t)        j*                  ||,      5  ||d-<   d d d        |j,                  j/                  |j,                  j0                  d.       |j2                  t        |      v sJ |j2                  t5        |      v sJ |j                          y c c}w c c}w c c}w # 1 sw Y   xY w)/N
   r   
2020-01-01periodsr!   r"   float64i_)r   r!   br   r   r   r   r   r   r   cfooobj1barobj2Ar   bool1Bbool2Tbool3r#   int1   int220010102
timestamp120010103
timestamp2i  	datetime1   	datetime2   z0cannot
map directly to c-types .* dtype='object'matchrQ   bah)reprinfor   r%   r&   rf   r   r*   r   r'   r   r(   r)   r	   dtdatetimenanlocr!   _consolidatetmassert_produces_warning_handlecreate_grouprootrE   str)r^   performance_warningusing_infer_stringstorer/   rQ   warningmsgs           r0   	test_reprr   l   s   EK	JJL
		"BJJ'z,PR/SE#J b	USUY:WRs8:WXE#Jbiin$$W--d6l&1uRy1!r!X1@E#J 
biin$$W--d6l&1uRy1!r!X1@
B
 BvJBvJS'A+BwKS'A+BwKBwKBvJBvJ ,B| ,B|kk$1a3B{Okk$1a3B{O&(ffBFF288Aa=6("#		B(d.AG
=C		#	#G3	7 d 
MMu}}1159>>T%[(((>>SZ'''	JJLI ;X 2 2$ s   9K&K K%K**K3c                 h   t        dt        j                  d      j                  d      z  t	        t        d      t              t	        t        d      D cg c]  }d| 	 c}t                    }| j                  d	|       | j                  d	      }t        |       t        |       y c c}w )
Nr   r   r   r   r   r   r   r   rQ   )r   r%   r&   r'   r   r(   r)   r*   append
get_storerr   r   )r^   r/   rQ   ss       r0   test_repr_get_storerr      s    	biin$$W--d6l&1uRy1!r!X1@
B
 r"  &AGF 2s   B/c                 @   | }t        t        j                  dt        j                        t	        dd            |d<   t        dt        j                  d      j                  d	      z  t        t        d
      t              t        t        d      D cg c]  }d| 	 c}t                    |d<   t        dt        j                  d      j                  d	      z  t        t        d
      t              t        t        d      D cg c]  }d| 	 c}t                    |d<   d|v sJ d|v sJ d|vsJ d|v sJ d|v sJ d|vsJ d|vsJ t        j                  t        j                  d      5  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        d|v sJ y c c}w c c}w c c}w # 1 sw Y   xY w)Nra   r   rb   rc   re   r"   r   r   r   r   r   r   r   rh   zfoo/barri   z/foo/barz/foo/brl   F)check_stacklevelznode()))r   r%   r&   rf   r   r   r'   r   r(   r)   r*   r   r   r   NaturalNameWarning)r^   r   r/   s      r0   test_containsr      s   E
		"BJJ'z,PR/SE#J biin$$W--d6l&1uRy1!r!X1@E#J
 !biin$$W--d6l&1uRy1!r!X1@E)
 %<<%<<e5    
	#	#F$=$=PU	V 
$"))C.((11$v,f5595a2aS5VD
i
 - 2
 2 6	
 
s+   HH
>AHH!HHHc                    | }t        t        j                  dt        j                        t	        dd            |d<   t        dt        j                  d      j                  d	      z  t        t        d
      t              t        t        d      D cg c]  }d| 	 c}t                    |d<   t        t        j                  j                  d      j                  d      t        t        d
      t              t	        ddd            }|j                  d|d d        |j                  d|dd         |j                  j                   j"                  j$                  dk(  sJ |j                  j&                  j"                  j$                  dk(  sJ |j                  j(                  j"                  j$                  dk(  sJ |j                  d|       d |j+                  d      j"                  _        d}t-        j.                  t0        |      5  |j3                  d       d d d        y c c}w # 1 sw Y   y xY w)Nra   r   rb   rc   re   r"   r   r   r   r   r   r   r   rh   rt   )   r   
2000-01-01r   rp   rd   freqdf1z0.15.2df2z/'NoneType' object has no attribute 'startswith'r~   )r   r%   r&   rf   r   r   r'   r   r(   r)   r*   randomdefault_rngstandard_normalr   r   r"   _v_attrspandas_versionrh   r   get_nodepytestraises	Exceptionselect)r^   r   r/   rQ   r   s        r0   test_versioningr      s   E
		"BJJ'z,PR/SE#J biin$$W--d6l&1uRy1!r!X1@E#J
 

		a 009d6l&1r<
B
 
LL3B 	LL23 ::<<  //8;;;::<<  //8;;;::>>""11X=== 
LL 59ENN5""1
;C	y	, U - 2, s   H7H<<Izwhere, expected/first_groupsecond_groupr   r   third_groupdf3s1df4) /first_group/second_group/second_group/third_groupr   )r   r   c                 j   t        g d      t        g d      t        g d      t        g d      t        g d      t        j                  g dg dg      t        j                  ddgd      t        j                  dd	gd      d
}|}|j	                  d|d          |j	                  d|d          |j	                  d|d          |j	                  d|d          |j	                  d|d          |j
                  j                  dd|d          |j
                  j                  dd|d          |j
                  j                  dd|d          t        t        |j                  |                   t        |      k(  sJ |j                  |       D ]  \  }}}||v sJ ||   \  }}	|t        |      k(  sJ |	t        |      k(  sJ |D ]]  }
dj                  ||
g      }|j                  |      }d|
v rt        j                  |||
          Et        j                   |||
          _  y )Nr#   rt   r{   )r      r}   )r}         )	   ra      )ra   r   r   zi,i,ir   )r   r   r   )ra   r      )r   r   r   r   r   a1tb1tb2z/first_group/df1r   z/first_group/df2r   z/second_group/df3r   z/second_group/s1r   z/second_group/third_group/df4r   r   r   r   )objr   r   wherer   rQ   )r   r   r%   arrayrP   r   create_arraycreate_tabler+   r(   walksetjoingetr   assert_frame_equalassert_series_equal)r   expectedr^   objsr   pathgroupsleavesexpected_groupsexpected_framesleaf
frame_pathr   s                r0   	test_walkr      s
   0 ###%Z hh	9-.xxI.g>xxL1A
D E	II $u+.	II $u+.	II!4;/	II $t*-	II-tE{;	MM~tT$Z@	MM~u$u+F	MM4;GtEJJUJ+,-X>>> %


 7 8ffx+3D>(#f+---#f+--- 	8D4,/J))J'Ct|%%c4:6&&sDJ7	88r@   c           	         | }t        t        j                  dt        j                        t	        dd            }||d<   |j
                  }t        j                  ||       |j
                  }t        j                  ||       t        t        j                  j                  d      j                  d      t        t        d	            t	        d
dd            }||d<   |j                  }t        j                  ||       dD ]8  }d| d}t!        j"                  t$        |      5  t'        ||       d d d        : dD ]  }t'        |d|         y # 1 sw Y   [xY w)Nra   r   rb   rc   re   r"   rt   ra   r   r   r   rp   r   r   rQ   )drK   r   handlecomplibz$'HDFStore' object has no attribute ''r~   )rK   r   r   r   _)r   r%   r&   rf   r   r"   r   r   r   r   r   r   r   r(   rQ   r   r   r   AttributeErrorgetattr)r^   r   r   resultrQ   xr   s          r0   test_getattrr   (  sA   E
		"BJJ'z,PR/S	A E#J WWF61%WWF61%	
		a 009d6l#r<
B
 E$KXXF&"% 8 4QCq9]]>5 	E1	 	 3  1#w 		 	s   ,EE#	c                 4   t        dt        j                  dgdt        j                  t        j                  gdt        d            }t        ddgdt        j                  gdt        d            }|j	                  | dd	
       t        | d      }t        j                  ||       |j	                  | dd	d       t        | d      }t        j                  ||       |j	                  | dd	d       t        | d      }t        j                  ||       y )N               @      ?)col1col2abcre   acrQ   rL   keyrM   F)r   rM   dropnaT)r   r%   r   r(   to_hdfr   r   r   )r-   df_with_missingdf_without_missingreloadeds       r0   test_store_dropnar   I  s    rvvs#c266266-BC5kO #sc266]34: <T'Bd+H/84<T'%Pd+H/84<T'$Od+H,h7r@   c           	      d   t        g dg dt        g d      t        dd      d      j                  d      }|j	                  | d	d
ddi       |j                         j                         j                  d      j                  d      }|j	                  | d	dd
       t        j                  t        | d	      t        ||g             |d   j	                  | dd
ddi       |d   j	                  | ddd
       t        j                  t        | d      t        |d   |d   g             y )N)r   r   r   g      @g      @)r   r   r   r   r   )foo1foo2foo3foo4foo520130101r   rc   )rn   rp   CDr   ss3rL   r!   r}   )r   rM   min_itemsizelonger)r   T)r   r   rM   rp   ss4)r   r   r   	set_indexr   copyreset_indexassignr   r   r   r
   r   )r-   rQ   r   s      r0   test_to_hdf_with_min_itemsizer  a  s   	**?@J2		

 in  IIlgWaLIQ
'')


!
(
(8
(
4
>
>s
CCJJ|tGJD(<7S	9JK sGNN<U7'STNVHOOLeDOI8L%8&"S'3s8AT:UVr@   rM   fixedrL   c                 4   dg}t        |t        |d      d      }|j                  |d| d       t        |dd      }|r&t	        j
                  d	t        j                  
      }nd}t        |t        ||      |      }t        j                  ||       y )Nu   foor)   r   )r!   r   rL   surrogatepass)r   rM   errors)r  python)storagena_value)
r   r   r   r   pdStringDtyper%   r   r   r   )rM   r-   r   dataserr   r   r   s           r0   test_to_hdf_errorsr  w  s    =D
U4x8
ICJJ|JPlGODF x"&&Ad%E":%HH68,r@   c           	         | fd}t        t        j                  j                  d      j	                  d      t        t        d            t        ddd      	      }d
|d<   d|d<   j                  d|ddg        |dd      j                  du sJ  |dd      j                  du sJ  |dd      j                  du sJ j                  d|dgddg        |dd      j                  du sJ  |dd      j                  du sJ  |dd      j                  du sJ j                  d|       d}t        j                  t        |      5  j                  d       d d d        y # 1 sw Y   y xY w)Nc                 b    t        j                  |       j                  j                  |      S r9   r   r   rL   colstcolumnr   s     r0   colz$test_create_table_index.<locals>.col  '    u''*0055v>>r@   rt   r   r   r   ra   rp   r   r   rj   stringrl   string2r=   rN   r!   Tf2)r!   rN   Fz1cannot create table index on a Fixed format storer~   )r   r%   r   r   r   r   r(   r   r   
is_indexedrP   r   r   	TypeErrorcreate_table_indexr^   r  rQ   r   r   s       @r0   test_create_table_indexr&    s~   E? 

		a 009d6l#r<
B
 BxLByM	LLb)'<L=sG''4///sH((D000sI))T111 
LLr(8Y:OLPtW((E111tX))T111tY**e333 
IIdB
=C	y	, '  &' ' 's   E--E6c           	      t   | fd}t        t        j                  j                  d      j	                  d      t        t        d            t        ddd      	      }d
|d<   d|d<   j                  d|dg        |dd      j                  du sJ  |dd      j                  du sJ d}t        j                  t        |      5   |dd      j                   d d d        d}t        j                  t        |      5  j                  ddg       d d d        y # 1 sw Y   DxY w# 1 sw Y   y xY w)Nc                 b    t        j                  |       j                  j                  |      S r9   r  r  s     r0   r  z:test_create_table_index_data_columns_argument.<locals>.col  r  r@   rt   r   r   r   ra   rp   r   r   rj   r  rl   r  r=   r   r!   Tz('Cols' object has no attribute 'string2'r~   zcolumn string2 is not a data_column.
In order to read column string2 you must reload the dataframe 
into HDFStore and include string2 with the data_columns argument.r    )r   r%   r   r   r   r   r(   r   r   r"  r   r   r   r$  r%  s       @r0   -test_create_table_index_data_columns_argumentr*    s0    E? 

		a 009d6l#r<
B
 BxLByM	LLbzL2sG''4///sH((D000
4C	~S	1 'C&&'
	L 
 
~S	1 ;  yk :; ;' '; ;s   D"D."D+.D7c                 &   t        j                  t        dd      t        d      gddg      }t	        dg di|	      }| j                  d
|d       | j                  d
d      }|j                  dgd d f   }t        j                  ||       y )Nr   r   rc   dateidnamesr"   )r   g333333?g?gffffff?g      ?re   rQ   Tr   zid == 1r   r#   )
r   from_arraysr   r*   r   r   r   ilocr   r   )r^   idxrQ   actualr   s        r0   test_mi_data_columnsr4    s    

 
 	L!	,eAh7~C 
C233	?Br5!!$i!8FwwsAvH&(+r@   c                    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<   d|d<   t        d      j                  d      |d<   t        d      j                  d      |d<   t        d      j                  d      |d<   t        d      j                  d      |d<   t        j                  |j                  |j                  dd d	gf<   |j                         }| j                  d |       t        j                  | j!                  d       |       y c c}w )!Nr   r   r   r   r   r   r   rj   rk   rl   rm   rn   r   ro   rp   rq   Trr   r#   rs   rt   ru   rv   nsrw   rx   ry   rz   r|   r{   r}   	df1_mixed)r   r%   r&   r'   r   r(   r*   r	   as_unitr   r   r!   r   r   r   r   r   )r^   r/   rQ   s      r0   test_table_mixed_dtypesr9    sf   	biin$$W--d6l#uRy1!r!X12
B
 BvJBvJS'A+BwKS'A+BwKBwKBvJBvJ ,44T:B| ,44T:B|
+33D9B{O
+33D9B{O&(ffBFF288Aa=6("#		Bb)-..{;R@# 2s   Fc                 J   d}dt        j                  ddd      t        j                  d      g}t        j
                  j                  ||      }t        j                  ddd	      }t        |d|
      }t        |j                  |      j                  t        dj                                     }| j                  d|       | j                  d      }t        j                  ||       | j!                  d|       | j                  d      }t        j                  ||       y )NzSun Mon Tue Wed Thuz
2012-05-01i  r   r#   z
2014-05-01)holidaysweekmaskr   r   r   zMon Tue Wed Thu Fri Sat Sunr	  rL   )r   r   r%   
datetime64r  offsetsCustomBusinessDayr   r   weekdaymapsplitrP   r   r   r   r   )r^   weekmask_egyptr;  
bday_egyptmydtdtsr   r   s           r0   test_calendar_roundtrip_issuerG    s     +N
D!Q
l#H
 --N . J ;;tQ#D
T1:
6Cs{{C $$V,I,O,O,Q%RSAgq!!!'*F61%!$!!'*F61%r@   c                    | }t        t        j                  dt        j                        t	        dd            }t        dt        j                  d      j                  d      z  t        t        d	            t        t        d
      D cg c]  }d| 	 c}            }||d<   ||d<   |j                  d       t        |      dk(  sJ t        j                  ||d          |j                  d       t        |      dk(  sJ t        j                  t         d      5  |j                  d       d d d        ||d<   ||d<   |j                  d       t        |      dk(  sJ ||d<   ||d<   |j                  d       t        |      dk(  sJ ||d<   ||d<   |d= |d= t        |      dk(  sJ y c c}w # 1 sw Y   xY w)Nra   r   rb   rc   re   r   r   r   r   r   r   r   r"   rh   r#   r   z1'No object named a_nonexistent_store in the file'r~   a_nonexistent_storezb/foo)r   r%   r&   rf   r   r   r'   r   r(   r*   remover+   r   r   r   r   KeyError)r^   r   tsr/   rQ   s        r0   test_removerM    s   E	
		"BJJ'z,PR/S
B 
biin$$W--d6l#uRy1!r!X12
B
 E#JE#J	LLu:??"eCj)	LLu:?? 
K
 , 	*+, E#JE'N	LLu:??E#JE'N	LLu:?? E#JE#Jc
c
u:??C 2, ,s   F7&F<<Gc                    t        t        j                  j                  d      j	                  d      t        ddd            }| j                  d|d	
       ||j                  t        d      kD     }| j                  dd      }t        j                  ||       | j                  dd      }t        j                  ||       | j                  dd      }t        j                  ||       y )Nrt   )r   rt   r   r   r6  )rd   unitre   rQ   rL   rM   20130105z!index>datetime.datetime(2013,1,5)zindex>datetime(2013,1,5))r   r%   r   r   r   r   rP   r!   r	   r   r   r   )r^   rQ   r   r   s       r0   test_same_name_scopingrR  9  s    	
		a 009Rd;
B dBw/"((Yz223H!!$(KLF&(+ !!$(KLF&(+!!$(BCF&(+r@   c                 @   t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }d|j                  _        || d	<   | d	   }t        j                  ||       y c c}w )
Nr   r   r   r   r   r   r   rj   frame)r   r%   r&   r'   r   r(   r*   r!   namer   r   )r^   r/   rQ   reconss       r0   test_store_index_namerW  O  s    	biin$$W--d6l#uRy1!r!X12
B
 BHHMM'7#F&"% 2s   Btzz
US/Pacifictable_formatc                    t        t        j                  ddd      t        j                  ddd      gd      j                  |      j	                  |      }t        t        j                  ddd      t        j                  ddd      gd      j	                  |      j                  |      }t        t        j                  d      j                  dd      ||	      }|j                  |d
|        t        |d
      }t        j                  ||d       t        |j                  j                  t               sJ t        |j"                  j                  t               sJ y )Ni  r#   rt   u   colsג)rU  i  u   rowsאr   r   rQ   r   T)check_names)r   r   r,  tz_localizer8  r   r%   r&   r'   r   r   r   r   
isinstancer!   rU  r   r    )rY  r-   rO  rX  r2  idx1rQ   r   s           r0   test_store_index_name_numpy_strr_  \  s   
 	WWT1a "''$1"56	
 
R	  	WWT1a "''$1"56	
 
	R 	 
299Q<''1-s$	GB IIl\I:
<
&C"ct4ciinnc***ckk&&,,,r@   c                 (   t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }|d   }|| d	<   | d	   }t        j                  ||       y c c}w )
Nr   r   r   r   r   r   r   rn   series)	r   r%   r&   r'   r   r(   r*   r   r   )r^   r/   rQ   ra  rV  s        r0   test_store_series_namerb  |  s    	biin$$W--d6l#uRy1!r!X12
B
 WF$M(8$F66* 2s   Bc           	      l   t        t        j                  j                  d      j	                  d      t        t        d            t        ddd            | d	<   t        t        j                  dt        j                  
      t        dd            }|| d	<   t        j                  | d	   |       y )Nrt   r   r   r   ra   rp   r   r   r"   r   rb   rc   re   )r   r%   r   r   r   r   r(   r   r   r&   rf   r   r   )r^   rL  s     r0   test_overwrite_noderd    s    "
		a 009d6l#r<M#
 

		"BJJ'z,PR/S
B M#=-r2r@   c           	         t        t        j                  j                  d      j	                  d      t        t        d            t        ddd            }| }|j                  d	|       |j                  d	      }|j                  t        j                  t        |j                              k(  j                         sJ y )
Nrt   r   r   r   ra   rp   r   r   rQ   )r   r%   r   r   r   r   r(   r   r   select_as_coordinatesvaluesr&   r+   r!   all)r^   rQ   r   ri   s       r0   test_coordinatesri    s    	
		a 009d6l#r<
B E	LLr 	##D)AHH		#bhh-0055777r@   c                    | }t        t        d      t        d      d      }|j                  d|       |j                  ddg      }|j                  t        j                  d      k(  j                         sJ |j                  d|      }|j                  ddd d f   }t        j                  ||       |j                  dd	d
g      }|j                  t        j                  d      dz   k(  j                         sJ |j                  d|      }|j                  ddd d f   }t        j                  ||       t        |t              sJ y )Nr   rn   rp   rQ   zindex<3r{   r   r   rt   zindex>=3zindex<=4r   )r   r*   r   rf  rg  r%   r&   rh  r   r   r   r   r]  r   )r^   r   rQ   ri   r   r   s         r0   test_coordinates2rl    s    E	qa1	2B	LLr##D9+6AHH		!$))+++\\$a\(Fvvac1f~H&(+##D:z*BCAHH		!q((--///\\$a\(Fvvac1f~H&(+ar@   c           	      |   | }t        t        j                  j                  d      j	                  d      t        t        d            t        ddd            }|j                         j                  d	j                  
      }|j                  d|ddg       |j                  d|       |j                  dddg      }|j                  d|      }|j                  d|      }t        ||gd      }t        ||gd      }||j                  dkD  |j                   dkD  z     }t#        j$                  ||d       y )Nrt   r   r   r   ra   rp   r   r   z{}_2r)  r   rn   r   r   zA>0zB>0r#   )axisr   F)
check_freq)r   r%   r   r   r   r   r(   r   r  renamerM   r   rf  r   r
   rn   rp   r   r   )	r^   r   r   r   ri   
df1_result
df2_resultr   r   s	            r0    test_coordinates_multiple_tablesrs    s   E

		a 009d6l#r<C
 ((*

FMM

2C	LL3*L5	LL##EE5>:AeQ'JeQ'JZ,15FsCjq)HaHJJN;<H&(u=r@   c           	         | }t        t        j                  j                  d      j	                  d      t        dd            }|j                  d|       |j                  dd      }|t        |      j                  d	k(     j                  }|j                  |   }|j                  d|
      }t        j                  ||       |j                  d|
      }t        j                  ||       d}t        j                   t"        |      5  |j                  dt        j$                  t'        |      d      
       d d d        t        j                   t"        |      5  |j                  dt        j$                  t'        |      dz         
       d d d        t        j                   t"        |      5  |j                  dt        j$                  t'        |            d	       d d d        t        j                   t"        |      5  |j                  dt        j$                  t'        |            d	d       d d d        t        dd      }|j                  dd
      }||j                  j)                  |         }t        j                  ||       t        t        j                  j                  d      j	                  d            }|j                  d|       |j                  dg d
      }|j                  g d   }t        j                  ||       dgdz  }d|d<   |j                  d|
      }|j*                  |   }t        j                  ||       |j                  dd	d      }|d	d }t        j                  ||       y # 1 sw Y   UxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   }xY w)Nrt   )  rt   20000101ru  rc   re   rQ   r!   r   r   zLwhere must be passed as a string, PyTablesExpr, or list-like of PyTablesExprr~   rf   r   r#   )r   startra   )r   rw  stopi  zindex in selectionra   rt   r   )r   r{   r   TFrw  rx  )r   r%   r   r   r   r   r   select_columnr   monthr!   r1  r   r   r   r   r   r#  r&   r+   isinr   )	r^   r   rQ   ri   r   r   r   r   	selections	            r0   test_coordinates_array_maskr    s   E	
		a 00;T2
B 
LLrD'*AmA$$)*00Ewwu~H \\$e\,F&(+ \\$e\,F&(+ YC	y	, FT3r7)!DEF 
y	, 9T3r7Q;!789 
y	, >T3r7!31=> 
y	, GT3r7!312FG :s3I\\$&:\;F"((--	*+H&(+ 
299((+;;GD	EB	LL\\%y\1Fwwy!H&(+ FRKEE"I\\%u\-Fvve}H&(+ \\%qr\2F!BxH&(+GF F9 9> >G Gs0   2N#3N 91N-2N:N N*-N7:Oc                    t        t        j                  j                  d      j                  d      t        j                  j                  d      j                  d      d      }| j	                  d|       | j                  dddd      }|j                  dd	d
gf   }t        j                  ||       | j                  dddd      }t        |      dk(  sJ |j                  ddd
gf   }t        j                  ||       y )Nrt   r   rk  rQ   zcolumns=['A']r   r   r{  r   rn   r   (   )
r   r%   r   r   r   r   r   r   r   r+   r^   rQ   r   r   s       r0   test_start_stop_tabler    s    	&&q)004&&q)004	

B r"!!$qq!IFvvacC5j!H&(+ !!$r!KFv;!vvbecUl#H&(+r@   c                     t        ddgddgd      }| j                  dgd d|d       | j                  ddgdd	d
      }|j                  d	gddgf   }t	        j
                  ||       y )Nr#   rt   )rj   rl   rj   )selectorr  r  )r  r  r   )r  rw  rx  rl   )r   append_to_multipleselect_as_multipler   r   r   r  s       r0   test_start_stop_multipler  !  s    	Aq61a&1	2B$$Wd+R* %  --	Vz . F vvqcE5>)*H&(+r@   c                    | }t        t        j                  j                  d      j                  d      t        j                  j                  d      j                  d      dt	        dd            }|j                  d|       |j                  ddd	
      }|j                  dd	d d f   }t        j                  ||       |j                  dd	d
      }|j                  d	dd d f   }t        j                  ||       |j                  ddd
      }|j                  ddd d f   }t        j                  ||       |j                  }|j                  d|       |j                  ddd	
      }|j                  dd	 }t        j                  ||       |j                  dd	d
      }|j                  d	d }t        j                  ||       t        dt        j                  d      j                  d      z  t        t        d            t        t!        d      D cg c]  }d| 	 c}            }t        j"                  |j                  dd	ddf<   t        j"                  |j                  dddf<   y c c}w )Nrt   r   rk  r   rc   re   rQ   r   r   r{  ra   r   r  r   r   r   r   r   r   r   r{   r#   r   rz  )r   r%   r   r   r   rP   r   r1  r   r   rn   r   r&   r'   r   r(   r*   r   )r^   r   rQ   r   r   r   r/   s          r0   test_start_stop_fixedr  /  s)   E	&&q)004&&q)004	
 R0
B 
IIdB\\$aa\0FwwqsAvH&(+\\$ab\1FwwqtQwH&(+ \\$br\2Fwwr"uax H&(+ 	A	IIc1\\#QQ\/Fvva{H68,\\#QR\0Fvva|H68, 
biin$$W--d6l#uRy1!r!X12
B
 BGGAaC1HBGGAbD"H 2s   %Jc           	         t        t        j                  j                  d      j	                  d            }|j
                  D cg c]  }|d c}|_        |j                  D cg c]  }|d c}|_        | j                  d|d       |j                  t        j                  j                  t        dt                     d	}| j                  d|g      }t        j                   ||j"                  d d |j                  d d
 f          d}| j                  d|g      }t        j                   ||j"                  d d |j                  d d
d   f          y c c}w c c}w )Nrt   )2   d   3drT  rL   rP  zAST change in PY312)r3   r   zcolumns=df.columns[:75]K   zcolumns=df.columns[:75:2])r   r%   r   r   r   r!   r    rP   applymarkerr   markxfailr   r$   r   r   r   r   )r^   requestrQ   ri   critr   s         r0   test_select_filter_cornerr  ]  s2   	299((+;;IF	GB#%88,a1R&	,BH%'ZZ0QrF)0BJgr'2( 	 	
 %D!!'D62F&"&&BJJsO);"<=&D!!'D62F&"&&BJJu1u,=)=">?% -0s   E'E"c                 B   t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            t        j                  fdd	 |       }t        j                  |       y c c}w )
Nr   r   r   r   r   r   r   c                 *    j                  | d      S NrQ   r   r   prQ   s    r0   r?   z#test_path_pathlib.<locals>.<lambda>|      "))A4)( r@   c                     t        | d      S NrQ   r   r  s    r0   r?   z#test_path_pathlib.<locals>.<lambda>|      HQ4E r@   
r   r%   r&   r'   r   r(   r*   r   round_trip_pathlibr   r-   r/   r   rQ   s      @r0   test_path_pathlibr  t  s    	biin$$W--d6l#uRy1!r!X12
B ""(*E|F "f% 2   Bzstart, stop))r   rt   )r#   rt   )NNc                     t        t        g d      t        g d      d      }|j                  d|       |j                  d| |      }t	        j
                  || | |       y )N)i2i2i2)abcdr  r"   rh   test_datasetr{  )r   r   r   r   r   r   )rw  rx  r^   rQ   r   s        r0    test_contiguous_mixed_data_tabler    sd     
67*+	

B ,!!.D!IF"U4.&1r@   c                 J   t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            fd}d	 }t        j                  |||       }t        j                  |       y c c}w )
Nr   r   r   r   r   r   r   c                 l    t        |       5 }j                  |d       d d d        y # 1 sw Y   y xY wr  )r   r   )r   r   rQ   s     r0   writerz*test_path_pathlib_hdfstore.<locals>.writer  s1    d^ 	'uIIeI&	' 	' 	's   *3c                 \    t        |       5 }t        |d      cd d d        S # 1 sw Y   y xY wr  r   )r   r   s     r0   readerz*test_path_pathlib_hdfstore.<locals>.reader  s*    d^ 	)uE4(	) 	) 	)s   "+r  )r-   r/   r  r  r   rQ   s        @r0   test_path_pathlib_hdfstorer    s    	biin$$W--d6l#uRy1!r!X12
B') ""66<@F"f% 2s   B c                 B   t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            t        j                  fdd	 |       }t        j                  |       y c c}w )
Nr   r   r   r   r   r   r   c                 *    j                  | d      S r  r  r  s    r0   r?   z,test_pickle_path_localpath.<locals>.<lambda>  r  r@   c                     t        | d      S r  r  r  s    r0   r?   z,test_pickle_path_localpath.<locals>.<lambda>  r  r@   r  r  s      @r0   test_pickle_path_localpathr    s    	biin$$W--d6l#uRy1!r!X12
B
 ""(*E|F "f% 2r  propindexesTFc                 ,   t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }t        |      5 }|j                  d|d	g
       d d d        t        j                         5 }t        |      5 }t        j                  |j                  |j                  d |             5 }|j                         }t!        |      t!        |j                               k(  sJ |j                         D ]  }	|j#                  |	      j$                  s|j#                  |	      }
|j#                  |	      }|j&                  |
j&                  k(  sJ | s_|j(                  D ]*  }|j*                  s|
|j                     j*                  r*J   	 d d d        d d 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   0xY w# 1 sw Y   y xY w)Nr   r   r   r   r   r   r   rQ   rn   r   )keysr  )r   r%   r&   r'   r   r(   r*   r   r   tempfileNamedTemporaryFile
contextlibclosingr  rU  r  r   r   is_tablenrowsaxesr"  )r  	temp_filer/   rQ   stnew_fr   tstorer  knew_torig_tr"   s                r0   	test_copyr    s   	biin$$W--d6l#uRy1!r!X12
B 
)	 0
		$#	/0		$	$	& D%i  	DE##

5::Dk
J Dzz|4yC$6666 DA((+44 & 1 1! 4!&!1!1!!4%||u{{::: '%+[[ D#$<<+0=+C+C$C+CDDD	DD D 20 0D D	D 	DD Dsg   G 4G%&H
22G>$A&G2?G2G2'G2G2G>H
%G/2G;7G>>H	H

Hc                 l   t        ddgddgg      }d}t        j                  t        |      5  |j	                  | dd       d d d        |j	                  | dd	       t        | d      }t        j                  ||       |j                  |      sJ |j                  |      sJ y # 1 sw Y   fxY w)
Nr"   r   )r    r  z/Columns index has to be unique for fixed formatr~   rQ   r	  r   rL   )	r   r   r   r$   r   r   r   r   equals)r-   rQ   r   others       r0   test_duplicate_column_namer    s    	C:aVH	5B
;C	z	- :
		,D	9: IIlWI5\4(E"e$99U<<: :s   B**B3c                     t        t        j                  j                  d      j	                  d            }t        dddd|      |_        || d	<   t        j                  | d	   |       y )
Nrt   )ra   r   )size0sra   1sexample)rw  rd   r   rU  rO  rQ   )	r   r%   r   r   normalr   r!   r   r   )r^   rO  rQ   s      r0   !test_preserve_timedeltaindex_typer    sa    	299((+222@	ABBT	BH M$--r2r@   c                    t        t        j                  j                  d      j                  d      t	        d      t	        d            }d|j
                  _        |j                  dd	      }|j
                  j                  |j                  j                         z   }|j                  | d
dd|d       t	        d      }t	        |      }t        | d
|       ||k(  sJ y )Nrt   )r   r   abcdABCDE)r!   r    lettersET)r  r   rQ   r"   F)r   rK   r   rN   r!   BCDr)  )r   r%   r   r   r(   r!   rU  r  r/  r    tolistr   r   )r-   rQ   rN   	cols2loadcols2load_originals        r0    test_columns_multiindex_modifiedr    s     

		a ''/6lW
B
 BHHM	3t	,B88>>BJJ$5$5$77LII!   UIi\43***r@   z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningr    r#   r   r   r   rb   rt   rc   z1 dayr   r   c                    t        t        j                  j                  d      j	                  d      |      }d}t        j                  t        |      5  |j                  | ddd	       d d d        y # 1 sw Y   y xY w)
Nrt   ry  r)  z-cannot have non-object label DataIndexableColr~   rQ   rL   Tr   rM   rN   )	r   r%   r   r   r   r   r   r$   r   )r-   r    rQ   r   s       r0   0test_to_hdf_with_object_column_names_should_failr    sj     
299((+;;GDg	VB
9C	z	- M
		,Dt	LM M Ms   A66A?r   categoryc                    t        t        j                  j                  d      j	                  d      t        ddg|            }|j                  | ddd	
       t        | dd|j                  d    d      }t        |      sJ y )Nrt   ry  r"   rh   r   r)  rQ   rL   Tr  z	index = [r   ]r   )
r   r%   r   r   r   r   r   r   r!   r+   )r-   r   rQ   r   s       r0   /test_to_hdf_with_object_column_names_should_runr    sz     

		a 009sCj.
B IIlW4IHlD)BHHQK=0JKFv;;r@   c                     t        g dg dd      }| j                  d|       |d   j                  j                  | d   d   j                  j                  k(  sJ y )N)r#   rt   r{   r   )r   r}   r   r   r  rQ   r"   )r   rP   rg  strides)r^   rQ   s     r0   test_hdfstore_stridesr  %  sS    	L9	:BdBc7>>!!]4%8%=%D%D%L%LLLLr@   c                     t        dggdgt        dgd            }|j                         }|j                  | d       t	        | d      }t        j                  ||       y )	Nr#   TFboolr   r   r"   r  )r   r   r  r   r   r   r   )r-   rQ   r   r   s       r0   test_store_bool_indexr  ,  sX    	QC54&ugV0L	MBwwyH IIlI$lC(F(F+r@   modelrU  longnameverylongnamec                     t        g d      }t        g dg dd      j                  |t        d      }| j	                  d|dg       | j                  dd	      }||d   |k(     }t        j                  ||       y )
Nr  )
categories)rU  r  r  r   )modelIdvaluerQ   r  r   zmodelId == model)r   r   astypeintr   r   r   r   )r^   r  modelsrQ   r   r   s         r0   &test_select_categorical_string_columnsr  8  s     )MNF	4yI
f#./  r<!!$(:;F"Y-5()H&(+r@   c                     t        j                  ddgddg      }t        dddgi|	      }|j                  | d
       t	        | d
      }t        j                  ||d       y )N)r"   r   )rh   ylevel1level2r.  r  r#   rt   re   testr  F)check_dtype)r   from_tuplesr   r   r   r   r   )r-   r!   rQ   r   s       r0   )test_to_hdf_multiindex_string_dtype_crashr   H  sa    ""J
#;HhCWXE	GaV$E	2BIIlI'l/F"f%8r@   )Zr  r   r   rT   r  rV   numpyr%   r   pandas.compatr   pandasr  r   r   r   r   r   r	   r
   r   r   r   pandas._testing_testingr   pandas.api.typesr   pandas.util.versionr   pandas.io.pytablesr   r   r  
single_cpu
pytestmarkimportorskipr   r1   r  hdf5_versionr\   r_   r   r   r   r   parametrizer   r   r   r   r  r  r&  r*  r4  r9  rG  rM  rR  rW  r_  rb  rd  ri  rl  rs  r  r  r  r  r  r  r  r  r  r  r  r  r  filterwarningsint64rf   r  r  r  r  r  r    r@   r0   <module>r     s               (
 kk$$%
			X	&+  F GCL0N  '4	'4T%
+\BD  #^4ce<!$ 7#0/E4=!A.1eeW-=		
 #0/E4=!A.1eeW-=	
*%8+*%8P B80W, GW#56- 7-$'@;D,A2&4)X,,
& l34'7);<- = 5-<
+38 (>.8,v,*,+\@.
& (FG2 H2&&	& u6D 7D@3+6 RSq!fBHH%sCj

+<++\137	M	 TM 4"45 6M	, "FG, H,9r@   