o
    ŀg                     @   s"  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	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mZ d dlmZmZ ejjZ e!dZ"dd Z#dd	 Z$d
d Z%dd Z&dd Z'dd Z(ej)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d  Z+d!d" Z,d#d$ Z-d%d& Z.d'd( Z/ej)d)d*d+gd,d- Z0d.d/ Z1d0d1 Z2d2d3 Z3d4d5 Z4d6d7 Z5d8d9 Z6d:d; Z7d<d= Z8ej)d>dd?gej)d@d+d*gdAdB Z9dCdD Z:dEdF Z;dGdH Z<dIdJ Z=dKdL Z>dMdN Z?dOdP Z@dQdR ZAej)dSg dTdUdV ZBdWdX ZCdYdZ ZDd[d\ ZEej)d]d^d_gd`da ZFdbdc ZGddde ZHdfdg ZIejJdhej)died djgejKdkedldmgejLdkedndodpedqdodpedndodrdsgdtdu ZMej)dvddwgdxdy ZNdzd{ ZOd|d} ZPdS )~    N)
	DataFrameDatetimeIndexIndex
MultiIndexSeries	Timestampconcat
date_rangeperiod_rangetimedelta_range)_maybe_removeensure_clean_storeHDFStoreread_hdftablesc              	   C   s4  t | %}zt|}td1 sw   Y  W n	 ty"   Y nw W d    n1 s-w   Y  t | Y}t|<}tdtdd tt	dt
dtdd td	D t
dd
|d< t|dksgJ t|d tksqJ W d    n1 s{w   Y  W d    d S W d    d S 1 sw   Y  d S )Nblah皙?x         ABCDdtypec                 S      g | ]}d | qS zi- .0ir   r   W/var/www/html/myenv/lib/python3.10/site-packages/pandas/tests/io/pytables/test_store.py
<listcomp>3       z test_context.<locals>.<listcomp>r   columnsindexa   )tmensure_cleanr   
ValueErrorr   nparangereshaper   listobjectrangelentype)
setup_pathpathtblr   r   r!   test_context'   s.   


"r7   c                    st   t jdfdd  fdd}|| dd}|| dd}td	 || dd}|| dd}||ks2J ||ks8J d S )
N   c                    sd   | t | dt fdddD ]}| qW d     S 1 s)w   Y   S )Nrbc                      s     j S N)read
block_sizer   chunk_num_blocksfhr   r!   <lambda>@   s    z7test_no_track_times.<locals>.checksum.<locals>.<lambda>    )openiterupdatedigest)filenamehash_factoryr>   chunkr   r=   r!   checksum=   s   
z%test_no_track_times.<locals>.checksumc              	      sf   |  }t ddgi}t|dd}|jd|ddd |d W d     |S 1 s*w   Y   |S )Nr'   r(   wmodetableT)formatdata_columnsr&   track_times)r   r   put)tmp_pathrQ   r5   dfhdfrJ   r4   r   r!   create_h5_and_return_checksumD   s   


z:test_no_track_times.<locals>.create_h5_and_return_checksumF)rQ   Tr(   )hashlibmd5timesleep)rS   r4   rW   checksum_0_tt_falsechecksum_0_tt_truechecksum_1_tt_falsechecksum_1_tt_truer   rV   r!   test_no_track_times9   s   
r`   c                 C   s>   t | }t|g ksJ W d    d S 1 sw   Y  d S r:   )r   r/   r4   storer   r   r!   test_iter_emptyd   s   
"rc   c              	   C   s  t | 	}t| |  ttjdtjdtdddd|d< ttdddd	 tdD d
|d< t	dtd
d ttdtdtdd	 tdD tdd|d< t	dtd
d ttdtdtdd	 tdD tdd}d|d< d|d< |d dk|d< |d dk|d< d|d< d |d!< d"|d#< td$|d%< td&|d'< td(d d"dd|d)< td(d d*dd|d+< tj|j|jd*d, dgf< | }ttjj ||d-< W d    n1 sw   Y  |j|jjd. |jt|v sJ |jt|v sJ |  W d    n	1 sw   Y  t | <}t	dtd
d ttdtdtd/d	 tdD tdd}|d-| | d-}t| t| W d    d S 1 s[w   Y  d S )0N
   r   
