o
    Ch<                     @   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g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/d0dgd1d2 Z0d3d4 Z1d5d6 Z2d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   sZ  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}|r%|j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.str)r   nprandomdefault_rngstandard_normalr
   listobjectr   pytestraisesOSErrorr	   _handler   to_hdf
ValueErrorr   r&   astypetmassert_frame_equal)	
setup_pathtmp_pathr   using_infer_stringr+   msgpathstoreresult rE   }/var/www/html/myvaluetrips/my_value_trip_new/venv/lib/python3.10/site-packages/pandas/tests/io/pytables/test_file_handling.py	test_mode&   sX   
$rG   c                 C   s~   t tjddttdtdtddddd	}| | }|j	|d
dd t
|d
}| }|r7|jd|_t|| d S )Nr   r   r   r   r    r   r!   r"   r%   r+   r   r,   r.   )r   r/   r0   r1   r2   r
   r3   r4   r   r9   r   copyr&   r;   r<   r=   )r?   r>   r@   r+   rB   rD   expectedrE   rE   rF   test_default_mode]   s   
rJ   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   r5   r6   r   opencloseis_openlen_mode)r?   r>   rB   rC   rA   rE   rE   rF   test_reopen_handlem   sN   













rT   c                 C   s   t | b}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| | }|rL|jd|_|jd|_t |d | t |d | |  W d    n1 sjw   Y  tj|rwJ d S )N皙?x      r   r   r   c                 S      g | ]}d | qS zi-rE   .0irE   rE   rF   
<listcomp>       z"test_open_args.<locals>.<listcomp>rX   r%   r   	H5FD_COREr   )r   driverdriver_core_backing_storer+   df2r.   )r<   ensure_cleanr   r/   rM   reshaper
   r3   r4   ranger	   appendrH   r'   r;   r&   r=   rP   osrB   exists)r>   r@   rB   r+   rC   rI   rE   rE   rF   test_open_args   s(   
rj   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   rf   flush)r>   rC   rE   rE   rF   
test_flush   s
   
"rn   c           	      C   st  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
}|
 }|rE|jd|_|jd|_t|| tj|dd"}|jdddD ]}|jjdksdJ |jjdkslJ qZW d    n1 sww   Y  | | }|j|d
dd t	|d
}|
 }|r|jd|_|j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
}|
 }|r|jd|_|jd|_t|| tj|dd&}|jdddD ]}|jjdksJ |jjd u s%J qW d    d S 1 s3w   Y  d S )NrU   rV   rW   r   r   c                 S   rY   rZ   rE   r[   rE   rE   rF   r^      r_   z2test_complibs_default_settings.<locals>.<listcomp>rX   r%   r+   	   )r-   	complevelr.   r   r*   /dfLeafwhere	classnamezlib)r-   complibr   )r-   )r   r/   rM   re   r
   r3   r4   rf   r9   r   rH   r'   r;   r&   r<   r=   r   	open_file
walk_nodesfiltersrp   rw   )	r?   r>   r@   r+   tmpfilerD   rI   h5filenoderE   rE   rF   test_complibs_default_settings   s^   


$r~   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 )NrU   rV   rW   r   r   c                 S   rY   rZ   rE   r[   rE   rE   rF   r^     r_   z;test_complibs_default_settings_override.<locals>.<listcomp>rX   r%   dfcro   blosc)rp   rw   r+   r   r*   rq   rr   rs   r   z/dfc)r   r/   rM   re   r
   r3   r4   rf   r	   rg   rP   r   rx   ry   rz   rp   rw   )r?   r>   r+   r{   rC   r|   r}   rE   rE   rF   '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   rW   r   rX   r%   lzozlzo not availablebzip2zbzip2 not available_z.h5)r-   rw   rp   r   r*   /rr   rs   )r   r   applymarkerr5   markxfailr   r/   onesr3   rM   r;   str_r   which_lib_versionskipr9   r   r<   r=   rx   ry   rz   rp   rw   )
r?   r   r   requestr+   r{   gnamerD   h5tabler}   rE   rE   rF   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!   rk   rK   )r   r   )   r!   r+   ascii)encodingr   )r&   z	columns=A)r   r   rf   r/   nanlocr   rg   r<   r=   reindexselectr   )r>   rC   r+   rI   rD   rE   rE   rF   test_encodingB  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 rE   )
isinstancebytesdecode)r\   xencrE   rF   r^   g  s   $ z'test_latin_encoding.<locals>.<listcomp>r   table)r-   formatr   nan_repr   )r   r9   r   cat
categoriesremove_categoriesreplacer/   r   r<   assert_series_equal)
r?   r>   r   r   r   r-   serrC   retrs_nanrE   r   rF   test_latin_encodingS  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 )NrU   rV   rW   r   r   c                 S   rY   rZ   rE   r[   rE   rE   rF   r^     r_   z,test_multiple_open_close.<locals>.<listcomp>rX   r%   r+   r   r   )r-   r   r   CLOSEDzTThe file [\S]* is already opened\.  Please close it before reopening in write mode\.r(   r*   rc   c                 S   rY   rZ   rE   r[   rE   rE   rF   r^     r_   z[\S]* file is not open!df3z''HDFStore' object has no attribute 'df')r   r/   rM   re   r
   r3   r4   rf   r9   r	   inforQ   rP   r   !_table_file_open_policy_is_strictr5   r6   r:   rg   r   keysrR   r   getput
get_storerremoveAttributeErrorr+   )r?   r>   rB   r+   rC   store1rA   store2rE   rE   rF   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<   rd   r	   rh   fspathr.   )rB   rC   rE   rE   rF   test_fspath  s   
"r   )3rh   numpyr/   r5   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parametrizerG   rJ   rT   rj   rn   r~   r   rf   rz   all_complibsfilterwarningsskipifr   r   r   r   r   r   rE   rE   rE   rF   <module>   s`    $	

687
#
 