o
    _~#g/0                     @   sZ  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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dgej#de
dd e$dD e
ej%de&de
e%dedddej'dddg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
date_range)_maybe_removeensure_clean_store)_test_decoratorsc                 C   s   t dddgi}t| | -}|jd|dd |jd|dd |djdks)J |djdks3J W d    d S 1 s>w   Y  d S )	NA      afixedformatbtable)r   r   put
get_storerformat_type)tmp_path
setup_pathdfstore r   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/io/pytables/test_put.pytest_format_type   s   "r    c                 C   sH   d}t jt|d t| | dd W d    d S 1 sw   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   sH  t |}tdtdd ttdtdtdd tdD tdd	}t	
d
d: t|d |d| |djr?J d}tjt|d |d| W d    n1 sYw   Y  W d    n1 shw   Y  t	
d
d. t|d |d| |djsJ t|d |d| |djsJ W d    n1 sw   Y  W d    n1 sw   Y  | | }tdtdd ttdtdtdd tdD tdd	}t	
d
dL |j|dd t|}|djrJ W d    n	1 sw   Y  tjt|d |j|ddd W d    n	1 s"w   Y  W d    n	1 s2w   Y  t	
d
d\ |j|dd t|}|djsSJ W d    n	1 s^w   Y  |j|ddd t|}|djsyJ W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Ng?x   )      ABCDdtypec                 S      g | ]}d | qS zi-r   .0ir   r   r   
<listcomp>5       z+test_api_default_format.<locals>.<listcomp>r)   columnsindexzio.hdf.default_formatr   r   Can only append to Tablesr!   df2r   c                 S   r.   r/   r   r0   r   r   r   r3   N   r4   )keyT)r:   appenddf3df4)r   r   nparangereshaper   listobjectrangepdoption_contextr   r   r   is_tabler#   r$   r%   r;   to_hdfr   )r   r   r   r   r&   pathr   r   r   test_api_default_format/   sl   

	




 $rI   c              	   C   s  t | }ttjdtjdtdddd}ttjd	dt
tdtdtd	d
ddd}||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 s~w   Y  t|d tjt|d |jd|dd  dd W d    n1 sw   Y  tjt|d |jd|dd  dd W d    n1 sw   Y  |jd|d d ddd t|d d |d  W d    d S 1 sw   Y  d S )N
   r,   
2020-01-01periodsr7   r   )   r*   r+   
2000-01-01rO   BrM   freqr5   r   r   zfoo/bar/bahfooz/foocr   r   r8   r!   T)r;   fF)r   r;   )r   r   r>   r?   float64r
   r   randomdefault_rngstandard_normalr   rA   rB   r   r#   r$   r%   r   tmassert_frame_equal)r   r   tsr   r&   r   r   r   test_puta   s:   

"r^   c                 C   s   t | r}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    d S 1 syw   Y  d S )Nc                 S   r.   zI am a very long string index: r   r0   r   r   r   r3      r4   z)test_put_string_index.<locals>.<listcomp>rO   rN   )r   rQ   r   r   $abcdefghijklmnopqrstuvwxyz1234567890c                 S   r.   r_   r   r0   r   r   r   r3      r4      )
r   r   rC   r   r>   r?   r   r[   assert_series_equalr\   )r   r   r7   sr   r   r   r   test_put_string_index   s(   
"rd   c              	   C   s   t | ]}ttjddttdtdt	ddddd	}|j
d
|ddd t|d
 | d}tjt|d |j
d|ddd W d    n1 sLw   Y  W d    d S W d    d S 1 sdw   Y  d S )Nr   rJ   r*   r+   r,   rP   rJ   rQ   rR   r5   rU   r   zlibr   complib0Compression not supported on Fixed format storesr!   r   r   )r   r   r>   rX   rY   rZ   r   rA   rB   r
   r   r[   r\   r#   r$   r%   )r   r   r   r&   r   r   r   test_put_compression   s   
"rj   c              	   C   s   t tjddttdtdtddddd	}t	| <}d
}t
jt|d |jd|ddd W d    n1 s;w   Y  |jd|ddd t|d | W d    d S 1 s\w   Y  d S )Nr   re   r+   r,   rP   rJ   rQ   rR   r5   ri   r!   r   r   bloscrg   rU   r   )r   r>   rX   rY   rZ   r   rA   rB   r
   r   r#   r$   r%   r   r[   r\   )r   r   r   r&   r   r   r   test_put_compression_blosc   s   