2020-01-01periodsr&   r'   float64c                 S   r   )i_r   r   r   r   r!   r"   r   r#   ztest_repr.<locals>.<listcomp>)r   r&   br   r   r   r   c                 S   r   r   r   r   r   r   r!   r"   w   r#   r   r$   cc                 S   r   r   r   r   r   r   r!   r"   }   r#   fooobj1barobj2Ar   bool1Bbool2Tbool3r(   int1   int220010102
timestamp120010103
timestamp2i  	datetime1   	datetime2   rT   bahc                 S   r   r   r   r   r   r   r!   r"      r#   )!r   reprinfor   r,   r-   ri   r	   r1   r   r.   r   r/   r0   r   dtdatetimenanlocr&   _consolidater)   assert_produces_warningpderrorsPerformanceWarning_handlecreate_grouprootrG   strappend
get_storer)r4   rb   rT   sr   r   r!   	test_reprj   sf   





-

$r   c              	   C   s  t | }ttjdtjdtdddd|d< tdtdd	 tt	d
t
dtdd tdD t
dd|d< tdtdd	 tt	d
t
dtdd tdD t
dd|d< d|v saJ d|v sgJ d|vsmJ d|v ssJ d|v syJ d|vsJ d|vsJ tjtjdd* tdtdd	 tt	d
t
dtdd tdD t
dd|d< W d    n1 sw   Y  d|v sJ W d    d S 1 sw   Y  d S )Nrd   r   re   rf   rh   r'   r   r   r   r   c                 S   r   r   r   r   r   r   r!   r"      r#   z!test_contains.<locals>.<listcomp>r   r$   rk   c                 S   r   r   r   r   r   r   r!   r"      r#   zfoo/barrl   z/foo/barz/foo/bro   F)check_stacklevelc                 S   r   r   r   r   r   r   r!   r"      r#   znode()))r   r   r,   r-   ri   r	   r   r.   r   r/   r0   r1   r)   r   r   NaturalNameWarningra   r   r   r!   test_contains   s@   



"r   c              	   C   s  t | }ttjdtjdtdddd|d< tdtdd	 tt	d
t
dtdd tdD t
dd|d< ttjddtt	d
t
dtddddd}t|d |d|d d  |d|dd   |jjjjdksuJ |jjjjdksJ |jjjjdksJ t|d |d| d |dj_d}tjt|d |d W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nrd   r   re   rf   rh   r'   r   r   r   r   c                 S   r   r   r   r   r   r   r!   r"      r#   z#test_versioning.<locals>.<listcomp>r   r$   rk   rw   )   r   
2000-01-01r   rs   rg   freqdf1z0.15.2df2z/'NoneType' object has no attribute 'startswith'match)r   r   r,   r-   ri   r	   r   r.   r   r/   r0   r1   randomdefault_rngstandard_normalr   r   r   r'   _v_attrspandas_versionrk   r   get_nodepytestraises	Exceptionselect)r4   rb   rT   msgr   r   r!   test_versioning   s<   




"r   zwhere, expected/first_groupsecond_groupr   r   third_groupdf3s1df4) /first_group/second_group/second_group/third_groupr   )r   r   c                 C   s  t g dt g dt g dt g dtg dtg dg dgtjddgddtjdd	gddd
}tddd}|d|d  |d|d  |d|d  |d|d  |d|d  |jdd|d  |jjdd|d d |jjdd|d d t	t
|j| dt	|ksJ |j| dD ]G\}}}||v sJ || \}}|t|ksJ |t|ksJ |D ]#}	d||	g}
||
}d |	v rt|||	  qt|||	  qqW d    d S 1 sw   Y  d S )!N)r(   rw   r~   )r      r   )r         )	   rd      )rd   r   r   zi,i,ir   )r   r   r   )rd   r      )r   r   r   r   r   a1tb1tb2zwalk_groups.hdfrK   rL   z/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   rT   )r   r   r,   arrayr   rR   r   create_arraycreate_tabler2   r/   walksetjoingetr)   assert_frame_equalassert_series_equal)r   expectedobjsrb   r5   groupsleavesexpected_groupsexpected_framesleaf
frame_pathr   r   r   r!   	test_walk   sB   




 
"r   c              
   C   s2  t | }ttjdtjdtdddd}||d< |j}t|| t	|d}t|| t
