o
    %j                     @   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g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 )NZblah皙?x         ABCDdtypec                 S      g | ]}d | qS zi- .0ir   r   d/var/www/html/Deteccion_Ine/venv/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pathZtblr   r   r    test_context'   s.   


"r5   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)filenameZ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_pathrN   r4   dfZhdfrG   r3   r   r    create_h5_and_return_checksumD   s   


z:test_no_track_times.<locals>.create_h5_and_return_checksumF)rN   Tr'   )hashlibmd5timesleep)rP   r3   rS   Zchecksum_0_tt_falseZchecksum_0_tt_trueZchecksum_1_tt_falseZchecksum_1_tt_truer   rR   r    test_no_track_times9   s   
rX   c                 C   s>   t | }t|g ksJ W d    d S 1 sw   Y  d S r8   )r   r.   r3   storer   r   r    test_iter_emptyd   s   
"r[   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< | }|rd ntjj}d-}tj||d. ||d/< W d    n1 sw   Y  |j|jjd0 |jt|v sJ |jt|v sJ |  W d    n	1 sw   Y  t | <}t	dtd
d ttdtdtd1d	 tdD tdd}|d/| | d/}t| t| W d    d S 1 sfw   Y  d S )2N
   r   
2020-01-01periodsr%   r&   float64c                 S   r   )Z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   z0cannot
map directly to c-types .* dtype='object'matchrQ   Zbahc                 S   r   r   r   r   r   r   r    r!      r"   )!r   reprinfor   r+   r,   ra   r	   r0   r   r-   r   r.   r/   r   dtdatetimenanlocr%   _consolidatepderrorsZPerformanceWarningr(   assert_produces_warning_handleZcreate_grouprootrE   strappend
get_storer)r3   using_infer_stringrZ   rQ   warningmsgsr   r   r    	test_reprj   sj   





/

$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 )Nr\   r   r]   r^   r`   r&   r   r   r   r   c                 S   r   r   r   r   r   r   r    r!      r"   z!test_contains.<locals>.<listcomp>r   r#   rb   c                 S   r   r   r   r   r   r   r    r!      r"   zfoo/barrc   z/foo/barz/foo/brf   F)Zcheck_stacklevelc                 S   r   r   r   r   r   r   r    r!      r"   znode()))r   r   r+   r,   ra   r	   r   r-   r   r.   r/   r0   r(   r   r   ZNaturalNameWarningrY   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 )Nr\   r   r]   r^   r`   r&   r   r   r   r   c                 S   r   r   r   r   r   r   r    r!      r"   z#test_versioning.<locals>.<listcomp>r   r#   rb   rn   )   r   
2000-01-01r   rj   r_   freqdf1z0.15.2df2z/'NoneType' object has no attribute 'startswith'rx   )r   r   r+   r,   ra   r	   r   r-   r   r.   r/   r0   randomdefault_rngstandard_normalr   r   r   r&   Z_v_attrsZpandas_versionrb   r   Zget_nodepytestraises	Exceptionselect)r3   rZ   rQ   r   r   r   r    test_versioning   s<   




"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}|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'   rn   ru   )r      rw   )rw         )	   r\      )r\   r   r   zi,i,ir   )r   r   r   )r\   r      )r   r   r   r   r   a1tb1tb2zwalk_groups.hdfrH   rI   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   rQ   )r   r   r+   arrayr   rO   r   Zcreate_arrayZcreate_tabler1   r.   walksetjoingetr(   assert_frame_equalassert_series_equal)r   expectedZobjsrZ   r4   groupsleavesZexpected_groupsZexpected_framesleafZ
frame_pathr   r   r   r    	test_walk   sB   




 
"r   c              
   C   s.  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
dddd}||d< |j}t|| dD ]$}d| d}tjt|d t	|| W d    n1 srw   Y  qSdD ]
}t	|d|  qzW d    d S 1 sw   Y  d S )Nr\   r   r]   r^   r`   r&   rn   r\   r   r   r   rj   r   r#   rQ   )drJ   r4   handlecomplibz$'HDFStore' object has no attribute ''rx   )rJ   r4   r   r   _)r   r   r+   r,   ra   r	   r&   r(   r   getattrr   r   r   r   r   r.   rQ   r   r   r   AttributeError)r3   rZ   r   resultrQ   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               @      ?)Zcol1Zcol2abcr`   acrQ   rK   keyrL   F)r   rL   ZdropnaT)r   r+   r~   r.   to_hdfr   r(   r   )rP   r3   Zdf_with_missingZdf_without_missingr4   Zreloadedr   r   r    test_store_dropnaL  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'   rn   ru   )rh   rj   Crx   r   )r   r(   r   FutureWarningr   )rP   r3   r4   r   rQ   r   r   r    test_keyword_deprecationg  s   "r   c                 C   s   | | }t g dg dtg 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foo520130101r   r^   )rh   rj   r   Dr   Zss3rK   r%   rw   )r   rL   Zmin_itemsizeZlonger)r   T)r   r   rL   rj   Zss4)r   r   r	   	set_indexr   copyZreset_indexZassignr(   r   r   r   r   )rP   r3   r4   rQ   r   r   r   r    test_to_hdf_with_min_itemsizeu  s"   

