a
    d-                     @   sb  d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlm	Z	m
Z
mZmZmZmZmZ d dlmZmZ d dlmZ ejjZdd Zdd	 Zd
d Zdd Zdd Zdd Zej dd Z!dd Z"ej#ddej$gdej%gdej&gdej'gdej$gdej%gdej&gdej'gdej(gdej(gg
ej)ddd Z*dd Z+dd Z,ej#d ddgd!d" Z-dS )#    N)	Timestamp)	DataFrameHDFStoreIndex
MultiIndexSeries_testingconcat)_maybe_removeensure_clean_store)_test_decoratorsc                 C   s   t dddgi}t| | X}|jd|dd |jd|dd |djdksRJ |djdksfJ W d    n1 sz0    Y  d S )	NA      afixedformatbtable)r   r   put
get_storerZformat_type)tmp_path
setup_pathdfstore r   j/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/io/pytables/test_put.pytest_format_type   s    r   c                 C   sF   d}t jt|d  t| | dd W d    n1 s80    Y  d S )Nz-format is not a defined argument for HDFStorematchr   r   )pytestraises
ValueErrorr   )r   r   msgr   r   r    test_format_kwarg_in_constructor&   s    r%   c              
   C   s  t |"}t }tddt t|d |d| |djrHJ d}t	j
t|d |d| W d    n1 s|0    Y  W d    n1 s0    Y  tdd\ t|d |d| |djsJ t|d |d| |djsJ W d    n1 s0    Y  W d    n1 s40    Y  | | }t }tdd ||d t|"}|djrJ W d    n1 s0    Y  t	j
t|d  |j|ddd	 W d    n1 s0    Y  W d    n1 s0    Y  tdd ||d
 t|"}|d
js:J W d    n1 sP0    Y  |j|ddd	 t|"}|djsJ W d    n1 s0    Y  W d    n1 s0    Y  d S )Nzio.hdf.default_formatr   r   Can only append to Tablesr   df2r   Tappenddf3Zdf4)r   tmZmakeDataFramepdZoption_contextr
   r   r   Zis_tabler!   r"   r#   r)   to_hdfr   )r   r   r   r   r$   pathr   r   r   test_api_default_format/   s>    
H

P
2P
2
r/   c              	   C   s  t | }t }t }||d< |d d |d< |d d |d< |d d |d< |d d |d< |jd|d d dd	 d
}tjt|d( |jd|dd  dd W d    n1 s0    Y  t|d tjt|d( |jd|dd  dd W d    n1 s0    Y  tjt|d( |jd|dd  dd W d    n1 sV0    Y  |jd|d d ddd t	|d d |d  W d    n1 s0    Y  d S )Nr   
   r   zfoo/bar/bahfooz/foocr   r   r&   r   Tr(   fF)r   r)   )
r   r+   ZmakeTimeSeriesmakeTimeDataFramer   r!   r"   r#   r
   assert_frame_equal)r   r   tsr   r$   r   r   r   test_putY   s&    6
88r7   c                 C   s   t | }tdd tdD }ttd|d}t||d}||d< t|d | ||d< t	|d | tdgd	d tdD  }ttd
|d}t||d}||d< t|d | ||d< t	|d | W d    n1 s0    Y  d S )Nc                 S   s   g | ]}d | qS zI am a very long string index: r   .0ir   r   r   
<listcomp>z       z)test_put_string_index.<locals>.<listcomp>   index)r   Br   r   Z$abcdefghijklmnopqrstuvwxyz1234567890c                 S   s   g | ]}d | qS r8   r   r9   r   r   r   r<      r=      )
r   r   ranger   nparanger   r+   assert_series_equalr5   )r   r   r@   sr   r   r   r   test_put_string_indexx   s&    
rH   c              	   C   s   t | ~}t }|jd|ddd t|d | d}tjt|d" |jd|ddd W d    n1 sn0    Y  W d    n1 s0    Y  d S )	Nr2   r   zlibr   Zcomplib0Compression not supported on Fixed format storesr   r   r   )r   r+   r4   r   r5   r!   r"   r#   )r   r   r   r$   r   r   r   test_put_compression   s    
rL   c              	   C   s   t  }t| v}d}tjt|d" |jd|ddd W d    n1 sL0    Y  |jd|ddd t |d | W d    n1 s0    Y  d S )	NrK   r   r   r   ZbloscrJ   r2   r   )r+   r4   r   r!   r"   r#   r   r5   )r   r   r   r$   r   r   r   test_put_compression_blosc   s    
0rM   c              	   C   sF  t  }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	| l}t
|d t tjj |d| W d    n1 s0    Y  |d}t || W d    n1 s80    Y  d S )Nr1   Zobj1barobj2r   r   Zbool1rA   Zbool2TZbool3r   Zint1r   Zint2Z20010102nsZ
timestamp1Z20010103Z
timestamp2Z	datetime1Z	datetime2      r   )r+   r4   r   Zas_unitrD   nanlocr@   Z_consolidater   r
   Zassert_produces_warningr,   errorsZPerformanceWarningr   getr5   )r   r   r   expectedr   r   r   test_put_mixed_type   s(    

,
rX   zformat, indexr   r   z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                 C   s   t | f}ttjddtdd}|t||_t	|d |j
d||d t||d  W d    n1 st0    Y  d S )Nr   )r0   r   ZABcolumnsr   r   )r   r   rD   randomdefault_rngstandard_normallistlenr@   r
   r   r+   r5   )r   r   r@   r   r   r   r   r   test_store_index_types   s    

