o
    5cW4                     @   sn  d dl Z d dlZd dlZd dl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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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(d)e'gd*d+ Z(d,d- Z)d.d/ Z*dS )0    N)is_platform_little_endian)ClosedFileErrorPossibleDataLossError)	DataFrameHDFStoreSeries_testingread_hdf)_maybe_removeensure_clean_pathensure_clean_storetables)pytables)Termmode)rr+awc              
   C   st  t  }d}t| <}|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 sIw   Y  t| X}|dv rtjt|d t||d}W d    n1 spw   Y  W d    n1 sw   Y  nt||d}|jj|ksJ W d    n1 sw   Y  W d    n1 sw   Y  t| 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 rd}tjt|d t|d|d W d    n	1 sw   Y  nt|d|d}t || W d    d S W d    d S 1 s3w   Y  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makeTimeDataFramer   pytestraisesOSErrorr   _handler   closeto_hdf
ValueErrorr	   assert_frame_equal)
setup_pathr   r   msgpathstoreresult r(   a/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/io/pytables/test_file_handling.py	test_mode    s\   



$ r*   c                 C   s\   t  }t| }|j|ddd t|d}t || W d    d S 1 s'w   Y  d S )Nr   r   r   )r   r   r   r    r	   r"   )r#   r   r%   r'   r(   r(   r)   test_default_modeS   s   

"r+   c              	   C   s  t | }t|dd}t |d< d}tjt|d |d W d    n1 s*w   Y  |  |j	r8J |d |j	sBJ t
|dksJJ |  |j	rSJ t|dd}t |d< |d |j	siJ t
|dksqJ |jdksxJ |  |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 W d    d S 1 sw   Y  d S )	Nr   r   zKRe-opening the file \[[\S]*\] with mode \[a\] will delete the current file!r   r   r   r      )r   r   r   makeTimeSeriesr   r   r   openr   is_openlen_mode)r#   r%   r&   r$   r(   r(   r)   test_reopen_handle\   sH   












"r2   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"   r   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
   
"r?   c              	   C   s(  t  }t| L}|j|ddd t|d}t || tj|dd"}|jdddD ]}|j	j
dks5J |j	jd	ks=J q+W d    n1 sHw   Y  W d    n1 sWw   Y  t| L}|j|dd	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    n1 sw   Y  W d    n1 sw   Y  t| J}||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    n1 sw   Y  W d    n	1 sw   Y  t| z}t|}|jd|ddd |d| |  tj|ddB}|jdddD ]}|j	j
dksAJ |j	jd u sJJ q6|jdddD ]}|j	j
dks^J |j	jdksgJ qSW d    n1 stw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   	   )	complevelr   r   z/dfLeafwhere	classnamezlib)complibr   dfcblosc)rA   rG   z/dfc)r   r8   r   r    r	   r"   r   	open_file
walk_nodesfiltersrA   rG   r   r9   r   )r#   r   tmpfiler'   h5filenoder&   r(   r(   r)   test_complibs_default_settings   sl   






 $rP   c              	      s"  t  }tjj}tds|d tds|d tdd  fdd|D }|D ]b\}}t| R}d}|j	||||d t
||}t || tj|d	d
}	|	jd| ddD ]}
|
jj|kseJ |dkrr|
jjd u sqJ q[|
jj|kszJ q[|	  W d    n1 sw   Y  q,d S )Nlzobzip2r   
   c                    s   g | ]} D ]}||fqqS r(   r(   ).0liblvl
all_levelsr(   r)   
<listcomp>   s    z!test_complibs.<locals>.<listcomp>foo)rG   rA   r   r   /rB   rC   )r   r8   r   rL   all_complibswhich_lib_versionremoveranger   r    r	   r"   rJ   rK   rA   rG   r   )r#   r   r\   	all_testsrU   rV   rM   gnamer'   h5tablerO   r(   rW   r)   test_complibs   s0   







rc   z$reason platform is not little endian)reasonc                 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 )NrZ   bar)AB   )index)   rf   )   rg   r   ascii)encodingrf   )columnsz	columns=A)r   r   r_   npnanlocr
   r9   r   r"   reindexselectr   )r#   r&   r   expectedr'   r(   r(   r)   test_encoding
  s   

"ru   val)   E, 17       a   b   c)rw   ry   rz   r{   )s   EE, 17rx   ry   rz   r{   )rw      ry   rz   r{   )rx   ry   rz   r{   )r|   ry   rz   r{   )   Arx   ry   rz   r{   rx   rz   r{   r}   dtypecategoryc           	         s   d d}d} fdd|D }t ||d}t| }|j||d |d t||}W d    n1 s3w   Y  ||tj}t|| d S )	Nzlatin-1 datac                    s$   g | ]}t |tr| n|qS r(   )
isinstancebytesdecode)rT   xencr(   r)   rY   0  s   $ z'test_latin_encoding.<locals>.<listcomp>)r~   table)formatrm   nan_rep)	r   r   r    r	   replacero   rp   r   assert_series_equal)	r#   r~   rv   r   keyserr&   retrs_nanr(   r   r)   test_latin_encoding  s   
r   c              	   C   s  t | 7}t }|j|dddd t|}d| vsJ |js#J |  d| v s/J |jr4J W d    n1 s>w   Y  t | }tj	rqt|}d}t
jt|d t| W d    n1 sgw   Y  |  nt|}t|}d| vsJ d| vsJ |jsJ |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 sJ |jr	J t|dd}|d| t|}|  d| v s&J |jr,J |  d| v s9J |jr?J W d    n	1 sJw   Y  t | }t }|j|dddd t|}|  d
}t
jt|d |  W d    n	1 sw   Y  t
jt|d d|v  W d    n	1 sw   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 sw   Y  t
jt|d |d	| W d    n	1 s/w   Y  t
jt|d |d| W d    n	1 sMw   Y  t
jt|d |d	 W d    n	1 sjw   Y  t
jt|d |d	 W d    n	1 sw   Y  t
jt|d |d W d    n	1 sw   Y  d}t
jt|d |j W d    n1 sw   Y  W d    d S 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   r6   z[\S]* file is not open!df3z''HDFStore' object has no attribute 'df')r   r   r8   r    r   infor/   r   r   !_table_file_open_policy_is_strictr   r   r!   r9   r   keysr0   rs   getput
get_storerr^   AttributeErrorr   )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   r7   r   r:   fspathstr)r%   r&   r(   r(   r)   test_fspath  s   
"r   )+r:   numpyro   r   pandas.compatr   pandas.errorsr   r   pandasr   r   r   r   r   r	   pandas.tests.io.pytables.commonr
   r   r   r   	pandas.ior   pandas.io.pytablesr   mark
single_cpu
pytestmarkparametrizer*   r+   r2   r<   r?   rP   rc   skipifru   rp   objectr   r   r   r(   r(   r(   r)   <module>   sP    
2	56%
 