a
    Pf                     @   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 | X}z4t|}tdW d    n1 s40    Y  W n tyR   Y n0 W d    n1 sh0    Y  t | }t|x}tdtdd tt	dt
dtdd td	D t
dd
|d< t|dksJ t|d tksJ W d    n1 s0    Y  W d    n1 s&0    Y  d S )NZblah皙?x         ABCDdtypec                 S   s   g | ]}d | qS zi- .0ir   r   \/var/www/ai-form-bot/venv/lib/python3.9/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pathZtblr   r   r   test_context'   s    
*$

r4   c                    st   t jdfdd  fdd}|| dd}|| dd}td	 || dd}|| dd}||ksdJ ||kspJ d S )
N   c                    s^   | t | d6t fdddD ]}| q(W d    n1 sL0    Y   S )Nrbc                      s     j S N)read
block_sizer   chunk_num_blocksfhr   r   <lambda>@   r!   z7test_no_track_times.<locals>.checksum.<locals>.<lambda>r!   )openiterupdatedigest)filenameZhash_factoryr;   chunkr   r:   r   checksum=   s
    *z%test_no_track_times.<locals>.checksumc              	      s`   |  }t ddgi}t|dd&}|jd|ddd |d W d    n1 sN0    Y   |S )Nr%   r&   wmodetableT)formatdata_columnsr$   track_times)r   r   put)tmp_pathrL   r3   dfZhdfrE   r2   r   r   create_h5_and_return_checksumD   s    $	z:test_no_track_times.<locals>.create_h5_and_return_checksumF)rL   Tr&   )hashlibmd5timesleep)rN   r2   rQ   Zchecksum_0_tt_falseZchecksum_0_tt_trueZchecksum_1_tt_falseZchecksum_1_tt_truer   rP   r   test_no_track_times9   s    
rV   c                 C   s<   t |  }t|g ksJ W d    n1 s.0    Y  d S r7   )r   r-   r2   storer   r   r   test_iter_emptyd   s    
rY   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 s0    Y  |j|jjd. |jt|v sJ |jt|v s
J |  W d    n1 s(0    Y  t | v}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    n1 s0    Y  d S )0N
   r   
2020-01-01periodsr$   r%   float64c                 S   s   g | ]}d | qS )Zi_r   r   r   r   r   r    r   r!   ztest_repr.<locals>.<listcomp>)r   r$   br   r   r   r   c                 S   s   g | ]}d | qS r   r   r   r   r   r   r    w   r!   r   r"   cc                 S   s   g | ]}d | qS 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   rO   Zbahc                 S   s   g | ]}d | qS r   r   r   r   r   r   r       r!   )!r   reprinfor   r*   r+   r_   r	   r/   r   r,   r   r-   r.   r   dtdatetimenanlocr$   _consolidater'   assert_produces_warningpderrorsZPerformanceWarning_handleZcreate_grouprootrC   strappend
get_storer)r2   rX   rO   sr   r   r   	test_reprj   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dtdd	 tt	d
t
dtdd tdD t
dd|d< d|v sJ d|v sJ d|vsJ d|v sJ d|v sJ d|vsJ d|vsJ tjtjddT tdtdd	 tt	d
t
dtdd tdD t
dd|d< W d    n1 s|0    Y  d|v sJ W d    n1 s0    Y  d S )NrZ   r   r[   r\   r^   r%   r   r   r   r   c                 S   s   g | ]}d | qS r   r   r   r   r   r   r       r!   z!test_contains.<locals>.<listcomp>r   r"   r`   c                 S   s   g | ]}d | qS r   r   r   r   r   r   r       r!   zfoo/barra   z/foo/barz/foo/brd   F)Zcheck_stacklevelc                 S   s   g | ]}d | qS r   r   r   r   r   r   r       r!   znode()))r   r   r*   r+   r_   r	   r   r,   r   r-   r.   r/   r'   r}   r   ZNaturalNameWarningrW   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sJ |jjjjdksJ |jjjjdksJ t|d |d| d |dj_d}tjt|d |d W d    n1 sp0    Y  W d    n1 s0    Y  d S )NrZ   r   r[   r\   r^   r%   r   r   r   r   c                 S   s   g | ]}d | qS r   r   r   r   r   r   r       r!   z#test_versioning.<locals>.<listcomp>r   r"   r`   rl   )   r   
2000-01-01r   rh   r]   freqdf1z0.15.2df2z/'NoneType' object has no attribute 'startswith'match)r   r   r*   r+   r_   r	   r   r,   r   r-   r.   r/   randomdefault_rngstandard_normalr   r   r   r%   Z_v_attrsZpandas_versionr`   r   Zget_nodepytestraises	Exceptionselect)r2   rX   rO   msgr   r   r   test_versioning   s4    



r   zwhere, expected/Zfirst_groupZsecond_groupr   r   Z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j}|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s.J |j| dD ]\}}}||v sRJ || \}}|t|kspJ |t|ksJ |D ]J}	d||	g}
||
}d |	v rt|||	  nt|||	  qq:W d    n1 s0    Y  d S )!N)r&   rl   rs   )r      ru   )ru         )	   rZ      )rZ   r   r   zi,i,ir   )r   r   r   )rZ   r      )r   r   r   r   r   a1tb1tb2zwalk_groups.hdfrF   rG   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   rO   )r   r   r*   arrayr   rM   r   Zcreate_arrayZcreate_tabler0   r-   walksetjoingetr'   assert_frame_equalassert_series_equal)r   expectedZobjsrX   r3   groupsleavesZexpected_groupsZexpected_framesleafZ
frame_pathr   r   r   r   	test_walk   s<    




"

r   c              
   C   s4  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 ]H}d| d}tjt|d t	|| W d    q1 s0    Y  qdD ]}t	|d|  qW d    n1 s&0    Y  d S )NrZ   r   r[   r\   r^   r%   rl   rZ   r   r   r   rh   r   r"   rO   )drH   r3   handlecomplibz$'HDFStore' object has no attribute ''r   )rH   r3   r   r   _)r   r   r*   r+   r_   r	   r%   r'   r   getattrr   r   r   r   r   r-   r.   rO   r   r   r   AttributeError)r2   rX   r   resultrO   xr   r   r   r   test_getattr)  s.    
*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               @      ?)Zcol1Zcol2abcr^   acrO   rI   keyrJ   F)r   rJ   ZdropnaT)r   r*   rz   r-   to_hdfr   r'   r   )rN   r2   Zdf_with_missingZdf_without_missingr3   Zreloadedr   r   r   test_store_dropnaJ  s&    


r   c                 C   sf   | | }d}t ddddddddg}tjt|d ||d W d    n1 sX0    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&   rl   rs   )rf   rh   Cr   r   )r   r'   r}   FutureWarningr   )rN   r2   r3   r   rO   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   )Zfoo1Zfoo2Zfoo3Zfoo4Zfoo5r   20130101r   r\   )rf   rh   r   Dr   Zss3rI   r$   ru   )r   rJ   Zmin_itemsizeZlonger)r   T)r   r   rJ   rh   Zss4)r   r   r.   r	   	set_indexr   copyZreset_indexZassignr'   r   r   r   r   )rN   r2   r3   rO   r   r   r   r   test_to_hdf_with_min_itemsizes  s"    
r   rJ   fixedrI   c                 C   sN   dg}t |t|d}| | }|j|d|dd t|ddd}t|| d S )Nu   foor^   rI   surrogatepass)r   rJ   r   )r   )r   r   r   r   r'   r   )rN   rJ   r2   dataZserr3   r   r   r   r   test_to_hdf_errors  s    r   c              	      sv  t | V  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 sJ |ddjdu sJ |ddjdu sJ  j
d|dgddgd |ddjdu sJ |ddjdu sJ |ddjdu sJ t d  d| d}tjt|d  d W d    n1 sH0    Y  W d    n1 sh0    Y  d S )Nc                    s   t  | jj|S r7   r   r   rI   colstcolumnrX   r   r   col  s    z$test_create_table_index.<locals>.colrl   r   r   r   r   rZ   rh   r   r"   rb   stringrd   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.   r	   r   
is_indexedr   rM   r   r   	TypeErrorcreate_table_indexr2   r   rO   r   r   r   r   test_create_table_index  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gd |ddjdu sJ |ddjdu sJ d}tjt|d |ddj W d    n1 s0    Y  d}tjt|d   jddgd W d    n1 s0    Y  W d    n1 s,0    Y  d S )Nc                    s   t  | jj|S r7   r   r   r   r   r   r     s    z:test_create_table_index_data_columns_argument.<locals>.colrl   r   r   r   r   rZ   rh   r   r"   rb   r   rd   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   r   r   r   r   r   -test_create_table_index_data_columns_argument  s&    *r   c                 C   s   t jtdddtdgddgd}tdg di|d	}t| N}|jd
|dd |jd
dd}|jdgd d f }t	
|| W d    n1 s0    Y  d S )Nr   r   r\   dateid)namesr%   )r   g333333?g?gffffff?g      ?r^   rO   Tr   zid == 1r   r&   )r   Zfrom_arraysr	   r/   r   r   r   r   ilocr'   r   )r2   idxrO   rX   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    n1 s20    Y  d S )#Nr   r   r   r   r   c                 S   s   g | ]}d | qS r   r   r   r   r   r   r      r!   z+test_table_mixed_dtypes.<locals>.<listcomp>r   r"   rb   rc   rd   re   rf   r   rg   rh   ri   Trj   r&   rk   rl   rm   rn   nsro   rp   rq   rr   rt   rs   ru   Z	df1_mixed)r   r*   r+   r,   r   r-   r.   r/   r   as_unitrz   r{   r$   r|   r   r   r'   r   r   r2   rO   rX   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| T}|d| |d}t|| |d| |d}t|| W d    n1 s0    Y  d S )NzSun Mon Tue Wed Thuz
2012-05-01i  r   r&   z
2014-05-01)holidaysZweekmaskr   r   r   zMon Tue Wed Thu Fri Sat Sunr   rI   )rx   ry   r*   Z
datetime64r~   offsetsZCustomBusinessDayr	   r   weekdaymapsplitr   rM   r   r'   r   r   )	r2   Zweekmask_egyptr   Z
bday_egyptZmydtdtsr   rX   r   r   r   r   test_calendar_roundtrip_issue  s$    


r   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sJ t||d  t|d t|dksJ tjtdd |d W d    n1 s0    Y  ||d< ||d< t|d t|d t|dks.J ||d< ||d< t|d t|dksZJ ||d< ||d< |d= |d= t|dksJ W d    n1 s0    Y  d S )NrZ   r   r[   r\   r^   r   r   r   r   c                 S   s   g | ]}d | qS r   r   r   r   r   r   r    &  r!   ztest_remove.<locals>.<listcomp>r   r"   r%   r`   r&   r   z1'No object named a_nonexistent_store in the file'r   Za_nonexistent_storezb/foorb   )r   r   r*   r+   r_   r	   r   r,   r   r-   r.   r/   r   r0   r'   r   r   r   KeyErrorremove)r2   rX   tsrO   r   r   r   test_remove  sD    

