o
    ôT·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 s“w   Y  d S )NÚblahçš™™™™™ñ?éx   ©é   é   ÚABCD©Údtypec                 S   ó   g | ]}d |› �‘qS ©zi-© ©Ú.0Úir   r   úf/home/dinkstrade/pdmp-scanner/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Ú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< | ¡ }|rÐd ntjj}d-}tj||d.�� ||d/< W d   ƒ n1 sìw   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   )Ú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'©ÚmatchrT   Ú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&   Ú_consolidateÚpdÚerrorsÚPerformanceWarningr)   Úassert_produces_warningÚ_handleÚcreate_groupÚrootrG   ÚstrÚappendÚ
get_storer)r4   Úusing_infer_stringrb   rT   Ú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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'r�   )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   r—   r   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   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 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/   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_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(   rw   r~   )rq   rs   ÚCr�   rê   )r   r)   rŽ   ÚFutureWarningrì   )rS   r4   r5   r—   rT   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â   )Úfoo1Úfoo2Úfoo3Úfoo4Úfoo5Ú20130101r¹   rf   )rq   rs   rñ   ÚDrñ   Úss3rN   r&   r€   )rê   rO   Úmin_itemsizeÚlonger)rñ   T)rê   r“   rO   rs   Úss4)r   r   r	   Ú	set_indexrì   ÚcopyÚreset_indexÚassignr)   rÌ   r   r   rÍ   )rS   r4   r5   rT   r¢   r   r   r!   Útest_to_hdf_with_min_itemsizeu  s"   

üÿù&r  rO   ÚfixedrN   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   í €foor0   r   )r&   r   rN   Úsurrogatepass)rê   rO   rŒ   )rŒ   Úpython)ÚstorageÚna_value)
r   r   rì   r   r‹   ÚStringDtyper,   rˆ   r)   rÍ   )
rS   rO   r4   r•   ÚdataÚserr5   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 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ž   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/   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              	      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 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ž   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/   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   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 s•w   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$   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/   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&   ýÿ


"ù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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"   0  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/   r1   r   r2   r)   rÌ   r©   rª   ÚKeyErrorÚremove)r4   rb   ÚtsrT   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 )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_scopingU  s   

þ"írB  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$   rm   Úframe)r   r,   r-   r.   r   r/   r1   r&   Únamer   r)   rÌ   )r4   rT   rb   Úreconsr   r   r!   Útest_store_index_namel  ó   
ý
"ýrF  Ú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×’)rD  iÚ  u   rows×�r   r$   rT   ré   T)Úcheck_names)r   r†   r!  Útz_localizer+  r   r,   r-   r.   rì   r   r)   rÌ   Ú
isinstancer&   rD  r’   r%   )
rS   rI  r4   ÚunitrH  r&  Úidx1rT   r5   r¢   r   r   r!   Útest_store_index_name_numpy_strz  s(   þýþú
rO  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$   rq   Úseries)
r   r,   r-   r.   r   r/   r1   r   r)   rÍ   )r4   rT   rP  rb   rE  r   r   r!   Útest_store_series_name—  rG  rQ  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 )Nrw   r×   r   rž   rd   rs   rŸ   r$   r'   r   re   rf   rh   )r   r   r,   r£   r¤   r¥   r   r/   r	   r   r-   ri   r)   rÍ   )r4   rb   r>  r   r   r!   Útest_overwrite_node¥  s   


ýÿ"õrR  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 ¡ 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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 �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ž   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   Ú20000101rV  rf   rh   r&   zLwhere must be passed as a string, PyTablesExpr, or list-like of PyTablesExprr�   ri   r   )rÄ   Ústart)rÄ   rX  Ústopiô  zindex in selection©rd   rw   )r   r~   r¹   Téþÿÿÿ©rX  rY  )%r   r,   r£   r¤   r¥   r   r/   r	   r   r   r“   Úselect_as_coordinatesÚvaluesr-   r2   r&   Úallr1   r¬   r‰   r)   rÌ   rL  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
þ
ÿÿÿÿÿ

$Ærg  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�   rS  rT   zcolumns=['A']r   r¹   r\  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   
þÿ"îrj  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
  rk  )rk  r
  r   )rk  rX  rY  ro   )r   r   Úappend_to_multipleÚselect_as_multipler‰   r)   rÌ   ri  r   r   r!   Útest_start_stop_multiple@  s   
ÿÿ"örn  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 sáw   Y  d S )Nrw   r�   rS  rù   rf   rh   rT   r   r¹   r\  rd   r   rh  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$   r~   r(   r»   r[  )r   r   r,   r£   r¤   r	   rR   r¬   r%  r)   rÌ   rq   rÍ   r-   r.   r   r/   r1   rˆ   )r4   rb   rT   rß   rÎ   r˜   r   r   r!   Útest_start_stop_fixedO  sB   
þ
û
ý"Öro  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"     ó    z-test_select_filter_corner.<locals>.<listcomp>c                 S   rr  rs  r   ru  r   r   r!   r"   €  rv  rC  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_corner}  s   
$("÷ry  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 ©NrT   ©rê   ©rì   ©Úp©rT   r   r!   rA   –  ó    z#test_path_pathlib.<locals>.<lambda>c                 S   ó
   t | dƒS ©NrT   ©r   r  r   r   r!   rA   –  ó   
 ©
r   r,   r-   r.   r   r/   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_datasetr\  )r   r   r   r“   r¬   r)   rÌ   )rX  rY  r4   rT   rb   rß   r   r   r!   Ú test_contiguous_mixed_data_table›  s   

þÿ
"ür�  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 r|  ©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                     rz  )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                    r{  r|  r~  r  r�  r   r!   rA   Æ  r‚  z,test_pickle_path_localpath.<locals>.<lambda>c                 S   rƒ  r„  r…  r  r   r   r!   rA   Æ  r†  r‡  r‰  r   r�  r!   Útest_pickle_path_localpath¿  s   
ýÿrœ  c                     r�  )Nr   r   r   r   c                 S   r   r   r   r   r   r   r!   r"   Ï  r#   z0test_path_localpath_hdfstore.<locals>.<listcomp>r   r$   c                    r‘  r|  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/   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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sƒJ ‚| r–|
jD ]}|jr•|	|j js•J ‚qˆqiW 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   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/   r1   r)   r*   r   r“   ÚtempfileÚNamedTemporaryFileÚ
contextlibÚclosingr   rD  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)rX  rg   r    rD  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&   rD  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   rZ  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_fail6  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   rZ  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_runJ  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   r^  Ústridesr,  r   r   r!   Útest_hdfstore_stridesW  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Ì   )rS   r4   rT   rÎ   r5   rß   r   r   r!   Útest_store_bool_index_  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-  r:  r?  rB  rF  rO  rQ  rR  rg  rj  rn  ro  ry  rŠ  r�  rš  rœ  rž  r®  r±  r·  rÀ  ÚfilterwarningsÚint64ri   rÂ  rÅ  rÇ  rÉ  r   r   r   r!   Ú<module>   s®    0

+=#$
üþ

þþöþ
(!
!"-v.

!

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