o
    ҷh1                     @   s  d dl Z d dlZd dlZd dlmZmZmZmZ d dl	m
Z
mZ d dlmZmZmZmZmZ d dlmZmZmZ d dlmZ d dlmZ ejjZejdg d	d
d Zdd Z dd Z!dd Z"dd Z#dd Z$dd Z%ejde&dejdej'j(ej)dejj*e oe oe dddd Z+ejj*e  d dd!d" Z,ejd#g d$g d%g d&g d'g d(g d)g d*ej-d+d,d-gd.ej-d+d,d-gg	ejd/d0e.gd1d2 Z/d3d4 Z0d5d6 Z1dS )7    N)PY311is_ci_environmentis_platform_linuxis_platform_little_endian)ClosedFileErrorPossibleDataLossError)	DataFrameHDFStoreSeries_testingread_hdf)_maybe_removeensure_clean_storetables)pytables)Termmode)rr+awc              	   C   s  t  }d}||  }|dv r,tjt|d t||d W d    n1 s&w   Y  nt||d}|jj|ks;J W d    n1 sEw   Y  ||  }|dv rtjt|d t||d}W d    n1 skw   Y  W d    n1 szw   Y  nt||d}|jj|ksJ W d    n1 sw   Y  ||  }|dv rtjt|d |j|d|d W d    n1 sw   Y  |j|ddd n|j|d|d |dv rd}tjt	|d t
|d|d W d    d S 1 sw   Y  d S t
|d|d}t || d S )	Nz[\S]* does not exist)r   r   matchr   dfr   )r   zNmode w is not allowed while performing a read. Allowed modes are r, r\+ and a.)tmmakeTimeDataFramepytestraisesOSErrorr	   _handler   to_hdf
ValueErrorr   assert_frame_equal)
setup_pathtmp_pathr   r   msgpathstoreresult r*   ^/var/www/html/venv/lib/python3.10/site-packages/pandas/tests/io/pytables/test_file_handling.py	test_mode$   sL   "r,   c                 C   s:   t  }| | }|j|ddd t|d}t || d S )Nr   r   r   )r   r   r!   r   r#   )r%   r$   r   r'   r)   r*   r*   r+   test_default_modeU   s
   
r-   c                 C   s  | | }t |dd}t |d< d}tjt|d |d W d    n1 s)w   Y  |  |jr7J |d |jsAJ t	|dksIJ |  |jrRJ t |dd}t |d< |d |jshJ t	|dkspJ |j
dkswJ |  |jrJ |d |jsJ t	|dksJ |j
dksJ |  |jrJ |d |jsJ t	|dksJ |j
dksJ |  |jrJ d S )	Nr   r   zKRe-opening the file \[[\S]*\] with mode \[a\] will delete the current file!r   r   r   r      )r	   r   makeTimeSeriesr   r   r   opencloseis_openlen_mode)r%   r$   r'   r(   r&   r*   r*   r+   test_reopen_handle^   sF   











r5   c                 C   s   t | 2}t  }t|dddd}||d< |d| t |d | t |d | |  W d    n1 s:w   Y  tj	|rGJ d S )Nr   	H5FD_COREr   )r   driverdriver_core_backing_storer   df2)
r   ensure_cleanmakeDataFramer	   appendr#   r1   osr'   exists)r$   r'   r   r(   r*   r*   r+   test_open_args   s   
r?   c                 C   sN   t | }t |d< |  |jdd W d    d S 1 s w   Y  d S )Nr   T)fsync)r   r   r/   flush)r$   r(   r*   r*   r+   
test_flush   s
   
"rB   c                 C   s  t  }| | }|j|ddd t|d}t || tj|dd"}|jdddD ]}|jj	dks4J |jj
d	ks<J q*W d    n1 sGw   Y  | | }|j|dd	d
 t|d}t || tj|dd"}|jdddD ]}|jj	dks|J |jj
d u sJ qrW d    n1 sw   Y  | | }||d t|d}t || tj|dd#}|jdddD ]}|jj	dksJ |jj
d u sJ qW d    d S 1 sw   Y  d S )Nr   	   )	complevelr   r   /dfLeafwhere	classnamezlib)complibr   )r   r;   r!   r   r#   r   	open_file
walk_nodesfiltersrD   rK   )r%   r$   r   tmpfiler)   h5filenoder*   r*   r+   test_complibs_default_settings   s>   


"rR   c                 C   s   t  }| | }t|}|jd|ddd |d| |  tj|dd=}|jdd	d
D ]}|jj	dks8J |jj
d u s@J q.|jdd	d
D ]}|jj	dksRJ |jj
dksZJ qHW d    d S 1 sfw   Y  d S )NdfcrC   blosc)rD   rK   r   r   r   rE   rF   rG   r   z/dfc)r   r;   r	   r<   r1   r   rL   rM   rN   rD   rK   )r%   r$   r   rO   r(   rP   rQ   r*   r*   r+   'test_complibs_default_settings_override   s   "rU   lvl
   libz!ignore:object name is not a validzSegfaulting in a CI environment)reasonc           	      C   s  t tdtdtdtjd}tdst	
