
    Ti                        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mZ ej>                  j@                  gZ! ejD                  d      Z#d Z$d Z%d	 Z&d
 Z'd Z(d Z)d Z*ej>                  jW                  ddddh e,       f e,       ddhfdhddhf e,       dhfdfddhddhf e,       dhfdfg      d        Z-d Z.d Z/d Z0ej>                  jW                  dd d!g      d"        Z1d# Z2d$ Z3d% Z4d& Z5d' Z6d( Z7d) Z8d* Z9ej>                  jW                  d+dd,g      ej>                  jW                  d-d!d g      d.               Z:d/ Z;d0 Z<d1 Z=d2 Z>d3 Z?d4 Z@d5 ZAd6 ZBd7 ZCd8 ZDd9 ZEej>                  jW                  d:g d;      d<        ZFd= ZGd> ZHej>                  jW                  d?d@dAg      dB        ZIdC ZJdD ZKdE ZLej>                  j                  dF      ej>                  jW                  dG ed dHgej                  I       edJdKgej                  I       edLdMN       edOdMN       edLdMdPQ      g      dR               ZPej>                  jW                  dSddTg      dU        ZQdV ZRdW ZSej>                  jW                  dXg dY      dZ        ZTd[ ZUy)\    N)PY312)
	DataFrameDatetimeIndexIndex
MultiIndexSeries	Timestampconcat
date_rangeperiod_rangetimedelta_range)CategoricalDtype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      i/home/ubuntu/crypto_trading_bot/.venv/lib/python3.12/site-packages/pandas/tests/io/pytables/test_store.pytest_contextr0   (   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c                     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   r/   <lambda>z7test_no_track_times.<locals>.checksum.<locals>.<lambda>?   s    aff-=-L&M     r=   )openiterupdatedigest)filenamehash_factoryr9   chunkr:   r;   s     ` @@r/   checksumz%test_no_track_times.<locals>.checksum<   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,   rL   dfhdfrE   s       r/   create_h5_and_return_checksumz:test_no_track_times.<locals>.create_h5_and_return_checksumC   sd    aSz"l- 	GG!'  	 %%	 	s   AAF)rL   Tr"   )hashlibmd5timesleep)r,   rP   checksum_0_tt_falsechecksum_0_tt_truechecksum_1_tt_falsechecksum_1_tt_truerE   s         @r/   test_no_track_timesrY   8   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 r6   )r'   )temp_hdfstores    r/   test_iter_emptyr\   b   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'matchrN   bah)reprinfor   r$   r%   rc   r   r)   r   r&   r   r'   r(   r	   dtdatetimenanlocr    _consolidatetmassert_produces_warning_handlecreate_grouprootrB   str)r[   performance_warningusing_infer_stringstorer.   rN   warningmsgs           r/   	test_reprr   g   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   rN   )r   r$   r%   r&   r   r'   r(   r)   append
get_storerr~   r   )r[   r.   rN   ss       r/   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)Nr^   r   r_   r`   rb   r!   r   r   r   r   r   r   r   re   zfoo/barrf   z/foo/barz/foo/bri   F)check_stacklevelznode()))r   r$   r%   rc   r   r   r&   r   r'   r(   r)   r   r   r   NaturalNameWarning)r[   r   r.   s      r/   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)Nr^   r   r_   r`   rb   r!   r   r   r   r   r   r   r   re   rq   )   r   
2000-01-01r   rm   ra   freqdf1z0.15.2df2z/'NoneType' object has no attribute 'startswith'r{   )r   r$   r%   rc   r   r   r&   r   r'   r(   r)   randomdefault_rngstandard_normalr   r   r!   _v_attrspandas_versionre   r   get_nodepytestraises	Exceptionselect)r[   r   r.   rN   r   s        r/   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"   rq   rx   )r      rz   )rz         )	   r^      )r^   r   r   zi,i,ir   )r   r   r   )r^   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   rN   )r   r   r$   arrayrM   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                r/   	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)Nr^   r   r_   r`   rb   r!   rq   r^   r   r   r   rm   r   r   rN   )drH   r   handlecomplibz$'HDFStore' object has no attribute ''r{   )rH   r   r   r   _)r   r$   r%   rc   r   r!   r   r   r   r   r   r   r   r'   rN   r   r   r   AttributeErrorgetattr)r[   r   r   resultrN   xr   s          r/   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abcrb   acrN   rI   keyrJ   F)r   rJ   dropnaT)r   r$   r   r'   to_hdfr   r   r   )r,   df_with_missingdf_without_missingreloadeds       r/   test_store_dropnar   D  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   r`   )rk   rm   CDr   ss3rI   r    rz   )r   rJ   min_itemsizelonger)r   T)r   r   rJ   rm   ss4)r   r   r   	set_indexr   copyreset_indexassignr   r   r   r
   r   )r,   rN   r   s      r/   test_to_hdf_with_min_itemsizer  \  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=   rJ   fixedrI   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   rI   surrogatepass)r   rJ   errors)r	  python)storagena_value)
