a
    é´«jã/  ã                	   @   sl  d dl Z d dlZd dlZd dlmZ d dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlmZ d dlZd dlmZ d dlm  mZ ej dejdg d¢g d¢g g d¢d	�ejdg d¢ d
d�g¡ej dg d¢¡dd„ ƒƒZej dejdg d¢g d¢g g d¢d	�ejdg d¢ d
d�g¡ej dddg¡dd„ ƒƒZej ddddiejfdi ejfdi ej fg¡dd„ ƒZ!ej dddddœejddifdi ejddifdi ej i fg¡d d!„ ƒZ"d"d#„ Z#d$d%„ Z$d&d'„ Z%d(d)„ Z&ejj'd*d+„ ƒZ(ejj'd,d-„ ƒZ)ej dejdg d¢g d¢g g d¢d	�ejdg d¢ d
d�g¡ej dg d¢¡d.d/„ ƒƒZ*ej dejdg d¢g d¢g g d¢d	�ejdg d¢ d
d�g¡ej dg d¢¡d0d1„ ƒƒZ+ej dejdg d¢g d¢g g d¢d	�ejdg d¢ d
d�g¡ej dg d¢¡d2d3„ ƒƒZ,ej d4d5e
j-fd6ej.fg¡d7d8„ ƒZ/d9d:„ Z0d;d<„ Z1d=d>„ Z2d?d@„ Z3dS )Aé    N)ÚPath)Úis_platform_windowsÚobjéd   ©g¿¶~úÏš¿?g9DÜœJÎ?g>éD‚)â?©gÜ.4×i¤(@g33333þ@gÍÌÌÌ¤œA©ÚXÚYÚZ©Úcolumnsr	   ©ÚnameÚmethod)Ú	to_pickleÚto_jsonÚto_csvc                 C   s†   |dkrdddœ}t  ¡ �X}t| |ƒ||d� tj |¡}t| |ƒ|d d� tj |¡}||ksdJ ‚W d   ƒ n1 sx0    Y  d S )NÚtarúw:gz©r   Úmode©Úcompression©ÚtmÚensure_cleanÚgetattrÚosÚpathÚgetsize)r   r   Úcompression_onlyr   Úcompressed_sizeÚuncompressed_size© r$   ú_/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/io/test_compression.pyÚtest_compression_size   s    

r&   r   r   c              	   C   s  t  ¡ �t}tj||dkrdnd|d��,}t| |ƒ|jƒ |jjrDJ ‚W d   ƒ n1 sX0    Y  tj 	|¡}W d   ƒ n1 s‚0    Y  t  ¡ �t}tj|dd d��,}t| |ƒ|jƒ |jjrÄJ ‚W d   ƒ n1 sØ0    Y  tj 	|¡}||ksúJ ‚W d   ƒ n1 �s0    Y  d S )Nr   r   Úwr   )
r   r   ÚicomÚ
get_handler   ÚhandleÚclosedr   r   r    )r   r   r!   r   Úhandlesr"   r#   r$   r$   r%   Útest_compression_size_fh.   s     
ý**
*r-   z'write_method, write_kwargs, read_methodÚindexFr   c           	      C   s†   t jg d¢g d¢gg d¢d�}|| }t d| ¡�2}t|| ƒ|fi |¤Ž |||d�}W d   ƒ n1 sl0    Y  t ||¡ d S )N)g      ð?r   éüÿÿÿ)g333333@é   é   r   r   Ú
compressedr   )ÚpdÚ	DataFramer   r   r   Úassert_frame_equal)	Úwrite_methodÚwrite_kwargsÚread_methodr!   Úcompression_to_extensionÚinputÚ	extensionr   Úoutputr$   r$   r%   Ú,test_dataframe_compression_defaults_to_inferK   s    *r=   z1write_method,write_kwargs,read_method,read_kwargsT)r.   ÚheaderÚsqueezeÚtypZseriesc                 C   s¸   t jg d¢dd�}|| }t d| ¡�l}t|| ƒ|fi |¤Ž d|v rr| ¡ }	|	d= ||fd|i|	¤Ž d¡}
n||fd|i|¤Ž}
W d   ƒ n1 sš0    Y  tj|
|dd	� d S )
N)r   r0   éþÿÿÿé
   r	   r   r2   r?   r   r   F)Zcheck_names)r3   ÚSeriesr   r   r   Úcopyr?   Zassert_series_equal)r6   r7   r8   Zread_kwargsr!   r9   r:   r;   r   Úkwargsr<   r$   r$   r%   Ú)test_series_compression_defaults_to_infer_   s    ÿ2rF   c              
   C   s¸   t jdg d¢g d¢g g d¢d�}t ¡ �z}tj|d| d��J}t t¡�  |j|j	| d� W d   ƒ n1 sn0    Y  W d   ƒ n1 sŒ0    Y  W d   ƒ n1 sª0    Y  d S )Nr   r   r   r   r   r'   r   )