tjddttd	tdtd
dddd}||d< |j}t|| dD ]$}d| d}tjt|d t	|| W d    n1 stw   Y  qUdD ]
}t	|d|  q|W d    d S 1 sw   Y  d S )Nrd   r   re   rf   rh   r'   rw   rd   r   r   r   rs   r   r$   rT   )drM   r5   handlecomplibz$'HDFStore' object has no attribute ''r   )rM   r5   r   r   _)r   r   r,   r-   ri   r	   r'   r)   r   getattrr   r   r   r   r   r/   r0   rT   r   r   r   AttributeError)r4   rb   r   resultrT   xr   r   r   r!   test_getattr)  s6   

"r   c                 C   s   t dtjdgdtjtjgdtdd}t ddgdtjgdtdd}| | }|j|dd	d
 t|d}t|| | | }|j|dd	dd t|d}t|| | | }|j|dd	dd t|d}t|| d S )N               @      ?)col1col2abcrh   acrT   rN   keyrO   F)r   rO   dropnaT)r   r,   r   r/   to_hdfr   r)   r   )rS   r4   df_with_missingdf_without_missingr5   reloadedr   r   r!   test_store_dropnaJ  s&   


r   c                 C   sh   | | }d}t ddddddddg}tjt|d ||d W d    d S 1 s-w   Y  d S )NztStarting with pandas version 3.0 all arguments of to_hdf except for the argument 'path_or_buf' will be keyword-only.r(   rw   r~   )rq   rs   Cr   r   )r   r)   r   FutureWarningr   )rS   r4   r5   r   rT   r   r   r!   test_keyword_deprecatione  s   "r   c                 C   s   | | }t g dg dtg dtdtddddd	}|j|d
dddid |  jddd	}|j|d
ddd t	
t|d
t||g |d j|ddddid |d j|dddd t	t|dt|d |d g d S )N)r   r   r   g      @g      @)r   r   r   r   r   )foo1foo2foo3foo4foo5r   20130101r   rf   )rq   rs   r   Dr   ss3rN   r&   r   )r   rO   min_itemsizelonger)r   T)r   r   rO   rs   ss4)r   r   r0   r	   	set_indexr   copyreset_indexassignr)   r   r   r   r   )rS   r4   r5   rT   r   r   r   r!   test_to_hdf_with_min_itemsizes  s"   
&r  rO   fixedrN   c                 C   sN   dg}t |t|d}| | }|j|d|dd t|ddd}t|| d S )Nu   foorh   rN   surrogatepass)r   rO   r   )r   )r   r   r   r   r)   r   )rS   rO   r4   dataserr5   r   r   r   r!   test_to_hdf_errors  s   r  c              	      s  t |   fdd}ttjddttdtdt	ddd	d
d}d|d< d|d<  j
d|ddgd |ddjdu s@J |ddjdu sJJ |ddjdu sTJ  j
d|dgddgd |ddjdu sjJ |ddjdu stJ |ddjdu s~J t d  d| d}tjt|d  d W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nc                       t  | jj|S r:   r   r   rN   colstcolumnrb   r   r!   col     z$test_create_table_index.<locals>.colrw   r   r   r   r   rd   rs   r   r$   rm   stringro   string2r?   rP   r&   Tf2)r&   rP   Fz1cannot create table index on a Fixed format storer   )r   r   r,   r   r   r   r   r/   r0   r	   r   
is_indexedr   rR   r   r   	TypeErrorcreate_table_indexr4   r  rT   r   r   r  r!   test_create_table_index  s4   

"r  c              	      sF  t |   fdd}ttjddttdtdt	ddd	d
d}d|d< d|d<  j
d|dgd |ddjdu s?J |ddjdu sIJ d}tjt|d |ddj W d    n1 scw   Y  d}tjt|d  jddgd W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nc                    r  r:   r  r
  r  r   r!   r    r  z:test_create_table_index_data_columns_argument.<locals>.colrw   r   r   r   r   rd   rs   r   r$   rm   r  ro   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/   r0   r	   r   r  r   r   r   r  r  r   r  r!   -test_create_table_index_data_columns_argument  s0   