d tds't	
d | | d	| d
 }| d	| }|j||||d t||}t|| tj|dd2}|jd| ddD ]}|jj|ksgJ |dkrt|jjd u ssJ q]|jj|ks|J q]W d    d S 1 sw   Y  d S )N)      ABCDrZ   )columnsindexlzozlzo not availablebzip2zbzip2 not available_z.h5)rK   rD   r   r   /rF   rG   r   )r   nponeslistarangeastypestr_r   which_lib_versionr   skipr!   r   r   r#   rL   rM   rN   rD   rK   )	r%   rV   rX   r   rO   gnamer)   h5tablerQ   r*   r*   r+   test_complibs   s(   




"rm   z$reason platform is not little endianc                 C   s   t | L}tdddtdd}tj|jd< tj|jd< t|d |jd|d	d
 t	|d | |j
dgd}|dtdd	d
}t	|| W d    d S 1 sSw   Y  d S )Nfoobar)AB   )r^   )   rp   )   rq   r   ascii)encodingrp   )r]   z	columns=A)r   r   rangerc   nanlocr   r<   r   r#   reindexselectr   )r$   r(   r   expectedr)   r*   r*   r+   test_encoding  s   

"r}   val)   E, 17       a   b   c)r   r   r   r   )s   EE, 17r   r   r   r   )r      r   r   r   )r   r   r   r   )r   r   r   r   )   Ar   r   r   r   r   r   r   r   dtypecategoryc           
         sn   d d}d} fdd|D }t ||d}| | }|j||d |d t||}||tj}	t|	| d S )	Nzlatin-1 datac                    s$   g | ]}t |tr| n|qS r*   )
isinstancebytesdecode).0xencr*   r+   
<listcomp>3  s   $ z'test_latin_encoding.<locals>.<listcomp>)r   table)formatrv   nan_rep)r
   r!   r   replacerc   rx   r   assert_series_equal)
r%   r$   r   r~   r   keyserr(   retrs_nanr*   r   r+   test_latin_encoding  s   
r   c                 C   sH  | | }t  }|j|dddd t|}d| vsJ |js"J |  d| v s.J |jr3J | | }tjr`t|}d}t	j
t|d t| W d    n1 sVw   Y  |  nt|}t|}d| vspJ d| vsxJ |js}J |jsJ |  d| v sJ |jrJ d| vsJ |jsJ |  d| v sJ d| v sJ |jrJ |jrJ t|dd}|d| t|}|d	| |  d| v sJ |jrJ |  d| v sJ |jrJ t|dd}|d| t|}|  d| v sJ |jrJ |  d| v s&J |jr,J | | }t  }|j|dddd t|}|  d
}t	j
t|d |  W d    n	1 s^w   Y  t	j
t|d d|v  W d    n	1 szw   Y  t	j
t|d t| W d    n	1 sw   Y  t	j
t|d |d  W d    n	1 sw   Y  t	j
t|d |d W d    n	1 sw   Y  t	j
t|d |d W d    n	1 sw   Y  t	j
t|d |d	| W d    n	1 s
w   Y  t	j
t|d |d| W d    n	1 s(w   Y  t	j
t|d |d	 W d    n	1 sEw   Y  t	j
t|d |d	 W d    n	1 sbw   Y  t	j
t|d |d W d    n	1 sw   Y  d}t	j
t|d |j W d    d S 1 sw   Y  d S )Nr   r   r   )r   r   CLOSEDzTThe file [\S]* is already opened\.  Please close it before reopening in write mode\.r   r   r9   z[\S]* file is not open!df3z''HDFStore' object has no attribute 'df')r   r;   r!   r	   infor2   r1   r   !_table_file_open_policy_is_strictr   r   r"   r<   r   keysr3   r{   getput
get_storerremoveAttributeErrorr   )r%   r$   r'   r   r(   store1r&   store2r*   r*   r+   test_multiple_open_close?  s   















$r   c               	   C   s~   t d0} t| }t|t| ksJ W d    n1 s w   Y  W d    d S W d    d S 1 s8w   Y  d S )Nzfoo.h5)r   r:   r	   r=   fspathstr)r'   r(   r*   r*   r+   test_fspath  s   
"r   )2r=   numpyrc   r   pandas.compatr   r   r   r   pandas.errorsr   r   pandasr   r	   r
   r   r   r   pandas.tests.io.pytables.commonr   r   r   	pandas.ior   pandas.io.pytablesr   mark
single_cpu
pytestmarkparametrizer,   r-   r5   r?   rB   rR   rU   rw   rN   all_complibsfilterwarningsskipifrm   r}   rx   objectr   r   r   r*   r*   r*   r+   <module>   s^    
0	4'