r3   r4   r   r   r(   r)   Zassert_produces_warningÚRuntimeWarningr   r*   )r!   Údfr   r,   r$   r$   r%   Útest_compression_warning   s    þ
rI   c              	   C   s  t jdt d¡ d¡ t  tdƒ¡t  dd„ tdƒD ƒ¡d�}t 	¡ �n}t
|d	d
��*}|j|d	| d� | d¡ W d  ƒ n1 s„0    Y  t |t j|d| d�¡ W d  ƒ n1 sº0    Y  t ¡ }|j|d	| d� | d¡ t |t j|d| d�¡ dS )z?
    Binary file handles support compression.

    GH22555
    çš™™™™™ñ?éx   ©é   é   ÚABCDc                 S   s   g | ]}d |› �‘qS ©zi-r$   ©Ú.0Úir$   r$   r%   Ú
<listcomp>•   ó    z+test_compression_binary.<locals>.<listcomp>rM   ©r   r.   Úwb)r   )r   r   r   N)Z	index_colr   )r3   r4   ÚnpÚarangeÚreshapeÚIndexÚlistÚranger   r   Úopenr   Úseekr5   Úread_csvÚioÚBytesIO)r!   rH   r   Úfiler$   r$   r%   Útest_compression_binaryŒ   s$    ý
(ÿ"
ÿrd   c                  C   sº   t jdt d¡ d¡ t  tdƒ¡t  dd„ tdƒD ƒ¡d�} d	d
dœ}t 	¡ �V}t
|ƒ}| j||d� t d¡ | ¡ }| j||d� || ¡ ks˜J ‚W d  ƒ n1 s¬0    Y  dS )zš
    Gzip should create reproducible archives with mtime.

    Note: Archives created with different filenames will still be different!

    GH 28103
    rJ   rK   rL   rO   c                 S   s   g | ]}d |› �‘qS rP   r$   rQ   r$   r$   r%   rT   µ   rU   z7test_gzip_reproducibility_file_name.<locals>.<listcomp>rM   rV   Úgzipé   ©r   Úmtimer   çš™™™™™¹?N)r3   r4   rX   rY   rZ   r[   r\   r]   r   r   r   r   ÚtimeÚsleepÚ
read_bytes)rH   Úcompression_optionsr   r<   r$   r$   r%   Ú#test_gzip_reproducibility_file_nameª   s    ý


rn   c                  C   sž   t jdt d¡ d¡ t  tdƒ¡t  dd„ tdƒD ƒ¡d�} d	d
dœ}t 	¡ }| j
||dd� | ¡ }t d¡ t 	¡ }| j
||dd� || ¡ ksšJ ‚dS )zL
    Gzip should create reproducible archives with mtime.

    GH 28103
    rJ   rK   rL   rO   c                 S   s   g | ]}d |› �‘qS rP   r$   rQ   r$   r$   r%   rT   Ì   rU   z9test_gzip_reproducibility_file_object.<locals>.<listcomp>rM   rV   re   rf   rg   rW   )r   r   ri   N)r3   r4   rX   rY   rZ   r[   r\   r]   ra   rb   r   Úgetvaluerj   rk   )rH   rm   Úbufferr<   r$   r$   r%   Ú%test_gzip_reproducibility_file_objectÃ   s    ý

rq   c                  C   s&   t  d¡} tjtjd| gtjd� dS )z6Tests if import pandas works when lzma is not present.zT        import sys
        sys.modules['lzma'] = None
        import pandas
        ú-c©ÚstderrN©ÚtextwrapÚdedentÚ
subprocessÚcheck_outputÚsysÚ
executableÚPIPE©Úcoder$   r$   r%   Útest_with_missing_lzmaÚ   s    ÿr   c                  C   s&   t  d¡} tjtjd| gtjd� dS )z\Tests if RuntimeError is hit when calling lzma without
    having the module available.
    zÿ
        import sys
        import pytest
        sys.modules['lzma'] = None
        import pandas as pd
        df = pd.DataFrame()
        with pytest.raises(RuntimeError, match='lzma module'):
            df.to_csv('foo.csv', compression='xz')
        rr   rs   Nru   r}   r$   r$   r%   Útest_with_missing_lzma_runtimeè   s    ÿr€   c                 C   sz   t  ¡ �^}t| |ƒ|dd� tj |¡}t| |ƒ|dddœd� tj |¡}||k sXJ ‚W d   ƒ n1 sl0    Y  d S )Nre   r   rf   ©r   Úcompresslevelr   ©r   r   r   Zcompressed_size_defaultZcompressed_size_fastr$   r$   r%   Útest_gzip_compression_levelû   s    