(


r   c                 C   s   t | }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    n1 s0    Y  d S )Nrl   )r   rl   r   r   r\   r^   rO   rI   rJ   Z20130105z!index>datetime.datetime(2013,1,5)zindex>datetime(2013,1,5))r   r   r*   r   r   r   r	   rM   r$   r   r   r'   r   )r2   rX   rO   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    n1 s0    Y  d S )Nr   r   r   r   r   c                 S   s   g | ]}d | qS r   r   r   r   r   r   r    f  r!   z)test_store_index_name.<locals>.<listcomp>r   r"   rb   frame)r   r*   r+   r,   r   r-   r.   r/   r$   namer   r'   r   )r2   rO   rX   reconsr   r   r   test_store_index_nameb  s    
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sJ t|	jjtsJ d S )Ni  r&   rl   u   colsג)r  i  u   rowsאr   r"   rO   r   T)Zcheck_names)r   rx   r   Ztz_localizer   r   r*   r+   r,   r   r   r'   r   
isinstancer$   r  r   r#   )
rN   r  r2   unitr  r   Zidx1rO   r3   r   r   r   r   test_store_index_name_numpy_strp  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
 }t| ,}||d< |d }t	
|| W d    n1 s0    Y  d S )Nr   r   r   r   r   c                 S   s   g | ]}d | qS r   r   r   r   r   r   r      r!   z*test_store_series_name.<locals>.<listcomp>r   r"   rf   series)r   r*   r+   r,   r   r-   r.   r/   r   r'   r   )r2   rO   r  rX   r  r   r   r   test_store_series_name  s    
r  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    n1 s0    Y  d S )Nrl   r   r   r   r   rZ   rh   r   r"   r%   r[   r\   r^   )r   r   r*   r   r   r   r   r-   r.   r	   r   r+   r_   r'   r   )r2   rX   r   r   r   r   test_overwrite_node  s    

