B
    Y0d,                 @   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| b}t|N}|jd|dd |jd|dd |djdksXt|djdksltW d Q R X W d Q R X d S )	NA      afixed)formatbtable)r   r   r   put
get_storerZformat_typeAssertionError)
setup_pathdfpathstore r!   S/var/www/html/venv/lib/python3.7/site-packages/pandas/tests/io/pytables/test_put.pytest_format_type#   s    

r#   c          
   C   sD   d}t | ,}tjt|d t|dd W d Q R X W d Q R X d S )Nz-format is not a defined argument for HDFStore)matchr   )r   )tmZensure_cleanpytestraises
ValueErrorr   )r   msgr   r!   r!   r"    test_format_kwarg_in_constructor.   s    r*   c          
   C   s  t | }t }tdd t|d |d| |djrDt	d}t
jt|d |d| W d Q R X tdd t|d |d| |djst	t|d |d| |djst	tdd  W d Q R X t| }t }tdd ||d t|}|djr"t	W d Q R X t
jt|d |j|ddd	 W d Q R X tdd ||d
 t|}|d
jst	W d Q R X |j|ddd	 t|}|djst	W d Q R X tdd  W d Q R X d S )Nzio.hdf.default_formatr   r   zCan only append to Tables)r$   df2r   T)appenddf3Zdf4)r   r%   ZmakeDataFramepdZ
set_optionr   r   r   Zis_tabler   r&   r'   r(   r,   r   Zto_hdfr   )r   r    r   r)   r   r!   r!   r"   test_api_default_format8   sB    







r/   c          
   C   s`  t | L}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 Q R X t|d tjt|d |jd|dd  dd W d Q R X tjt|d |jd|dd  dd W d Q R X |jd|d d ddd t	|d d |d  W d Q R X d S )Nr   
   r   zfoo/bar/bahfooz/foocr   )r   zCan only append to Tables)r$   T)r,   fF)r   r,   )
r   r%   ZmakeTimeSeriesmakeTimeDataFramer   r&   r'   r(   r   assert_frame_equal)r   r    tsr   r)   r!   r!   r"   test_puth   s&    "
""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 Q R X d S )Nc             S   s   g | ]}d | qS )zI am a very long string index: r!   ).0ir!   r!   r"   
<listcomp>   s    z)test_put_string_index.<locals>.<listcomp>   )index)r   Br   r   Z$abcdefghijklmnopqrstuvwxyz1234567890c             S   s   g | ]}d | qS )zI am a very long string index: r!   )r8   r9   r!   r!   r"   r:      s       )
r   r   ranger   nparanger   r%   assert_series_equalr5   )r   r    r<   sr   r!   r!   r"   test_put_string_index   s"    
rD   c          
   C   sr   t | `}t }|jd|ddd t|d | d}tjt|d |jd|ddd W d Q R X W d Q R X d S )	Nr2   r   zlib)r   complibz0Compression not supported on Fixed format stores)r$   r   r   )r   r%   r4   r   r5   r&   r'   r(   )r   r    r   r)   r!   r!   r"   test_put_compression   s    
rG   c          
   C   sr   t  }t| X}d}tjt|d |jd|ddd W d Q R X |jd|ddd t |d | W d Q R X d S )	Nz0Compression not supported on Fixed format stores)r$   r   r   Zblosc)r   rF   r2   r   )r%   r4   r   r&   r'   r(   r   r5   )r   r   r    r)   r!   r!   r"   test_put_compression_blosc   s    
rH   c          
   C   s(  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
| V}t|d td
d  tdtjj |d| W d Q R X |d}t || W d Q R X d S )Nr1   Zobj1barobj2r   r   Zbool1r=   Zbool2TZbool3r   Zint1r   Zint2Z20010102Z
timestamp1Z20010103Z
timestamp2i  Z	datetime1   Z	datetime2   )datetimer   )recordignore)r%   r4   r   rM   r@   nanlocr<   Z_consolidate_convertr   r   r   r   r.   errorsZPerformanceWarningr   getr5   )r   r   r    expectedr!   r!   r"   test_put_mixed_type   s*    


rV   c          	      s|   t | j  fdd}x0tjtjtjtjgD ]}|d| |d| q,W |dtj tj}|d| |d| W d Q R X d S )Nc                sV   t tjddtdd}|t||_t d  jd|| d t	
| d  d S )Nr0   r   ZAB)columnsr   )r   )r   r@   randomZrandnlistlenr<   r   r   r%   r5   )r   r<   r   )r    r!   r"   check   s
    
z%test_store_index_types.<locals>.checkr   r   )r   r%   ZmakeFloatIndexZmakeStringIndexZmakeIntIndexZmakeDateIndexZmakePeriodIndexZmakeUnicodeIndex)r   r[   r<   r!   )r    r"   test_store_index_types   s    


r\   c          
   C   s  t jddddgddgd}ttdd	d
|d}| }t|jt	rTt
|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 Q R X td}tjt|d |jd|ddd W d Q R X W d Q R X t| 6}|d| |d| t|d t||f W d Q R X 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 Q R X d S )N)r   r   )r   r   )r=   r   )r=   r   firstsecond)names   rK      )rW   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-   ZABCDr1   )name)r	   from_tuplesr   r@   rA   Zreshapecopy
isinstancer<   r
   r   r   r   r%   r5   reescaper&   r'   r(   r,   r   r   rY   )r   r<   r   rU   r    r)   r!   r!   r"   test_column_multiindex  s>    


&
"&
rh   c          
   C   s  t | }ddd}t|d ttdddg| d}|d| t|d| t|d ttdddg|dd d gd}|d| t|d| t|d	 t	td
|dd d gd}|d	| t	td
|dddgd}t
|d	| t|d ttdddg|dddgd}d}tjt|d |d| W d Q R X t|d ttdddg|dddgd}tjt|d |d| W d Q R X t|d ttdddg|dd	dgd}|d| t|d| W d Q R X 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   rK   i  r`   )r?   rM   )r8   drC   tr!   r!   r"   r:   >  s   z=test_store_multiindex.<locals>.make_index.<locals>.<listcomp>r   rK   )r_   )r	   rc   r?   )r_   r!   r!   r"   
make_index;  s    z)test_store_multiindex.<locals>.make_indexr   )r`   r   r   r   )rW   r<   daterC   r`   )r<   Zlevel_1Zlevel_2rj   zBduplicate names/columns in the multi-index when storing as a table)r$   )N)r   r   r   r@   Zzerosr,   r%   r5   selectr   rB   r&   r'   r(   )r   r    rk   r   rC   Zxpr)   r!   r!   r"   test_store_multiindex5  sP    






rn   ),rM   rf   warningsr   r   numpyr@   r&   Zpandas._libs.tslibsr   Zpandasr.   r   r   r   r   r	   r
   r   r   r%   r   Zpandas.tests.io.pytables.commonr   r   r   Zpandas.utilr   tdmarkZsingleZ
pytestmarkr#   r*   r/   r7   rD   rG   Zskip_if_windows_python_3rH   rV   r\   rh   rn   r!   r!   r!   r"   <module>   s*   ,
0!#4