&r   rL   fixedrK   c           
      C   s   dg}t |t|dddd}| | }|j|d|dd t|ddd}|r-tjd	tjd
}nd}t |t||d|d}	t	||	 d S )Nu   foor/   r   )r%   r   rK   surrogatepass)r   rL   r   )r   python)ZstorageZna_value)
r   r   r   r   r   ZStringDtyper+   r~   r(   r   )
rP   rL   r3   r   dataZserr4   r   r   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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 sHJ |ddj
du sRJ  j	d|dgddgd |ddj
du shJ |ddj
du srJ |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 r8   r   r   rK   colstcolumnrZ   r   r    col     z$test_create_table_index.<locals>.colrn   r   r   r   r\   rj   r   r#   rd   stringrf   string2r=   rM   r%   Tf2)r%   rM   Fz1cannot create table index on a Fixed format storerx   )r   r   r+   r   r   r   r   r.   r	   r   
is_indexedr   rO   r   r   	TypeErrorcreate_table_indexr3   r   rQ   r   r   r   r    test_create_table_index  s4   


"r   c              	      sB  t |   fdd}ttjddt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 sGJ d}tjt|d |ddj
 W d    n1 saw   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   r8   r   r   r   r   r    r     r   z:test_create_table_index_data_columns_argument.<locals>.colrn   r   r   r   r\   rj   r   r#   rd   r   rf   r   r=   r   r%   Tz('Cols' object has no attribute 'string2'rx   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    -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   r^   dateid)namesr&   )r   g333333?g?gffffff?g      ?r`   rQ   Tr   zid == 1r   r'   )r   Zfrom_arraysr	   r0   r   r   r   r   ilocr(   r   )r3   idxrQ   rZ   actualr   r   r   r    test_mi_data_columns  s   
"r   c                 C   s8  t dtdd ttdtdd td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   c                 S   r   r   r   r   r   r   r    r!     r"   z+test_table_mixed_dtypes.<locals>.<listcomp>r   r#   rd   re   rf   rg   rh   r   ri   rj   rk   Trl   r'   rm   rn   ro   rp   nsrq   rr   rs   rt   rv   ru   rw   Z	df1_mixed)r   r+   r,   r-   r   r.   r0   r   as_unitr~   r   r%   r   r   r   r(   r   r   r3   rQ   rZ   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)holidaysZweekmaskr   r   r   zMon Tue Wed Thu Fri Sat Sunr   rK   )r|   r}   r+   Z
datetime64r   offsetsZCustomBusinessDayr	   r   weekdaymapsplitr   rO   r   r(   r   r   )	r3   Zweekmask_egyptr   Z
bday_egyptZmydtdtsr   rZ   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
d t
dD d}||d< ||d< t|d t|dksFJ t||d  t|d t|dks[J tjtdd |d W d    n1 srw   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 )Nr\   r   r]   r^   r`   r   r   r   r   c                 S   r   r   r   r   r   r   r    r!   0  r"   ztest_remove.<locals>.<listcomp>r   r#   r&   rb   r'   r   z1'No object named a_nonexistent_store in the file'rx   Za_nonexistent_storezb/foord   )r   r   r+   r,   ra   r	   r   r-   r   r.   r0   r   r1   r(   r   r   r   KeyErrorremove)r3   rZ   tsrQ   r   r   r    test_remove(  sH   






"r  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 )Nrn   )r   rn   r   r   r^   r`   rQ   rK   rL   Z20130105z!index>datetime.datetime(2013,1,5)zindex>datetime(2013,1,5))r   r   r+   r   r   r   r	   rO   r%   r   r   r(   r   )r3   rZ   rQ   r   r   r   r   r    test_same_name_scopingU  s   

"r	  c                 C   s   t dtdd ttdtdd tdD d}d	|j_t	| }||d
< |d
 }t