r„   c                 C   s�   t  ¡ �t}t| |ƒ|dd� tj |¡}t| |ƒ|dddœd� tj |¡}||k sXJ ‚|dkrntj|dd� W d   ƒ n1 s‚0    Y  d S )NÚxzr   rf   )r   Úpresetr   )r   r   r   r   r   r    r3   r`   rƒ   r$   r$   r%   Útest_xz_compression_level_read  s    
r‡   c                 C   sD   t  ¡ �(}t| |ƒ|dddœd� W d  ƒ n1 s60    Y  dS )z´GH33196 bzip needs file size > 100k to show a size difference between
    compression levels, so here we just check if the call works when
    compression is passed as a dict.
    Úbz2rf   r�   r   N)r   r   r   )r   r   r   r$   r$   r%   Útest_bzip_compression_level&  s    
r‰   zsuffix,archiveú.zipz.tarc              	   C   s’   t j| d��r}||dƒ� W d   ƒ n1 s.0    Y  tjtdd�� t |¡ W d   ƒ n1 sf0    Y  W d   ƒ n1 s„0    Y  d S )N©Úfilenamer'   zZero files found©Úmatch)r   r   ÚpytestÚraisesÚ
ValueErrorr3   r`   )ÚsuffixÚarchiver   r$   r$   r%   Útest_empty_archive_zip:  s
    r”   c               	   C   s¬   t jdd��Œ} t | d¡�(}| dd¡ | dd¡ W d   ƒ n1 sH0    Y  tjtdd�� t 	| ¡ W d   ƒ n1 s€0    Y  W d   ƒ n1 sž0    Y  d S )	NrŠ   r‹   r'   úa.csvzfoo,barúb.csvz Multiple files found in ZIP filer�   )
r   r   ÚzipfileÚZipFileÚwritestrr�   r�   r‘   r3   r`   )r   rc   r$   r$   r%   Útest_ambiguous_archive_zipI  s    *rš   c                 C   s  | d }t |ddd��}| d¡ W d   ƒ n1 s60    Y  | d }t |ddd��}| d¡ W d   ƒ n1 sv0    Y  | d }t |d¡�(}| |d¡ | |d¡ W d   ƒ n1 sÂ0    Y  tjtdd	�� t 	|¡ W d   ƒ n1 sú0    Y  d S )
Nr•   r'   zutf-8)Úencodingzfoo,bar
r–   zarchive.tarz#Multiple files found in TAR archiver�   )
r^   ÚwriteÚtarfileÚTarFileÚaddr�   r�   r‘   r3   r`   )Ztmp_pathZcsvAPathÚaZcsvBPathÚbZtarpathr   r$   r$   r%   Útest_ambiguous_archive_tarR  s    ((*r¢   c               
   C   sü   t jdd��Ü} tjddggddgd�j| dd	d
œdd� t | ¡�ˆ}tj|d��\}| 	¡ }t
|ƒdksjJ ‚| |d ¡ ¡  d¡}tƒ rŽd}nd}||ksžJ ‚W d   ƒ n1 s²0    Y  W d   ƒ n1 sÐ0    Y  W d   ƒ n1 sî0    Y  d S )Nz.foor‹   Ú1Ú2ZfooÚbarr   r   r   r   F)r   r.   )Úfileobjrf   r   Úutf8zfoo,bar
1,2
zfoo,bar
1,2
)r   r   r3   r4   r   re   r^   r�   rž   Ú
getmembersÚlenÚextractfileÚreadÚdecoder   )rc   Zuncompressedr“   ÚmembersÚcontentÚexpectedr$   r$   r%   Ú!test_tar_gz_to_different_filenamec  s     þýr°   c               	   C   sZ   t  ¡ �>} tj| dd�� W d   ƒ n1 s.0    Y  W d   ƒ n1 sL0    Y  d S )Nr'   )r¦   r   )ra   rb   r(   Z_BytesTarFile)rp   r$   r$   r%   Útest_tar_no_error_on_closew  s    
r±   )4re   ra   r   Úpathlibr   rx   rz   r�   rv   rj   r—   ÚnumpyrX   r�   Zpandas.compatr   Zpandasr3   Zpandas._testingZ_testingr   Zpandas.io.commonÚcommonr(   ÚmarkZparametrizer4   rC   r&   r-   r`   Ú	read_jsonZread_pickler=   rF   rI   rd   rn   rq   Z
single_cpur   r€   r„   r‡   r‰   r˜   rž   r”   rš   r¢   r°   r±   r$   r$   r$   r%   Ú<module>   sÒ   þûþ
þûþ


ýþ
ýþ


þûþ

þûþ
þûþ
	þþ
	