r`   c              	   C   s.  t jg dddgd}ttddd|d}||j }t	| }|
d	| tj|d	 |d
d
d |j
d|dd tj|d |d
d
d td}tjt|d$ |j
d|ddgd W d    n1 s0    Y  td}tjt|d" |j
d|dd
d W d    n1 s 0    Y  W d    n1 s@0    Y  t	| @}|d| |d| t|d t||f W d    n1 s0    Y  ttdddttdddd}||j }t	| 6}|j
d|dd tj|d |d
d
d W d    n1 s 0    Y  d S )N))r   r   )r   r   )rA   r   )rA   r   firstsecondnames   rQ      rY   r   T)Zcheck_index_typeZcheck_column_typeZdf1r   r   z<cannot use a multi-index on axis [1] with data_columns ['A']r   r'   r   )r   Zdata_columnsz;cannot use a multi-index on axis [1] with data_columns Truer*   ABCDr1   )name)r   from_tuplesr   rD   rE   ZreshapeZset_axisr@   Zto_numpyr   r   r+   r5   reescaper!   r"   r#   r)   r	   r   r^   )r   r@   r   rW   r   r$   r   r   r   test_column_multiindex   s>    

2
R
8&
rl   c              	   C   s8  t | }ddd}t|d ttdddg| d}|d| t|d| t|d ttdddg|g dd}|d| t|d| t|d	 t	td
|g dd}|d	| t	td
|g dd}t
|d	| t|d ttdddg|g dd}d}tjt|d |d| W d    n1 s\0    Y  t|d ttdddg|g dd}tjt|d |d| W d    n1 s0    Y  t|d ttdddg|g dd}|d| t|d| W d    n1 s*0    Y  d S )Nc                 S   s   t jdd tddD | dS )Nc              	   S   s<   g | ]4}t d D ]&}t dD ]}tdd|||fqqqS )r   rQ   i  re   )rC   datetime)r:   drG   tr   r   r   r<     s   z=test_store_multiindex.<locals>.make_index.<locals>.<listcomp>r   rQ   rc   )r   ri   rC   rc   r   r   r   
make_index  s    z)test_store_multiindex.<locals>.make_indexr   )re   r   r   r   )rZ   r@   )dateNNrG   re   r?   )rq   Zlevel_1Zlevel_2)rq   r   ro   zBduplicate names/columns in the multi-index when storing as a tabler   )rq   rq   rq   )rq   rG   ro   )N)r   r
   r   rD   zerosr)   r+   r5   selectr   rF   r!   r"   r#   )r   r   rp   r   rG   Zxpr$   r   r   r   test_store_multiindex  sX    






,

,

rt   r   c                 C   s\   t tjddtjddddd}| | }|j|dd	|d
 t|d}t	
|| d S )Nr   )   r   Z20220101Mru   )freqZperiodsr?   r   w)moder   )r   rD   r[   r\   r]   r,   Zperiod_ranger-   Zread_hdfr+   r5   )r   r   r   r   r.   rW   r   r   r   test_store_periodindex[  s    rz   ).rm   rj   numpyrD   r!   Zpandas._libs.tslibsr   Zpandasr,   r   r   r   r   r   r   r+   r	   Zpandas.tests.io.pytables.commonr
   r   Zpandas.utilr   tdmarkZ
single_cpuZ
pytestmarkr   r%   r/   r7   rH   rL   Zskip_if_windowsrM   rX   ZparametrizeZmakeFloatIndexZmakeStringIndexZmakeIntIndexZmakeDateIndexZmakePeriodIndexfilterwarningsr`   rl   rt   rz   r   r   r   r   <module>   sL   $	
	*

.G