|| W d    d S 1 s>w   Y  d S )Nr   r   r   r   c                 S   r   r   r   r   r   r   r    r!   p  r"   z)test_store_index_name.<locals>.<listcomp>r   r#   rd   frame)r   r+   r,   r-   r   r.   r0   r%   namer   r(   r   )r3   rQ   rZ   reconsr   r   r    test_store_index_namel     

"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'   rn   u   colsג)r  i  u   rowsאr   r#   rQ   r   T)Zcheck_names)r   r|   r   Ztz_localizer   r   r+   r,   r-   r   r   r(   r   
isinstancer%   r  r   r$   )
rP   r  r3   unitr  r   Zidx1rQ   r4   r   r   r   r    test_store_index_name_numpy_strz  s(   
r  c                 C   s   t dtdd ttdtdd tdD d}|d	 }t| }||d
< |d
 }t	|| W d    d S 1 s>w   Y  d S )Nr   r   r   r   c                 S   r   r   r   r   r   r   r    r!     r"   z*test_store_series_name.<locals>.<listcomp>r   r#   rh   series)
r   r+   r,   r-   r   r.   r0   r   r(   r   )r3   rQ   r  rZ   r  r   r   r    test_store_series_name  r  r  c              	   C   s   t | >}ttjddt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 sEw   Y  d S )Nrn   r   r   r   r\   rj   r   r#   r&   r   r]   r^   r`   )r   r   r+   r   r   r   r   r.   r	   r   r,   ra   r(   r   )r3   rZ   r  r   r   r    test_overwrite_node  s   


"r  c              	   C   s:  t tjddt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 seJ |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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 s/w   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 )2Nrn   r   r   r   r\   rj   r   r#   rQ   r   rh   rj   zindex<3ru   r   r   zindex>=3zindex<=4r   r   r   z{}_2r   rh   r   zA>0zB>0r'   )ZaxisF)Z
check_freq)  rn   Z20000101r  r^   r`   r%   zLwhere must be passed as a string, PyTablesExpr, or list-like of PyTablesExprrx   ra   r   )r   start)r   r  stopi  zindex in selectionr\   rn   )r   ru   r   Tr  r  )%r   r+   r   r   r   r   r.   r	   r   r   r   Zselect_as_coordinatesvaluesr,   r1   r%   allr0   r   r   r(   r   r  r   renamerL   r   rh   rj   Zselect_columnr   monthr   r   r   r   isin)r3   rQ   rZ   rc   r   r   r   r   Z
df1_resultZ
df2_resultr   r   Z	selectionr   r   r    test_coordinates  s   






2



$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sJJ |jddd
gf }t	|| W d    d S 1 sew   Y  d S )Nrn   r   r  rQ   zcolumns=['A']r   r   r  r   rh   r   (   )r   r   r+   r   r   r   r   r   r(   r   r1   r3   rZ   rQ   r   r   r   r   r    test_start_stop_table*  s   
"r&  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'   rn   )rd   rf   rd   )selectorr   r'  )r'  r   r   )r'  r  r  rf   )r   r   Zappend_to_multipleZselect_as_multipler   r(   r   r%  r   r   r    test_start_stop_multiple@  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d td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 )Nrn   r   r  r   r^   r`   rQ   r   r   r  r\   r   r$  r   r   r   r   r   c                 S   r   r   r   r   r   r   r    r!   w  r"   z)test_start_stop_fixed.<locals>.<listcomp>r#   ru   r'   r   r  )r   r   r+   r   r   r	   rO   r   r   r(   r   rh   r   r,   r-   r   r.   r0   r~   )r3   rZ   rQ   r   r   r   r   r   r    test_start_stop_fixedO  sB   


"r)  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 )Nrn   )2   d   c                 S      g | ]}|d qS Z3dr   r   rc   r   r   r    r!         z-test_select_filter_corner.<locals>.<listcomp>c                 S   r,  r-  r   r.  r   r   r    r!     r/  r
  rK   r  zcolumns=df.columns[:75]K   zcolumns=df.columns[:75:2])r   r+   r   r   r   r%   r$   r   rO   r   r(   r   r   )r3   rQ   rZ   critr   r   r   r    test_select_filter_corner}  s   
$("r2  c                     `   t dtdd ttdtdd tdD d t fd	d
dd
 } t	 |  d S )Nr   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 NrQ   r   r   prQ   r   r    r?         z#test_path_pathlib.<locals>.<lambda>c                 S   
   t | dS NrQ   r   r8  r   r   r    r?        
 
r   r+   r,   r-   r   r.   r0   r(   Zround_trip_pathlibr   r   r   r:  r    test_path_pathlib  s   
rB  zstart, stop))r   rn   )r'   rn   )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cdrC  r&   rb   Ztest_datasetr  )r   r   r   r   r   r(   r   )r  r  r3   rQ   rZ   r   r   r   r     test_contiguous_mixed_data_table  s   


