o
    ôT·jÔ<  ã                   @   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 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/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 r•t	j
t|d�� t||d��}W d   ƒ n1 s€w   Y  W d   ƒ n1 s�w   Y  nt||d��}|jj|ks¤J ‚W d   ƒ n1 s®w   Y  ||  }|dv rãt	j
t|d�� |j|d|d� W d   ƒ n1 sÕw   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   ún/home/dinkstrade/pdmp-scanner/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s€J ‚t|ƒdksˆJ ‚|jdks�J ‚| 
¡  |jr˜J ‚| 	d¡ |js¢J ‚t|ƒdksªJ ‚|jdks±J ‚| 
¡  |jrºJ ‚| 	d¡ |jsÄJ ‚t|ƒdksÌJ ‚|jdksÓJ ‚| 
¡  |jrÜJ ‚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sÀJ ‚|jjd u sÈJ ‚q¶W d   ƒ n1 sÓw   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 s‚w   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s‚J ‚|dkr�|	jjd u sŽJ ‚qx|	jj|ks—J ‚qxW d   ƒ d S 1 s£w   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¦   )ó   Aøür£   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  | ¡  nÏt	|ƒ}t	|ƒ}d| 
¡ vsŒJ ‚d| 
¡ vs”J ‚|js™J ‚|jsžJ ‚| ¡  d| 
¡ v sªJ ‚|jr¯J ‚d| 
¡ vs·J ‚|js¼J ‚| ¡  d| 
¡ v sÈJ ‚d| 
¡ v sÐJ ‚|jrÕJ ‚|jrÚJ ‚t	|dd�}| d
|¡ t	|ƒ}| d|¡ | ¡  d| 
¡ v süJ ‚|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 �s™w   Y  tjt|d�� d
|v  W d   ƒ n	1 �sµw   Y  tjt|d�� t|ƒ 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 �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 �s€w   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  d}tjt|d�� |j W d   ƒ d S 1 �sØw   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
þ#ÿ
÷þ 