"r  c                 C   s   t jtdddtdgddgd}tdg di|d	}t| (}|jd
|dd |jd
dd}|jdgd d f }t	
|| W d    d S 1 sJw   Y  d S )Nr   r   rf   dateid)namesr'   )r   g333333?g?gffffff?g      ?rh   rT   Tr  zid == 1r   r(   )r   from_arraysr	   r1   r   r   r   r   ilocr)   r   )r4   idxrT   rb   actualr   r   r   r!   test_mi_data_columns  s   
"r"  c                 C   s@  t dtdd ttdtdtdd tdD tdd	}d
|d< d|d< |d dk|d< |d dk|d< d|d< d|d< d|d< td	d|d< td	d|d< td	d|d< td	d|d< tj
|j|jd d! dgf< | }t| }|d"| t|d"| W d    d S 1 sw   Y  d S )#Nr   r   r   r   r   c                 S   r   r   r   r   r   r   r!   r"     r#   z+test_table_mixed_dtypes.<locals>.<listcomp>r   r$   rm   rn   ro   rp   rq   r   rr   rs   rt   Tru   r(   rv   rw   rx   ry   nsrz   r{   r|   r}   r   r~   r   	df1_mixed)r   r,   r-   r.   r   r/   r0   r1   r   as_unitr   r   r&   r   r   r   r)   r   r   r4   rT   rb   r   r   r!   test_table_mixed_dtypes  s,   
"r'  c           	      C   s   d}dt dddtdg}tjj||d}t ddd	}t|d|d
}t|j	|
td }t| +}|d| |d}t|| |d| |d}t|| W d    d S 1 sdw   Y  d S )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  rN   )r   r   r,   
datetime64r   offsetsCustomBusinessDayr	   r   weekdaymapsplitr   rR   r   r)   r   r   )	r4   weekmask_egyptr(  
bday_egyptmydtdtsr   rb   r   r   r   r!   test_calendar_roundtrip_issue  s&   


"r4  c              	   C   s  t | }ttjdtjdtdddd}tdtdd tt	d	t
dtd
d tdD t
dd}||d< ||d< t|d t|dksJJ t||d  t|d t|dks_J tjtdd |d W d    n1 svw   Y  ||d< ||d< t|d t|d t|dksJ ||d< ||d< t|d t|dksJ ||d< ||d< |d= |d= t|dksJ W d    d S 1 sw   Y  d S )Nrd   r   re   rf   rh   r   r   r   r   c                 S   r   r   r   r   r   r   r!   r"   &  r#   ztest_remove.<locals>.<listcomp>r   r$   r'   rk   r(   r   z1'No object named a_nonexistent_store in the file'r   a_nonexistent_storezb/foorm   )r   r   r,   r-   ri   r	   r   r.   r   r/   r0   r1   r   r2   r)   r   r   r   KeyErrorremove)r4   rb   tsrT   r   r   r!   test_remove  sH   





"r9  c                 C   s   t | O}ttjddtdddd}|jd|dd	 ||jt	d
k }|
dd}t|| |
dd}t|| |
dd}t|| W d    d S 1 sVw   Y  d S )Nrw   )r   rw   r   r   rf   rh   rT   rN   rO   20130105z!index>datetime.datetime(2013,1,5)zindex>datetime(2013,1,5))r   r   r,   r   r   r   r	   rR   r&   r   r   r)   r   )r4   rb   rT   r   r   r   r   r!   test_same_name_scopingK  s   

"r<  c                 C   s   t dtdd ttdtdtdd tdD tdd	}d
|j_	t
| }||d< |d }t|| W d    d S 1 sBw   Y  d S )Nr   r   r   r   r   c                 S   r   r   r   r   r   r   r!   r"   f  r#   z)test_store_index_name.<locals>.<listcomp>r   r$   rm   frame)r   r,   r-   r.   r   r/   r0   r1   r&   namer   r)   r   )r4   rT   rb   reconsr   r   r!   test_store_index_nameb     
"r@  tzz
US/Pacifictable_formatc           
      C   s   t tdddtdddgdd|}t tdddtdddgdd||}ttddd||d	}| | }|j	|d
|d t
|d
}	tj||	dd t|	jjts]J t|	jjtsfJ d S )Ni  r(   rw   u   colsג)r>  i  u   rowsאr   r$   rT   r   T)check_names)r   r   r  tz_localizer%  r   r,   r-   r.   r   r   r)   r   
isinstancer&   r>  r   r%   )
rS   rC  r4   unitrB  r   idx1rT   r5   r   r   r   r!   test_store_index_name_numpy_strp  s(   
rI  c                 C   s   t dtdd ttdtdtdd tdD tdd	}|d
 }t| }||d< |d }t	
