a
    Pf 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 o&e o&e 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   sP  t tjddttdtdtddddd	}d
}||  }|dv rt	j
t|d t||d W d    q1 sv0    Y  n<t||d }|jj|ksJ W d    n1 s0    Y  ||  }|dv r0t	j
t|d> t||d}W d    n1 s0    Y  W d    n1 s$0    Y  n@t||d"}|jj|ksPJ W d    n1 sf0    Y  ||  }|dv rt	j
t|d  |j|d|d W d    n1 s0    Y  |j|ddd n|j|d|d |dv r2d}t	j
t|d t|d|d W d    n1 s&0    Y  n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	   Z_handler   to_hdf
ValueErrorr   tmassert_frame_equal)
setup_pathtmp_pathr   r+   msgpathstoreresult rA   d/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/io/pytables/test_file_handling.py	test_mode&   s@    ,.
B2
0
0rC   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   r7   r   r9   r:   )r<   r;   r+   r>   r@   rA   rA   rB   test_default_mode[   s    
rD   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 sj0    Y  |
  |jrJ |	d
 |jsJ t|dksJ |
  |jrJ t |dd}ttjdtjdtdddd|d< |	d |jsJ t|dksJ |jdks$J |
  |jr8J |	d |jsNJ t|dks`J |jdkspJ |
  |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.   arangeZfloat64r   r4   r5   r   opencloseis_openlen_mode)r<   r;   r>   r?   r=   rA   rA   rB   test_reopen_handleh   sL    
(







rM   c                 C   s   t | }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 s0    Y  tj|rJ d S )N皙?x      r   r   r   c                 S   s   g | ]}d | qS zi-rA   .0irA   rA   rB   
<listcomp>       z"test_open_args.<locals>.<listcomp>rQ   r%   r   Z	H5FD_COREr   )r   ZdriverZdriver_core_backing_storer+   df2)r9   ensure_cleanr   r.   rG   reshaper
   r2   r3   ranger	   appendr:   rI   osr>   exists)r;   r>   r+   r?   rA   rA   rB   test_open_args   s    &r_   c                 C   sP   t | 4}ttd|d< |  |jdd W d    n1 sB0    Y  d S )N   r   T)fsync)r   r   r[   flush)r;   r?   rA   rA   rB   
test_flush   s    
rc   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D}|jdddD ]$}|jjdksJ |jjdksJ qW d    n1 s0    Y  | | }|j|d
dd t	|d
}t
|| tj|ddJ}|jdddD ]*}|jjdks2J |jjd u sJ qW d    n1 s^0    Y  | | }|j|d
d t	|d
}t
|| tj|ddJ}|jdddD ]*}|jjdksJ |jjd u sJ qW d    n1 s0    Y  d S )NrN   rO   rP   r   r   c                 S   s   g | ]}d | qS rR   rA   rS   rA   rA   rB   rV      rW   z2test_complibs_default_settings.<locals>.<listcomp>rQ   r%   r+   	   )r-   	complevelr   r*   /dfLeafwhere	classnamezlib)r-   complibr   )r-   )r   r.   rG   rZ   r
   r2   r3   r[   r7   r   r9   r:   r   	open_file
walk_nodesfiltersre   rl   )r<   r;   r+   tmpfiler@   h5filenoderA   rA   rB   test_complibs_default_settings   s:    
0
6
rs   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x}|jdddD ]$}|jjdksJ |jjd u sJ q|jdddD ]$}|jjdksJ |jjdksJ qW d    n1 s0    Y  d S )NrN   rO   rP   r   r   c                 S   s   g | ]}d | qS rR   rA   rS   rA   rA   rB   rV      rW   z;test_complibs_default_settings_override.<locals>.<listcomp>rQ   r%   Zdfcrd   Zblosc)re   rl   r+   r   r*   rf   rg   rh   r   z/dfc)r   r.   rG   rZ   r
   r2   r3   r[   r	   r\   rI   r   rm   rn   ro   re   rl   )r<   r;   r+   rp   r?   rq   rr   rA   rA   rB   'test_complibs_default_settings_override   s"    rt   lvlr   libz!ignore:object name is not a validzSegfaulting in a CI environmentreasonc           
      C   sZ  t r6t r6|dkr6|dkr6|tjjd| dd ttdt	dt
dtjd	}td
sptd tdstd | | d| d }| d| }|j||||d t||}t|| tj|ddh}|jd| ddD ]D}	|	jj|ksJ |dkr$|	jjd u s4J q|	jj|ksJ qW d    n1 sL0    Y  d S )NZblosc2r   z
Fails for z on Linux and PY > 3.11rw   rP   r   rQ   r%   Zlzozlzo not availablebzip2zbzip2 not available_z.h5)r-   rl   re   r   r*   /rg   rh   )r   r   Zapplymarkerr4   markZxfailr   r.   Zonesr2   rG   ZastypeZstr_r   Zwhich_lib_versionskipr7   r   r9   r:   rm   rn   ro   re   rl   )
r<   ru   rv   requestr+   rp   gnamer@   Zh5tablerr   rA   rA   rB   test_complibs   s,    





r   z$reason platform is not little endianc                 C   s   t | }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    n1 s0    Y  d S )NZfoobar)Ar!   r`   rE   )r   r   )   r!   r+   ascii)encodingr   )r&   z	columns=A)r   r   r[   r.   nanlocr   r\   r9   r:   Zreindexselectr   )r;   r?   r+   expectedr@   rA   rA   rB   test_encoding,  s    

