o
    ŀg 9                     @   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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/d0e0gd1d2 Z1d3d4 Z2d5d6 Z3dS )7    N)PY311is_ci_environmentis_platform_linuxis_platform_little_endian)ClosedFileErrorPossibleDataLossError)	DataFrameHDFStoreIndexSeries_testing
date_rangeread_hdf)_maybe_removeensure_clean_storetables)pytables)Termmode)rr+awc              	   C   sF  t tjddttdtdtddddd	}d
}||  }|dv rAt	j
t|d t||d W d    n1 s;w   Y  nt||d}|jj|ksPJ W d    n1 sZw   Y  ||  }|dv rt	j
t|d t||d}W d    n1 sw   Y  W d    n1 sw   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 rd}t	j
t|d t|d|d W d    d S 1 sw   Y  d S t|d|d}t|| d S )N   
      ABCDdtype
2000-01-01r   Bperiodsfreqcolumnsindexz[\S]* does not exist)r   r   matchr   dfkeyr   r   )r   zNmode w is not allowed while performing a read. Allowed modes are r, r\+ and a.)r   nprandomdefault_rngstandard_normalr
   listobjectr   pytestraisesOSErrorr	   _handler   to_hdf
ValueErrorr   tmassert_frame_equal)
setup_pathtmp_pathr   r+   msgpathstoreresult rB   _/var/www/html/myenv/lib/python3.10/site-packages/pandas/tests/io/pytables/test_file_handling.py	test_mode&   sT   
$rD   c                 C   sd   t tjddttdtdtddddd	}| | }|j	|d
dd t
|d
}t|| d S )Nr   r   r   r   r    r   r!   r"   r%   r+   r   r,   )r   r.   r/   r0   r1   r
   r2   r3   r   r8   r   r:   r;   )r=   r<   r+   r?   rA   rB   rB   rC   test_default_mode[   s   
rE   c                 C   s  | | }t |dd}ttjdtjdtdddd|d< d}tjt|d	 |	d
 W d    n1 s5w   Y  |
  |jrCJ |	d
 |jsMJ t|dksUJ |
  |jr^J t |dd}ttjdtjdtdddd|d< |	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 |jsJ t|dksJ |jdksJ |
  |jrJ d S )Nr   r*   r   r   z
2020-01-01)r#   r'   zKRe-opening the file \[[\S]*\] with mode \[a\] will delete the current file!r(   r   r   r      )r	   r   r.   arangefloat64r   r4   r5   r   opencloseis_openlen_mode)r=   r<   r?   r@   r>   rB   rB   rC   test_reopen_handleh   sN   













rO   c                 C   s   t | N}tdtdd ttdtdtdd t	dD tdd	}t
|d
ddd}||d< |d| t |d | t |d | |  W d    n1 sVw   Y  tj|rcJ d S )N皙?x      r   r   r   c                 S      g | ]}d | qS zi-rB   .0irB   rB   rC   
<listcomp>       z"test_open_args.<locals>.<listcomp>rS   r%   r   	H5FD_COREr   )r   driverdriver_core_backing_storer+   df2)r:   ensure_cleanr   r.   rH   reshaper
   r2   r3   ranger	   appendr;   rK   osr?   exists)r<   r?   r+   r@   rB   rB   rC   test_open_args   s    
re   c                 C   sR   t | }ttd|d< |  |jdd W d    d S 1 s"w   Y  d S )N   r   T)fsync)r   r   ra   flush)r<   r@   rB   rB   rC   
test_flush   s
   
"ri   c                 C   s  t dtdd ttdtdtdd tdD tdd	}| | }|j|d
dd t	|d
}t
|| tj|dd"}|jdddD ]}|jjdksPJ |jjdksXJ qFW d    n1 scw   Y  | | }|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  | | }|j|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    d S 1 sw   Y  d S )NrP   rQ   rR   r   r   c                 S   rT   rU   rB   rV   rB   rB   rC   rY      rZ   z2test_complibs_default_settings.<locals>.<listcomp>rS   r%   r+   	   )r-   	complevelr   r*   /dfLeafwhere	classnamezlib)r-   complibr   )r-   )r   r.   rH   r`   r
   r2   r3   ra   r8   r   r:   r;   r   	open_file
walk_nodesfiltersrk   rr   )r=   r<   r+   tmpfilerA   h5filenoderB   rB   rC   test_complibs_default_settings   sF   