r  c              	   C   sD  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 sJ |jd
|d}|jddd d f }t|| |d
ddg}|jtdd k s,J |jd
|d}|jddd d f }t|| t|tslJ 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 sj0    Y  t	| }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 sR0    Y  t"j#t$|d', |jd
tt|d d W d    n1 s0    Y  t"j#t$|d'* |jd
tt|dd) W d    n1 s0    Y  t"j#t$|d', |jd
tt|ddd* W d    n1 s40    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    n1 s60    Y  d S )2Nrl   r   r   r   r   rZ   rh   r   r"   rO   r   rf   rh   zindex<3rs   r   r   zindex>=3zindex<=4r   r   r   z{}_2r   rf   r   zA>0zB>0r&   )ZaxisF)Z
check_freq)  rl   Z20000101r  r\   r^   r$   zLwhere must be passed as a string, PyTablesExpr, or list-like of PyTablesExprr   r_   )r   start)r   r  stopi  zindex in selectionrZ   rl   )r   rs   r   Tr  r  )&r   r*   r   r   r   r   r-   r.   r	   r   r   r   Zselect_as_coordinatesvaluesr+   r0   r$   allr/   r   r{   r'   r   r	  r   renamerJ   r   rf   rh   Zselect_columnr   monthr   r   r   r   isin)r2   rO   rX   ra   r   r   r   r   Z
df1_resultZ
df2_resultr   r   Z	selectionr   r   r   test_coordinates  s    




0

<<:<

r  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sJ |jddd
gf }t	|| W d    n1 s0    Y  d S )Nrl   r   r  rO   zcolumns=['A']r   r   r  r   rf   r   (   )r   r   r*   r   r   r   r   r{   r'   r   r0   r2   rX   rO   r   r   r   r   r   test_start_stop_table   s    
r  c                 C   s   t | 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    n1 s0    Y  d S )Nr&   rl   )rb   rd   rb   )selectorr   r  )r  r   r   )r  r  r  rd   )r   r   Zappend_to_multipleZselect_as_multipler{   r'   r   r  r   r   r   test_start_stop_multiple6  s    
r   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    n1 s0    Y  d S )Nrl   r   r  r   r\   r^   rO   r   r   r  rZ   r   r  r   r   r   r   r   r   c                 S   s   g | ]}d | qS r   r   r   r   r   r   r    m  r!   z)test_start_stop_fixed.<locals>.<listcomp>r"   rs   r&   r   r  )r   r   r*   r   r   r	   rM   r   r   r'   r   rf   r   r+   r,   r   r-   r.   r/   rz   )r2   rX   rO   r   r   r   r   r   r   test_start_stop_fixedE  s@    
r!  c              
   C   s   t tjdd}dd |jD |_dd |jD |_t| }|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    n1 s0    Y  d S )Nrl   )2   d   c                 S   s   g | ]}|d qS Z3dr   r   ra   r   r   r   r    u  r!   z-test_select_filter_corner.<locals>.<listcomp>c                 S   s   g | ]}|d qS r$  r   r%  r   r   r   r    v  r!   r  rI   r  zcolumns=df.columns[:75]K   zcolumns=df.columns[:75:2])r   r*   r   r   r   r$   r#   r   rM   r   r'   r   r{   )r2   rO   rX   critr   r   r   r   test_select_filter_corners  s    