|| W d    d S 1 sBw   Y  d S )Nr   r   r   r   r   c                 S   r   r   r   r   r   r   r!   r"     r#   z*test_store_series_name.<locals>.<listcomp>r   r$   rq   series)r   r,   r-   r.   r   r/   r0   r1   r   r)   r   )r4   rT   rJ  rb   r?  r   r   r!   test_store_series_name  rA  rK  c              	   C   s   t | @}ttjddttdtdt	ddddd	|d
< t
tjdtjdt	dddd}||d
< t|d
 | W d    d S 1 sGw   Y  d S )Nrw   r   r   r   r   rd   rs   r   r$   r'   re   rf   rh   )r   r   r,   r   r   r   r   r/   r0   r	   r   r-   ri   r)   r   )r4   rb   r8  r   r   r!   test_overwrite_node  s   

"rL  c              	   C   sB  t tjddttdtdtddddd	}t	| }t
|d
 |d
| |d
}|jtt|jk s>J t
|d
 t tdtdd}|d
| |d
dg}|jtdk sgJ |jd
|d}|jddd d f }t|| |d
ddg}|jtdd k sJ |jd
|d}|jddd d f }t|| t|tsJ t
|d t
|d t tjddttdtdtddddd	}| jdjd}|jd|ddgd |d| |dddg}|d|}|d|}	t||	gdd}t||gdd}||jdk|jdk@  }tj||dd W d    n	1 s3w   Y  t	| Y}t tjdd td!d"d#d$}|d
| |d
d%}|t|j dk j}
|j!|
 }|jd
|
d}t|| |jd
|
d}t|| d&}t"j#t$|d' |jd
tjt|d(dd W d    n	1 sw   Y  t"j#t$|d' |jd
tt|d d W d    n	1 sw   Y  t"j#t$|d' |jd
tt|dd) W d    n	1 sw   Y  t"j#t$|d' |jd
tt|ddd* W d    n	1 sw   Y  td!d+d#}|jd
d,d}||j%| }t|| t tjdd-}|d| |jdg d.d}|j!g d. }t|| d/gd }
d|
d0< |jd|
d}|j|
 }t|| |jdddd1}|dd }t|| W d    d S 1 sw   Y  d S )2Nrw   r   r   r   r   rd   rs   r   r$   rT   r   rq   rs   zindex<3r~   r   r   zindex>=3zindex<=4r   r   r   z{}_2r  rq   r  zA>0zB>0r(   )axisF)
check_freq)  rw   20000101rP  rf   rh   r&   zLwhere must be passed as a string, PyTablesExpr, or list-like of PyTablesExprr   ri   )r   start)r   rR  stopi  zindex in selectionrd   rw   )r   r~   r   TrR  rS  )&r   r,   r   r   r   r   r/   r0   r	   r   r   r   select_as_coordinatesvaluesr-   r2   r&   allr1   r   r   r)   r   rF  r   renamerO   r   rq   rs   select_columnr   monthr  r   r   r  isin)r4   rT   rb   rl   r   r   r   r   
df1_result
df2_resultr   r   	selectionr   r   r!   test_coordinates  s   




2



$ra  c                 C   s   t | ^}ttjddtjddd}|d| |jddddd}|jdd	d
gf }t	|| |jddddd}t
|dksJJ |jddd
gf }t	|| W d    d S 1 sew   Y  d S )Nrw   r   rM  rT   zcolumns=['A']r   r   rV  r   rq   r   (   )r   r   r,   r   r   r   r   r   r)   r   r2   r4   rb   rT   r   r   r   r   r!   test_start_stop_table   s   
"rd  c                 C   s   t | ;}tddgddgd}|jdgd d|dd |jddgdd	dd
}|jd	gddgf }t|| W d    d S 1 sBw   Y  d S )Nr(   rw   )rm   ro   rm   )selectorr  re  )re  r  r   )re  rR  rS  ro   )r   r   append_to_multipleselect_as_multipler   r)   r   rc  r   r   r!   test_start_stop_multiple6  s   
"rh  c                 C   s  t | }ttjddtjdddtdddd}|d| |jddd	d
}|jdd	d d f }t	
|| |jdd	dd
}|jd	dd d f }t	
|| |jdddd
}|jddd d f }t	
|| |j}|d| |jddd	d
}|jdd	 }t	|| |jdd	dd
}|jd	d }t	|| tdtdd ttdtdtdd tdD tdd}tj|jdd	ddf< tj|jdddf< W d    d S 1 sw   Y  d S )Nrw   r   rM  r   rf   rh   rT   r   r   rV  rd   r   rb  r   r   r   r   r   r   c                 S   r   r   r   r   r   r   r!   r"   m  r#   z)test_start_stop_fixed.<locals>.<listcomp>r$   r~   r(   r   rU  )r   r   r,   r   r   r	   rR   r   r  r)   r   rq   r   r-   r.   r   r/   r0   r1   r   )r4   rb   rT   r   r   r   r   r   r!   test_start_stop_fixedE  sB   