r   r   r   r   pdStringDtyper$   r   r   r   )rJ   r,   r   dataserr   r   r   s           r/   test_to_hdf_errorsr  r  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 r6   r   r   rI   colstcolumnr   s     r/   colz$test_create_table_index.<locals>.col  '    u''*0055v>>r=   rq   r   r   r   r^   rm   r   r   rg   stringri   string2r:   rK   r    Tf2)r    rK   Fz1cannot create table index on a Fixed format storer{   )r   r$   r   r   r   r   r'   r   r   
is_indexedrM   r   r   	TypeErrorcreate_table_indexr[   r  rN   r   r   s       @r/   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 r6   r  r  s     r/   r  z:test_create_table_index_data_columns_argument.<locals>.col  r  r=   rq   r   r   r   r^   rm   r   r   rg   r  ri   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       @r/   -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   r`   dateidnamesr!   )r   g333333?g?gffffff?g      ?rb   rN   Tr  zid == 1r   r"   )
r   from_arraysr   r)   r   r   r   ilocr   r   )r[   idxrN   actualr   s        r/   test_mi_data_columnsr1    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   rg   rh   ri   rj   rk   r   rl   rm   rn   Tro   r"   rp   rq   rr   rs   nsrt   ru   rv   rw   ry   rx   rz   	df1_mixed)r   r$   r%   r&   r   r'   r)   r	   as_unitr   r   r    r   r   r   r   r   )r[   r.   rN   s      r/   test_table_mixed_dtypesr6    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  rI   )r   r   r$   
datetime64r  offsetsCustomBusinessDayr   r   weekdaymapsplitrM   r   r   r   r   )r[   weekmask_egyptr8  
bday_egyptmydtdtsr   r   s           r/   test_calendar_roundtrip_issuerD    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)Nr^   r   r_   r`   rb   r   r   r   r   r   r   r   r!   re   r"   r   z1'No object named a_nonexistent_store in the file'r{   a_nonexistent_storezb/foo)r   r$   r%   rc   r   r   r&   r   r'   r)   remover*   r   r   r   r   KeyError)r[   r   tsr.   rN   s        r/   test_removerJ    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 )Nrq   )r   rq   r   r   r3  )ra   unitrb   rN   rI   rJ   20130105z!index>datetime.datetime(2013,1,5)zindex>datetime(2013,1,5))r   r$   r   r   r   r   rM   r    r	   r   r   r   )r[   rN   r   r   s       r/   test_same_name_scopingrO  4  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   rg   frame)r   r$   r%   r&   r   r'   r)   r    namer   r   )r[   r.   rN   reconss       r/   test_store_index_namerT  J  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"   rq   u   colsג)rR  i  u   rowsאr   r   rN   r   T)check_names)r   r   r)  tz_localizer5  r   r$   r%   r&   r   r   r   r   
isinstancer    rR  r   r   )rV  r,   rL  rU  r/  idx1rN   r   s           r/   test_store_index_name_numpy_strr\  W  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   rk   series)	r   r$   r%   r&   r   r'   r)   r   r   )r[   r.   rN   r^  rS  s        r/   test_store_series_namer_  w  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 )Nrq   r   r   r   r^   rm   r   r   r!   r   r_   r`   rb   )r   r$   r   r   r   r   r'   r   r   r%   rc   r   r   )r[   rI  s     r/   test_overwrite_nodera    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 )
Nrq   r   r   r   r^   rm   r   r   rN   )r   r$   r   r   r   r   r'   r   r   select_as_coordinatesvaluesr%   r*   r    all)r[   rN   r   rf   s       r/   test_coordinatesrf    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   rk   rm   rN   zindex<3rx   r   r   rq   zindex>=3zindex<=4r   )r   r)   r   rc  rd  r$   r%   re  r   r   r   r   rZ  r   )r[   r   rN   rf   r   r   s         r/   test_coordinates2ri    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 )Nrq   r   r   r   r^   rm   r   r   z{}_2r&  r   rk   r  r   zA>0zB>0r"   )axisr   F)
check_freq)r   r$   r   r   r   r   r'   r   r  renamerJ   r   rc  r   r
   rk   rm   r   r   )	r[   r   r   r   rf   
df1_result
df2_resultr   r   s	            r/    test_coordinates_multiple_tablesrp    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)Nrq   )  rq   20000101rr  r`   rb   rN   r    r   r   zLwhere must be passed as a string, PyTablesExpr, or list-like of PyTablesExprr{   rc   r   r"   )r   startr^   )r   rt  stopi  zindex in selectionr^   rq   r   )r   rx   r   TFrt  ru  )r   r$   r   r   r   r   r   select_columnr   monthr    r.  r   r   r   r   r   r   r%   r*   isinr   )	r[   r   rN   rf   r   r   r   r   	selections	            r/   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 )Nrq   r   rh  rN   zcolumns=['A']r   r   rx  r   rk   r   (   )
r   r$   r   r   r   r   r   r   r   r*   r[   rN   r   r   s       r/   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"   rq   )rg   ri   rg   )selectorr  r  )r  r  r   )r  rt  ru  ri   )r   append_to_multipleselect_as_multipler   r   r   r  s       r/   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 )Nrq   r   rh  r   r`   rb   rN   r   r   rx  r^   r   r  r   r   r   r   r   r   r   rx   r"   r   rw  )r   r$   r   r   r   rM   r   r.  r   r   rk   r   r%   r&   r   r'   r)   r   )r[   r   rN   r   r   r   r.   s          r/   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 )Nrq   )2   d   3drQ  rI   rM  zAST change in PY312)reasonr   zcolumns=df.columns[:75]K   zcolumns=df.columns[:75:2])r   r$   r   r   r   r    r   rM   applymarkerr   markxfailr   r#   r   r   r   r   )r[   requestrN   rf   critr   s         r/   test_select_filter_cornerr  X  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 NrN   r   r   prN   s    r/   r<   z#test_path_pathlib.<locals>.<lambda>w      "))A4)( r=   c                     t        | d      S NrN   r   r  s    r/   r<   z#test_path_pathlib.<locals>.<lambda>w      HQ4E r=   
r   r$   r%   r&   r   r'   r)   r   round_trip_pathlibr   r,   r.   r   rN   s      @r/   test_path_pathlibr  o  s    	biin$$W--d6l#uRy1!r!X12
B ""(*E|F "f% 2   Bzstart, stop))r   rq   )r"   rq   )NNc                     t        t        g d      t        g d      d      }|j                  d|       |j                  d| |      }t	        j
                  || | |       y )N)i2i2i2)abcdr  r!   re   test_datasetrx  )r   r   r   r   r   r   )rt  ru  r[   rN   r   s        r/    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   rN   s     r/   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     r/   readerz*test_path_pathlib_hdfstore.<locals>.reader  s*    d^ 	)uE4(	) 	) 	)s   "+r  )r,   r.   r  r  r   rN   s        @r/   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    r/   r<   z,test_pickle_path_localpath.<locals>.<lambda>  r  r=   c                     t        | d      S r  r  r  s    r/   r<   z,test_pickle_path_localpath.<locals>.<lambda>  r  r=   r  r  s      @r/   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   rN   rk   r  )keysr  )r   r$   r%   r&   r   r'   r)   r   r   tempfileNamedTemporaryFile