"ry   c                 C   s  t dtdd ttdtdtdd tdD tdd	}| | }t|}|j	d
|ddd |	d| |
  tj|dd=}|jdddD ]}|jjdksTJ |jjd u s\J qJ|jdddD ]}|jjdksnJ |jjdksvJ qdW d    d S 1 sw   Y  d S )NrP   rQ   rR   r   r   c                 S   rT   rU   rB   rV   rB   rB   rC   rY      rZ   z;test_complibs_default_settings_override.<locals>.<listcomp>rS   r%   dfcrj   blosc)rk   rr   r+   r   r*   rl   rm   rn   r   z/dfc)r   r.   rH   r`   r
   r2   r3   ra   r	   rb   rK   r   rs   rt   ru   rk   rr   )r=   r<   r+   rv   r@   rw   rx   rB   rB   rC   'test_complibs_default_settings_override   s&   "r|   lvlr   libz!ignore:object name is not a validzSegfaulting in a CI environmentreasonc           
      C   sT  t rt r|dkr|dkr|tjjd| dd ttdt	dt
dtjd	}td
s8td tdsBtd | | d| d }| d| }|j||||d t||}t|| tj|dd2}|jd| ddD ]}	|	jj|ksJ |dkr|	jjd u sJ qx|	jj|ksJ qxW d    d S 1 sw   Y  d S )Nblosc2r   z
Fails for z on Linux and PY > 3.11r   rR   r   rS   r%   lzozlzo not availablebzip2zbzip2 not available_z.h5)r-   rr   rk   r   r*   /rm   rn   )r   r   applymarkerr4   markxfailr   r.   onesr2   rH   astypestr_r   which_lib_versionskipr8   r   r:   r;   rs   rt   ru   rk   rr   )
r=   r}   r~   requestr+   rv   gnamerA   h5tablerx   rB   rB   rC   test_complibs   s0   




"r   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)Ar!   rf   rF   )r   r   )   r!   r+   ascii)encodingr   )r&   z	columns=A)r   r   ra   r.   nanlocr   rb   r:   r;   reindexselectr   )r<   r@   r+   expectedrA   rB   rB   rC   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   r   categoryc           
         s   d d}d} fdd|D }t ||d}| | }|j||d |d t||}|d	kr=||jjv r:|j|g}	n
|}	n||tj}	t	
|	| d S )
Nzlatin-1 datac                    s$   g | ]}t |tr| n|qS rB   )
isinstancebytesdecode)rW   xencrB   rC   rY   Q  s   $ z'test_latin_encoding.<locals>.<listcomp>r   table)r-   formatr   nan_repr   )r   r8   r   cat
categoriesremove_categoriesreplacer.   r   r:   assert_series_equal)
r=   r<   r   r   r   r-   serr@   retrs_nanrB   r   rC   test_latin_encoding=  s   
r   c                 C   s  | | }t dtdd ttdtdtdd tdD tdd	}|j|d
ddd t	|}d|
 vs9J |js>J |  d|
 v sJJ |jrOJ | | }tjr|t	|}d}tjt|d t	| W d    n1 srw   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rJ |  d|
 v sJ |jrJ t	|dd}|d
| t	|}|  d|
 v s2J |jr8J |  d|
 v sEJ |jrKJ | | }t dtdd ttdtdtdd tdD tdd	}|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 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 scw   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  d}tjt|d |j W d    d S 1 sw   Y  d S )NrP   rQ   rR   r   r   c                 S   rT   rU   rB   rV   rB   rB   rC   rY   m  rZ   z,test_multiple_open_close.<locals>.<listcomp>rS   r%   r+   r   r   )r-   r   r   CLOSEDzTThe file [\S]* is already opened\.  Please close it before reopening in write mode\.r(   r*   r^   c                 S   rT   rU   rB   rV   rB   rB   rC   rY     rZ   z[\S]* file is not open!df3z''HDFStore' object has no attribute 'df')r   r.   rH   r`   r
   r2   r3   ra   r8   r	   inforL   rK   r   !_table_file_open_policy_is_strictr4   r5   r9   rb   r   keysrM   r   getput
get_storerremoveAttributeErrorr+   )r=   r<   r?   r+   r@   store1r>   store2rB   rB   rC   test_multiple_open_closee  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	   rc   fspathstr)r?   r@   rB   rB   rC   test_fspath  s   
"r   )4rc   numpyr.   r4   pandas.compatr   r   r   r   pandas.errorsr   r   pandasr   r	   r
   r   r   r:   r   r   pandas.tests.io.pytables.commonr   r   r   	pandas.ior   pandas.io.pytablesr   r   
single_cpu
pytestmarkparametrizerD   rE   rO   re   ri   ry   r|   ra   ru   all_complibsfilterwarningsskipifr   r   r   r3   r   r   r   rB   rB   rB   rC   <module>   s`    $	
48+
#
 