"ri  c              
   C   s   t tjdd}dd |jD |_dd |jD |_t| H}|jd|dd d	}|	d|g}t
||jd d |jd d
 f  d}|	d|g}t
||jd d |jd d
d f  W d    d S 1 slw   Y  d S )Nrw   )2   d   c                 S      g | ]}|d qS 3dr   r   rl   r   r   r!   r"   u      z-test_select_filter_corner.<locals>.<listcomp>c                 S   rl  rm  r   ro  r   r   r!   r"   v  rp  r=  rN   r:  zcolumns=df.columns[:75]K   zcolumns=df.columns[:75:2])r   r,   r   r   r   r&   r%   r   rR   r   r)   r   r   )r4   rT   rb   critr   r   r   r!   test_select_filter_corners  s   
$("rs  c                     h   t dtdd ttdtdtdd tdD tdd	 t	 fd
ddd } t
 |  d S )Nr   r   r   r   r   c                 S   r   r   r   r   r   r   r!   r"     r#   z%test_path_pathlib.<locals>.<listcomp>r   r$   c                        j | ddS NrT   r   r   prT   r   r!   rA         z#test_path_pathlib.<locals>.<lambda>c                 S   
   t | dS NrT   r   ry  r   r   r!   rA        
 r   r,   r-   r.   r   r/   r0   r1   r)   round_trip_pathlibr   r   r   r{  r!   test_path_pathlib  s   r  zstart, stop))r   rw   )r(   rw   )NNc                 C   s|   t tg dtg dd}t|!}|d| |jd| |d}t|| | | W d    d S 1 s7w   Y  d S )N)i2i2i2)abcdr  r'   rk   test_datasetrV  )r   r   r   r   r   r)   r   )rR  rS  r4   rT   rb   r   r   r   r!    test_contiguous_mixed_data_table  s   


"r  c                     p   t dtdd ttdtdtdd tdD tdd	  fd
d} dd }t	| |}t
 | d S )Nr   r   r   r   r   c                 S   r   r   r   r   r   r   r!   r"     r#   z.test_path_pathlib_hdfstore.<locals>.<listcomp>r   r$   c                    <   t | } j|dd W d    d S 1 sw   Y  d S rv  r   r   r5   rb   r{  r   r!   writer     
"z*test_path_pathlib_hdfstore.<locals>.writerc                 S   6   t | }t|dW  d    S 1 sw   Y  d S r~  r   r  r   r   r!   reader     
$z*test_path_pathlib_hdfstore.<locals>.readerr  r  r  r   r   r{  r!   test_path_pathlib_hdfstore     r  c                     rt  )Nr   r   r   r   r   c                 S   r   r   r   r   r   r   r!   r"     r#   z.test_pickle_path_localpath.<locals>.<listcomp>r   r$   c                    ru  rv  rx  ry  r{  r   r!   rA     r|  z,test_pickle_path_localpath.<locals>.<lambda>c                 S   r}  r~  r  ry  r   r   r!   rA     r  r  r  r   r{  r!   test_pickle_path_localpath  s   r  c                     r  )Nr   r   r   r   r   c                 S   r   r   r   r   r   r   r!   r"     r#   z0test_path_localpath_hdfstore.<locals>.<listcomp>r   r$   c                    r  rv  r  r  r{  r   r!   r    r  z,test_path_localpath_hdfstore.<locals>.writerc                 S   r  r~  r   r  r   r   r!   r    r  z,test_path_localpath_hdfstore.<locals>.reader)r   r,   r-   r.   r   r/   r0   r1   r)   round_trip_localpathr   r  r   r{  r!   test_path_localpath_hdfstore  r  r  propindexesTFc                 C   s  t dtdd ttdtdtdd tdD tdd	}t	 }t
|}|jd
|dgd W d    n1 s=w   Y  t z}t
|f}t|j|jd | dJ}| }t|t| ksiJ | D ]-}||jr||}	||}
|
j|	jksJ | r|
jD ]}|jr|	|j jsJ qqmW d    n1 sw   Y  W d    n1 sw   Y  W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   r   r   r   r   c                 S   r   r   r   r   r   r   r!   r"     r#   ztest_copy.<locals>.<listcomp>r   r$   rT   rq   r  )keysr  )r   r,   r-   r.   r   r/   r0   r1   r)   r*   r   r   tempfileNamedTemporaryFile
contextlibclosingr   r>  r  r   r   is_tablenrowsaxesr  )r  rT   r5   stnew_frb   tstorer  knew_torig_tr'   r   r   r!   	test_copy  sH   