$r(  c                     sh   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   s   g | ]}d | qS r   r   r   r   r   r   r      r!   z%test_path_pathlib.<locals>.<listcomp>r   r"   c                    s    j | ddS NrO   r   r   prO   r   r   r>     r!   z#test_path_pathlib.<locals>.<lambda>c                 S   s
   t | dS NrO   r   r,  r   r   r   r>     r!   r   r*   r+   r,   r   r-   r.   r/   r'   Zround_trip_pathlibr   r   r   r.  r   test_path_pathlib  s    r3  zstart, stop))r   rl   )r&   rl   )NNc                 C   sz   t tg dtg dd}t|@}|d| |jd| |d}t|| | | W d    n1 sl0    Y  d S )N)i2i2i2)abcdr4  r%   r`   Ztest_datasetr  )r   r   r   r   r   r'   r   )r  r  r2   rO   rX   r   r   r   r    test_contiguous_mixed_data_table  s    


r7  c                     sp   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   s   g | ]}d | qS r   r   r   r   r   r   r      r!   z.test_path_pathlib_hdfstore.<locals>.<listcomp>r   r"   c                    s:   t | } j|dd W d    n1 s,0    Y  d S r)  r   r   r3   rX   r.  r   r   writer  s    
z*test_path_pathlib_hdfstore.<locals>.writerc                 S   s6   t | }t|dW  d    S 1 s(0    Y  d S r/  r   r9  r   r   r   reader  s    
z*test_path_pathlib_hdfstore.<locals>.readerr1  r:  r;  r   r   r.  r   test_path_pathlib_hdfstore  s    r=  c                     sh   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   s   g | ]}d | qS r   r   r   r   r   r   r      r!   z.test_pickle_path_localpath.<locals>.<listcomp>r   r"   c                    s    j | ddS r)  r+  r,  r.  r   r   r>     r!   z,test_pickle_path_localpath.<locals>.<lambda>c                 S   s
   t | dS r/  r0  r,  r   r   r   r>     r!   r1  r2  r   r.  r   test_pickle_path_localpath  s    r>  c                     sp   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   s   g | ]}d | qS r   r   r   r   r   r   r      r!   z0test_path_localpath_hdfstore.<locals>.<listcomp>r   r"   c                    s:   t | } j|dd W d    n1 s,0    Y  d S r)  r8  r9  r.  r   r   r:    s    