contextlibclosingr  rR  r  r   r   is_tablenrowsaxesr  )r  	temp_filer.   rN   stnew_fr   tstorer  knew_torig_tr!   s                r/   	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{   rN   r  r   rI   )	r   r   r   r#   r   r   r   r   equals)r,   rN   r   others       r/   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 )
Nrq   )r^   r   )size0sr^   1sexample)rt  ra   r   rR  rL  rN   )	r   r$   r   r   normalr   r    r   r   )r[   rL  rN   s      r/   !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 )Nrq   )r   r   abcdABCDE)r    r   lettersET)r  r   rN   r!   F)r   rH   r   rK   r    BCDr&  )r   r$   r   r   r'   r    rR  r  r,  r   tolistr   r   )r,   rN   rK   	cols2loadcols2load_originals        r/    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   r_   rq   r`   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)
Nrq   rv  r&  z-cannot have non-object label DataIndexableColr{   rN   rI   Tr   rJ   rK   )	r   r$   r   r   r   r   r   r#   r   )r,   r   rN   r   s       r/   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 )Nrq   rv  r!   re   r   r&  rN   rI   Tr  z	index = [r   ]r   )
r   r$   r   r   r   r   r   r   r    r*   )r,   r   rN   r   s       r/   /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"   rq   rx   r   )r   rz   r   r   r  rN   r!   )r   rM   rd  strides)r[   rN   s     r/   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,   rN   r   r   s       r/   test_store_bool_indexr  '  sX    	QC54&ugV0L	MBwwyH IIlI$lC(F(F+r=   modelrR  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)rR  r  r  r   )modelIdvaluerN   r  r  zmodelId == model)r   r   astypeintr   r   r   r   )r[   r  modelsrN   r   r   s         r/   &test_select_categorical_string_columnsr  3  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   )re   ylevel1level2r+  r  r"   rq   rb   testr  F)check_dtype)r   from_tuplesr   r   r   r   r   )r,   r    rN   r   s       r/   )test_to_hdf_multiindex_string_dtype_crashr  C  sa    ""J
#;HhCWXE	GaV$E	2BIIlI'l/F"f%8r=   )Vr  r   r   rQ   r  rS   numpyr$   r   pandas.compatr   pandasr  r   r   r   r   r   r	   r
   r   r   r   pandas._testing_testingr   pandas.api.typesr   pandas.io.pytablesr   r   r  
single_cpu
pytestmarkimportorskipr   r0   rY   r\   r   r   r   r   parametrizer   r   r   r   r  r  r#  r'  r1  r6  rD  rJ  rO  rT  r\  r_  ra  rf  ri  rp  r}  r  r  r  r  r  r  r  r  r  r  r  r  filterwarningsint64rc   r  r  r  r  r  r   r=   r/   <module>r     sf              
 kk$$%
			X	&+ '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=   