"r  c                 C   s   t ddgddggd}| | }d}tjt|d |j|ddd W d    n1 s+w   Y  |j|dd	d t|d}t|| ||sJJ ||sQJ d S )
Nr'   r   )r%   r  z/Columns index has to be unique for fixed formatr   rT   r  r   rN   )	r   r   r   r+   r   r   r)   r   equals)rS   r4   rT   r5   r   otherr   r   r!   test_duplicate_column_name  s   
r  c                 C   sp   t tjdjdd}tddddd|_t| }||d	< t	|d	 | W d    d S 1 s1w   Y  d S )
Nrw   )rd   r   )size0srd   1sexample)rR  rg   r   r>  rT   )
r   r,   r   r   normalr   r&   r   r)   r   r&  r   r   r!   !test_preserve_timedeltaindex_type  s   
"r  c                 C   s   t tjddtdtdd}d|j_|jddd	}|jj|j	
  }| | }|j|d
dd|dd td}t|}t|d
|d ||ksJJ d S )Nrw   )r   r   abcdABCDE)r&   r%   lettersET)r  r   rT   r'   F)r   rM   r   rP   r&   BCDr  )r   r,   r   r   r/   r&   r>  r   r  r%   tolistr   r   )rS   r4   rT   rP   r5   	cols2loadcols2load_originalr   r   r!    test_columns_multiindex_modified  s*   r  z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningr%   r(   r   r   r   re   rw   rf   z1 dayr   r   c                 C   sl   t tjdd|d}| | }d}tjt|d |j|dddd	 W d    d S 1 s/w   Y  d S )
Nrw   rT  r  z-cannot have non-object label DataIndexableColr   rT   rN   Tr   rO   rP   )	r   r,   r   r   r   r   r   r+   r   )rS   r4   r%   rT   r5   r   r   r   r!   0test_to_hdf_with_object_column_names_should_fail,  s   "r  r   categoryc                 C   sl   t tjddtddg|dd}| | }|j|ddd	d
 t|dd|jd  dd}t	|s4J d S )Nrw   rT  r'   rk   r   r  rT   rN   Tr  z	index = [r   ]r   )
r   r,   r   r   r   r   r   r   r&   r2   )rS   r4   r   rT   r5   r   r   r   r!   /test_to_hdf_with_object_column_names_should_run@  s   r  c                 C   sp   t g dg dd}t| }|d| |d jj|d d jjks&J W d    d S 1 s1w   Y  d S )N)r(   rw   r~   r   )r   r   r   r   r  rT   r'   )r   r   rR   rX  stridesr&  r   r   r!   test_hdfstore_stridesM  s
   
""r  c                 C   sV   t dggdgtdgddd}| }| | }|j|dd t|d}t|| d S )	Nr(   TFboolr   r$   r'   rw  )r   r   r   r   r   r)   r   )rS   r4   rT   r   r5   r   r   r   r!   test_store_bool_indexU  s   
r  )Qr  r   r   rX   r  rZ   numpyr,   r   pandasr   r   r   r   r   r   r   r   r	   r
   r   pandas._testing_testingr)   pandas.tests.io.pytables.commonr   r   pandas.io.pytablesr   r   mark
single_cpu
pytestmarkimportorskipr   r7   r`   rc   r   r   r   parametrizer   r   r   r   r   r  r  r  r  r"  r'  r4  r9  r<  r@  rI  rK  rL  ra  rd  rh  ri  rs  r  r  r  r  r  r  r  r  r  filterwarningsint64ri   r  r  r  r  r   r   r   r!   <module>   s    0
+;#$



(!
!"-v.

!




	