z,test_path_localpath_hdfstore.<locals>.writerc                 S   s6   t | }t|dW  d    S 1 s(0    Y  d S r/  r   r9  r   r   r   r;    s    
z,test_path_localpath_hdfstore.<locals>.reader)r   r*   r+   r,   r   r-   r.   r/   r'   Zround_trip_localpathr   r<  r   r.  r   test_path_localpath_hdfstore  s    r?  propindexesTFc                 C   s  t dtdd ttdtdtdd tdD tdd	}t	 f}t
|"}|jd
|dgd W d    n1 s|0    Y  t  }t
|}t|j|jd | d}| }t|t| ksJ | D ]b}||jr||}	||}
|
j|	jksJ | r|
jD ] }|jr|	|j jsJ qqW d    n1 sX0    Y  W d    n1 sx0    Y  W d    n1 s0    Y  W d    n1 s0    Y  d S )Nr   r   r   r   r   c                 S   s   g | ]}d | qS r   r   r   r   r   r   r      r!   ztest_copy.<locals>.<listcomp>r   r"   rO   rf   r   )keysr@  )r   r*   r+   r,   r   r-   r.   r/   r'   r(   r   r   tempfileNamedTemporaryFile
contextlibclosingr   r  rA  r   r   Zis_tableZnrowsZaxesr   )r@  rO   r3   stnew_frX   ZtstorerA  kZnew_tZorig_tr%   r   r   r   	test_copy  s2    
0