"rF  c                     h   t dtdd ttdtdd tdD d  fd	d
} dd }t| |}t	 | d S )Nr   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 r5  r   r   r4   rZ   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   rJ  r   r   r    reader     
$z*test_path_pathlib_hdfstore.<locals>.readerr@  rK  rN  r   r   r:  r    test_path_pathlib_hdfstore     
rQ  c                     r3  )Nr   r   r   r   c                 S   r   r   r   r   r   r   r    r!     r"   z.test_pickle_path_localpath.<locals>.<listcomp>r   r#   c                    r4  r5  r7  r8  r:  r   r    r?     r;  z,test_pickle_path_localpath.<locals>.<lambda>c                 S   r<  r=  r>  r8  r   r   r    r?     r?  r@  rA  r   r:  r    test_pickle_path_localpath  s   
rS  c                     rG  )Nr   r   r   r   c                 S   r   r   r   r   r   r   r    r!     r"   z0test_path_localpath_hdfstore.<locals>.<listcomp>r   r#   c                    rH  r5  rI  rJ  r:  r   r    rK    rL  z,test_path_localpath_hdfstore.<locals>.writerc                 S   rM  r=  r   rJ  r   r   r    rN    rO  z,test_path_localpath_hdfstore.<locals>.reader)
r   r+   r,   r-   r   r.   r0   r(   Zround_trip_localpathr   rP  r   r:  r    test_path_localpath_hdfstore  rR  rT  propindexesTFc                 C   s  t dtdd ttdtdd tdD d}t }t	|}|j
d	|d
gd W d    n1 s9w   Y  t z}t	|f}t|j|jd | dJ}| }t|t| kseJ | D ]-}||jr||}	||}
|
j|	jksJ | r|
jD ]}|jr|	|j jsJ qqiW 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   c                 S   r   r   r   r   r   r   r    r!     r"   ztest_copy.<locals>.<listcomp>r   r#   rQ   rh   r   )keysrU  )r   r+   r,   r-   r   r.   r0   r(   r)   r   r   tempfileNamedTemporaryFile
contextlibclosingr   r  rV  r   r   Zis_tableZnrowsZaxesr   )rU  rQ   r4   stnew_frZ   ZtstorerV  kZnew_tZ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 formatrx   rQ   r   r   rK   )	r   r   r   r*   r   r   r(   r   equals)rP   r3   rQ   r4   r   otherr   r   r    test_duplicate_column_name   s   
ra  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 )
Nrn   )r\   r   )sizeZ0sr\   Z1sZexample)r  r_   r   r  rQ   )
r   r+   r   r   normalr   r%   r   r(   r   r   r   r   r    !test_preserve_timedeltaindex_type  s   
"rd  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 )Nrn   )r   r   abcdZABCDE)r%   r$   lettersET)rV  r   rQ   r&   F)r   rJ   r   rM   r%   ZBCDr   )r   r+   r   r   r.   r%   r  r   r   r$   tolistr   r   )rP   r3   rQ   rM   r4   Z	cols2loadZcols2load_originalr   r   r     test_columns_multiindex_modified  s*   ri  z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningr$   r'   r   r   r   r]   rn   r^   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 )
Nrn   r  r   z-cannot have non-object label DataIndexableColrx   rQ   rK   Tr   rL   rM   )	r   r+   r   r   r   r   r   r*   r   )rP   r3   r$   rQ   r4   r   r   r   r    0test_to_hdf_with_object_column_names_should_fail6  s   "rk  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 )Nrn   r  r&   rb   r   r   rQ   rK   Trj  z	index = [r   ]r   )
r   r+   r   r   r   r   r   r   r%   r1   )rP   r3   r   rQ   r4   r   r   r   r    /test_to_hdf_with_object_column_names_should_runJ  s   rn  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'   rn   ru   r   )r   rw   r   r   rE  rQ   r&   )r   r   rO   r  stridesr   r   r   r    test_hdfstore_stridesW  s
   
""rp  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&   r6  )r   r   r   r   r   r(   r   )rP   r3   rQ   r   r4   r   r   r   r    test_store_bool_index_  s   
rr  )QrY  r}   r|   rT   rW  rV   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   r5   rX   r[   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)  r2  rB  rF  rQ  rS  rT  r^  ra  rd  ri  filterwarningsZint64ra   rk  rn  rp  rr  r   r   r   r    <module>   s    0

+=#$



(!
!"-v.

!

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