"rl   c              	   C   sn  t tjddttdtdtdd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| 6}t|d  ttjj |d | W d    n1 sw   Y  |d }t|| W d    d S 1 sw   Y  d S )!Nr   re   r+   r,   rP   rJ   rQ   rR   r5   rT   obj1barobj2r   r   bool1bool2Tbool3r   int1int220010102ns
timestamp120010103
timestamp2	datetime1	datetime2      r   )r   r>   rX   rY   rZ   r   rA   rB   r
   r   as_unitnanlocr7   _consolidater   r   r[   assert_produces_warningrD   errorsPerformanceWarningr   getr\   )r   r   r   expectedr   r   r   test_put_mixed_type   s4   


"r   r   r   r   r7   c                 C   s   g | ]}t |qS r   )strr0   r   r   r   r3      s    r3   rJ   r,   rK   rL   c                 C   sx   t | .}ttjddtd|d}t|d |jd||d t	
||d  W d    d S 1 s5w   Y  d S )Nr   )rJ   r   ABr5   r   r   )r   r   r>   rX   rY   rZ   rA   r   r   r[   r\   )r   r   r7   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	| w}|
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 sjw   Y  td}tjt|d |j
d|dd
d W d    n1 sw   Y  W d    n1 sw   Y  t	|  }|d| |d| t|d t||f W d    n1 sw   Y  ttdddttdddd}||j }t	| }|j
d|dd tj|d |d
d
d W d    d S 1 sw   Y  d S )N))r   r   )r   r   )rQ   r   )rQ   r   firstsecondnames   r|   r*   )r6   r   T)check_index_typecheck_column_typedf1r   r   z<cannot use a multi-index on axis [1] with data_columns ['A']r!   r9   r   )r   data_columnsz;cannot use a multi-index on axis [1] with data_columns Truer<   r+   rT   )name)r   from_tuplesr   r>   r?   r@   set_axisr7   to_numpyr   r   r[   r\   reescaper#   r$   r%   r;   r	   r   rA   )r   r7   r   r   r   r&   r   r   r   test_column_multiindex   sJ   



&
$r   c              	   C   s6  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 sw   Y  t|d ttdddg|g dd}tjt|d |d| W d    n1 sw   Y  t|d ttdddg|g dd}|d| t|d| W d    d S 1 sw   Y  d S )Nc                 S   s*   t dd}tj|tdtdg| d}|S )Nz
2013-12-01z
2013-12-02r   r|   r   )r
   r   from_productrC   )r   dtimir   r   r   
make_index.  s   
z)test_store_multiindex.<locals>.make_indexr   )r   r   r   r   r5   )dateNNserr   rN   )r   level_1level_2)r   r   tzBduplicate names/columns in the multi-index when storing as a tabler!   )r   r   r   )r   rc   r   )N)r   r   r   r>   zerosr;   r[   r\   selectr   rb   r#   r$   r%   )r   r   r   r   r   xpr&   r   r   r   test_store_multiindex)  s^   










$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   20220101Mr   )rS   rM   rN   r   w)r:   moder   )r   r>   rX   rY   rZ   rD   period_rangerG   read_hdfr[   r\   )r   r   r   r   rH   r   r   r   r   test_store_periodindexj  s   r   ),r   numpyr>   r#   pandas._libs.tslibsr   pandasrD   r   r   r   r   r   r   r[   r	   r
   pandas.tests.io.pytables.commonr   r   pandas.utilr   tdmark
single_cpu
pytestmarkr    r'   rI   r^   rd   rj   skip_if_windowsrl   r   parametrizerC   r?   floatr   r   r   r   r   r   r   r   r   <module>   sB    (

	2%


.A