o
    �¨Êh’  ã                   @   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 s“w   Y  d S )NÚblahçš™™™™™ñ?éx   ©é   é   ÚABCD©Údtypec                 S   ó   g | ]}d |› �‘qS ©zi-© ©Ú.0Úir   r   úU/var/www/html/env/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 sâw   Y  |j |jjd.¡ |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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s…J ‚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 sºw   Y  d|v sÅJ ‚W d   ƒ d S 1 sÐw   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s‰J ‚t|dƒ | d|¡ d | d¡j_d}tjt|d�� | d¡ W d   ƒ n1 s´w   Y  W d   ƒ d S W d   ƒ d S 1 sÌw   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s•J ‚|j| d�D ]G\}}}||v s¦J ‚|| \}}|t|ƒks´J ‚|t|ƒks¼J ‚|D ]#}	d ||	g¡}
| |
¡}d |	v rÙt |||	 ¡ q¾t |||	 ¡ q¾q›W d   ƒ d S 1 sîw   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 s’w   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 s¢w   Y  W d   ƒ d S W d   ƒ d S 1 sºw   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 s„w   Y  W d   ƒ d S W d   ƒ d S 1 sœw   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ž   z¥column 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 s™w   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s•J ‚||d< ||d< t|dƒ t|ƒdksªJ ‚||d< ||d< |d= |d= t|ƒdksÀJ ‚W d   ƒ d S 1 sËw   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 ¡ s•J ‚|jd
|d�}|jdd…d d …f }t ||¡ t|tƒs´J ‚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 �s§w   Y  t"j#t$|d'�� |jd
t t|ƒd ¡d� W d   ƒ n	1 �sÍw   Y  t"j#t$|d'�� |jd
t t|ƒ¡dd)� W d   ƒ n	1 �sòw   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 �sšw   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 såw   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)i¢Þ2i£Þ2i¤Þ2)Ú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s‡J ‚| rš|
jD ]}|jr™|	|j js™J ‚qŒqmW d   ƒ n1 s¥w   Y  W d   ƒ n1 s´w   Y  W d   ƒ n1 sÃw   Y  W d   ƒ d S W d   ƒ d S 1 sÛw   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.

!



ûþ
	