r   val)   E, 17rW      a   b   c)r   r   r   r   )s   EE, 17rW   r   r   r   )r      r   r   r   )rW   r   r   r   )r   r   r   r   )   ArW   r   r   r   rW   r   r   r   r   categoryc           
         s   d d}d} fdd|D }t ||d}| | }|j||d |d t||}|d	krz||jjv rt|j|g}	q|}	n||tj}	t	
|	| d S )
Nzlatin-1 datac                    s$   g | ]}t |tr| n|qS rA   )
isinstancebytesdecode)rT   xencrA   rB   rV   Q  rW   z'test_latin_encoding.<locals>.<listcomp>r   table)r-   formatr   nan_repr   )r   r7   r   cat
categoriesZremove_categoriesreplacer.   r   r9   Zassert_series_equal)
r<   r;   r   r   r   r-   Zserr?   ZretrZs_nanrA   r   rB   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srJ |js|J |  d|
 v sJ |jrJ | | }tjrt	|}d}tjt|d t	| W d    n1 s0    Y  |  nt	|}t	|}d|
 vsJ d|
 vs.J |js:J |jsFJ |  d|
 v s`J |jrlJ d|
 vs~J |jsJ |  d|
 v sJ d|
 v sJ |jrJ |jrJ t	|dd}|d
| t	|}|d| |  d|
 v sJ |jr J |  d|
 v s:J |jrFJ t	|dd}|d
| t	|}|  d|
 v sJ |jrJ |  d|
 v sJ |jrJ | | }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 sN0    Y  tjt|d d
|v  W d    n1 s0    Y  tjt|d t| W d    n1 s0    Y  tjt|d |d
  W d    n1 s0    Y  tjt|d |d
 W d    n1 s00    Y  tjt|d |d
 W d    n1 sj0    Y  tjt|d |d| W d    n1 s0    Y  tjt|d |d| W d    n1 s0    Y  tjt|d |d W d    n1 s0    Y  tjt|d |d W d    n1 sV0    Y  tjt|d |d
 W d    n1 s0    Y  d}tjt|d |j W d    n1 s0    Y  d S )NrN   rO   rP   r   r   c                 S   s   g | ]}d | qS rR   rA   rS   rA   rA   rB   rV   m  rW   z,test_multiple_open_close.<locals>.<listcomp>rQ   r%   r+   r   r   )r-   r   r   ZCLOSEDzTThe file [\S]* is already opened\.  Please close it before reopening in write mode\.r(   r*   rX   c                 S   s   g | ]}d | qS rR   rA   rS   rA   rA   rB   rV     rW   z[\S]* file is not open!Zdf3z''HDFStore' object has no attribute 'df')r   r.   rG   rZ   r
   r2   r3   r[   r7   r	   inforJ   rI   r   Z!_table_file_open_policy_is_strictr4   r5   r8   r\   r   keysrK   r   getputZ
get_storerremoveAttributeErrorr+   )r<   r;   r>   r+   r?   Zstore1r=   Zstore2rA   rA   rB   test_multiple_open_closee  s    

&((((**,,***r   c               	   C   sl   t dN} t| &}t|t| ks,J W d    n1 s@0    Y  W d    n1 s^0    Y  d S )Nzfoo.h5)r9   rY   r	   r]   fspathstr)r>   r?   rA   rA   rB   test_fspath  s    
r   )4r]   numpyr.   r4   Zpandas.compatr   r   r   r   Zpandas.errorsr   r   Zpandasr   r	   r
   r   r   r9   r   r   Zpandas.tests.io.pytables.commonr   r   r   Z	pandas.ior   Zpandas.io.pytablesr   r|   Z
single_cpuZ
pytestmarkZparametrizerC   rD   rM   r_   rc   rs   rt   r[   ro   Zall_complibsfilterwarningsZskipifr   r   r   r3   r   r   r   rA   rA   rA   rB   <module>   s^   $	
48+
#
 