o
    g,                     @   s   d dl Z d dlZd dlmZm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mZ d dlmZ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(dd Z)dd Z*dd Z+dS )    N)catch_warningssimplefilter)	Timestamp)		DataFrameHDFStoreIndex
Int64Index
MultiIndex
RangeIndexSeries_testingconcat)_maybe_removeensure_clean_pathensure_clean_store)_test_decoratorsc              	   C   s   t dddgi}t| I}t|,}|jd|dd |jd|dd |djdks,J |djdks6J W d    n1 s@w   Y  W d    d S W d    d S 1 sXw   Y  d S )	NA      afixedformatbtable)r   r   r   put
get_storerformat_type)
setup_pathdfpathstore r"   _/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/pandas/tests/io/pytables/test_put.pytest_format_type#   s   

"r$   c              	   C   s~   d}t | .}tjt|d t|dd W d    n1 s w   Y  W d    d S W d    d S 1 s8w   Y  d S )Nz-format is not a defined argument for HDFStorematchr   r   )tmensure_cleanpytestraises
ValueErrorr   )r   msgr    r"   r"   r#    test_format_kwarg_in_constructor.   s   "r-   c              	   C   sr  t | v}t }tdd t|d |d| |djr"J d}t	j
t|d |d| W d    n1 s<w   Y  tdd t|d |d| |djsZJ t|d |d| |djsmJ tdd  W d    n1 s}w   Y  t| }t }tdd ||d t|}|djrJ W d    n1 sw   Y  t	j
t|d |j|ddd	 W d    n1 sw   Y  tdd ||d
 t|}|d
jsJ W d    n1 sw   Y  |j|ddd	 t|}|djsJ W d    n	1 sw   Y  tdd  W d    d S 1 s2w   Y  d S )Nzio.hdf.default_formatr   r   Can only append to Tablesr%   df2r   Tappenddf3df4)r   r'   makeDataFramepd
set_optionr   r   r   is_tabler)   r*   r+   r1   r   to_hdfr   )r   r!   r   r,   r    r"   r"   r#   test_api_default_format8   sP   







$r9   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 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 )Nr   
   r   zfoo/bar/bahfooz/foocr   r   r.   r%   Tr0   fF)r   r1   )
r   r'   makeTimeSeriesmakeTimeDataFramer   r)   r*   r+   r   assert_frame_equal)r   r!   tsr   r,   r"   r"   r#   test_puth   s.   

"rB   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      g | ]}d | qS zI am a very long string index: r"   .0ir"   r"   r#   
<listcomp>       z)test_put_string_index.<locals>.<listcomp>   index)r   Br   r   $abcdefghijklmnopqrstuvwxyz1234567890c                 S   rC   rD   r"   rE   r"   r"   r#   rH      rI      )
r   r   ranger   nparanger   r'   assert_series_equalr@   )r   r!   rL   sr   r"   r"   r#   test_put_string_index   s(   
"rU   c              	   C   s   t | H}t }|jd|ddd t|d | d}tjt|d |jd|ddd W d    n1 s7w   Y  W d    d S W d    d S 1 sOw   Y  d S )	Nr<   r   zlibr   complib0Compression not supported on Fixed format storesr%   r   r   )r   r'   r?   r   r@   r)   r*   r+   )r   r!   r   r,   r"   r"   r#   test_put_compression   s   
"rZ   c              	   C   s   t  }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 sGw   Y  d S )	NrY   r%   r   r   bloscrW   r<   r   )r'   r?   r   r)   r*   r+   r   r@   )r   r   r!   r,   r"   r"   r#   test_put_compression_blosc   s   
"r\   c              	   C   sR  t  }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< | j	d
d}t
| ;}t|d td
d tdtjj |d| W d    n1 sw   Y  |d}t || W d    d S 1 sw   Y  d S )Nr;   obj1barobj2r   r   bool1rM   bool2Tbool3r   int1r   int220010102
timestamp120010103
timestamp2i  	datetime1   	datetime2   )datetimer   )recordignore)r'   r?   r   rm   rQ   nanlocrL   _consolidate_convertr   r   r   r   r5   errorsPerformanceWarningr   getr@   )r   r   r!   expectedr"   r"   r#   test_put_mixed_type   s.   


"rx   c                    s   t | 9  fdd}tjtjtjtjfD ]}|d| |d| q|dtj tj}|d| |d| W d    d S 1 s@w   Y  d S )Nc                    sV   t tjddtdd}|t||_t d  jd|| d t	
| d  d S )Nr:   r   ABcolumnsr   r   )r   rQ   randomrandnlistlenrL   r   r   r'   r@   )r   rL   r   r!   r"   r#   check   s
   
z%test_store_index_types.<locals>.checkr   r   )r   r'   makeFloatIndexmakeStringIndexmakeIntIndexmakeDateIndexmakePeriodIndexmakeUnicodeIndex)r   r   rL   r"   r   r#   test_store_index_types   s   
	

"r   c              	   C   sJ  t jg dddgd}ttddd|d}| }t|jt	r(t
|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 srw   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}| }t|jt	rt
|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   )rM   r   )rM   r   firstsecondnames   rj      rz   r   T)check_index_typecheck_column_typedf1r   r   z<cannot use a multi-index on axis [1] with data_columns ['A']r%   r/   r   )r   data_columnsz;cannot use a multi-index on axis [1] with data_columns Truer2   ABCDr;   )name)r	   from_tuplesr   rQ   rR   reshapecopy
isinstancerL   r
   r   r   r   r'   r@   reescaper)   r*   r+   r1   r   r   r~   )r   rL   r   rw   r!   r,   r"   r"   r#   test_column_multiindex  sR   



&
$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 jdd tddD | dS )Nc              	   S   s<   g | ]}t d D ]}t dD ]}tdd|||fqqqS )r   rj   i  r   )rP   rm   )rF   drT   tr"   r"   r#   rH   =  s    
z=test_store_multiindex.<locals>.make_index.<locals>.<listcomp>r   rj   r   )r	   r   rP   r   r"   r"   r#   
make_index;  s   z)test_store_multiindex.<locals>.make_indexr   )r   r   r   r   )r{   rL   )dateNNrT   r   rK   )r   level_1level_2)r   r   r   zBduplicate names/columns in the multi-index when storing as a tabler%   )r   r   r   )r   rT   r   )N)r   r   r   rQ   zerosr1   r'   r@   selectr   rS   r)   r*   r+   )r   r!   r   r   rT   xpr,   r"   r"   r#   test_store_multiindex5  s^   










$r   ),rm   r   warningsr   r   numpyrQ   r)   pandas._libs.tslibsr   pandasr5   r   r   r   r   r	   r
   r   r   r'   r   pandas.tests.io.pytables.commonr   r   r   pandas.utilr   tdmarksingle
pytestmarkr$   r-   r9   rB   rU   rZ   skip_if_windows_python_3r\   rx   r   r   r   r"   r"   r"   r#   <module>   s.    ,
0!
#4