rI  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 sV0    Y  |j|dd	d t|d}t|| ||sJ ||sJ d S )
Nr%   r   )r#   r   z/Columns index has to be unique for fixed formatr   rO   r   r   rI   )	r   r   r   r)   r   r   r'   r   equals)rN   r2   rO   r3   r   otherr   r   r   test_duplicate_column_name  s    .
rL  c                 C   sn   t tjdjdd}tddddd|_t| (}||d	< t	|d	 | W d    n1 s`0    Y  d S )
Nrl   )rZ   r   )sizeZ0srZ   Z1sexample)r  r]   r   r  rO   )
r   r*   r   r   normalr   r$   r   r'   r   r   r   r   r   !test_preserve_timedeltaindex_type  s
    
rP  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sJ d S )Nrl   )r   r   abcdZABCDE)r$   r#   lettersET)rA  r   rO   r%   F)r   rH   r   rK   r$   ZBCDr   )r   r*   r   r   r-   r$   r  r   r   r#   tolistr   r   )rN   r2   rO   rK   r3   Z	cols2loadZcols2load_originalr   r   r    test_columns_multiindex_modified  s*    rU  z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningr#   r&   r   r   r   r[   rl   r\   z1 dayr   r   c                 C   sj   t tjdd|d}| | }d}tjt|d" |j|dddd	 W d    n1 s\0    Y  d S )
Nrl   r  r   z-cannot have non-object label DataIndexableColr   rO   rI   Tr   rJ   rK   )	r   r*   r   r   r   r   r   r)   r   )rN   r2   r#   rO   r3   r   r   r   r   0test_to_hdf_with_object_column_names_should_fail,  s
    rW  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	|shJ d S )Nrl   r  r%   r`   r   r   rO   rI   TrV  z	index = [r   ]r   )
r   r*   r   r   r   r   r   r   r$   r0   )rN   r2   r   rO   r3   r   r   r   r   /test_to_hdf_with_object_column_names_should_run@  s    rZ  c                 C   sn   t g dg dd}t| <}|d| |d jj|d d jjksLJ W d    n1 s`0    Y  d S )N)r&   rl   rs   r   )r   ru   r   r   r6  rO   r%   )r   r   rM   r  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%   r*  )r   r   r   r   r   r'   r   )rN   r2   rO   r   r3   r   r   r   r   test_store_bool_indexU  s    
r^  )QrD  ry   rx   rR   rB  rT   numpyr*   r   Zpandasr~   r   r   r   r   r   r   r   r	   r
   r   Zpandas._testingZ_testingr'   Zpandas.tests.io.pytables.commonr   r   Zpandas.io.pytablesr   r   markZ
single_cpuZ
pytestmarkZimportorskipr   r4   rV   rY   r   r   r   Zparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r   r!  r(  r3  r7  r=  r>  r?  rI  rL  rP  rU  filterwarningsZint64r_   rW  rZ  r\  r^  r   r   r   r   <module>   s   0
+;#$



(!
!"-v.

!




	
