a
    é´«j  ã                   @   s0  d 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mZ ddl	m
Z ej d¡Zejddgd�d	d
„ ƒZejdd„ ƒZej dg d¢¡dd„ ƒZej dddg¡dd„ ƒZdd„ Zdd„ Zej dddg¡dd„ ƒZej dg d¢¡dd „ ƒZd!d"„ Zej d#g d$¢¡d%d&„ ƒZd'd(„ Zd)d*„ Zd+d,„ ZdS )-zZ
Tests compressed data parsing functionality for all
of the parsers defined in parsers.py
é    N)ÚPath)Ú	DataFramez=ignore:Passing a BlockManager to DataFrame:DeprecationWarningTF)Úparamsc                 C   s   | j S )N)Úparam)Úrequest© r   úf/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/io/parser/test_compression.pyÚbuffer   s    r	   c                 C   sJ   | }t |dƒ�}| ¡ }W d   ƒ n1 s,0    Y  | |¡}|||fS )NÚrb)ÚopenÚreadÚread_csv)Úall_parsersÚcsv1ÚparserÚfÚdataÚexpectedr   r   r   Úparser_and_data   s
    &
r   Úcompression)ÚzipÚinferÚzip2c           	   	   C   sÎ   | \}}}t  d¡�¦}tj|dd��}| d|¡ W d   ƒ n1 sF0    Y  |dkr’t|dƒ�}|j|dd�}W d   ƒ q 1 s†0    Y  n|j||d�}t  ||¡ W d   ƒ n1 sÀ0    Y  d S )	Nútest_file.zipÚw©ÚmodeÚ	test_filer   r
   r   ©r   )ÚtmÚensure_cleanÚzipfileÚZipFileÚwritestrr   r   Úassert_frame_equal)	r   r   r   r   r   ÚpathÚtmpr   Úresultr   r   r   Útest_zip%   s    
*.r(   r   r   c           	   	   C   sÀ   | \}}}t  d¡�˜}ddg}tj|dd��&}|D ]}| ||¡ q2W d   ƒ n1 sX0    Y  tjtdd�� |j||d� W d   ƒ n1 s”0    Y  W d   ƒ n1 s²0    Y  d S )	Nzcombined_zip.zipr   Zsecond_filer   r   zMultiple files©Úmatchr   )	r   r    r!   r"   r#   ÚpytestÚraisesÚ
ValueErrorr   )	r   r   r   r   r   r%   Zinner_file_namesr&   Ú	file_namer   r   r   Útest_zip_error_multiple_files6   s    
,r/   c              	   C   s    | \}}}t  ¡ �z}tj|dd�� W d   ƒ n1 s80    Y  tjtdd�� |j|dd� W d   ƒ n1 st0    Y  W d   ƒ n1 s’0    Y  d S )Nr   r   z
Zero filesr)   r   r   )r   r    r!   r"   r+   r,   r-   r   )r   r   Ú_r%   r   r   r   Útest_zip_error_no_filesE   s    

r1   c              
   C   sž   | \}}}t  ¡ �x}t|dƒ�N}tjtjdd�� |j|dd� W d   ƒ n1 sT0    Y  W d   ƒ n1 sr0    Y  W d   ƒ n1 s�0    Y  d S )Nr
   zFile is not a zip filer)   r   r   )r   r    r   r+   r,   r!   Ú
BadZipFiler   )r   r   r0   r%   r   r   r   r   Útest_zip_error_invalid_zipP   s
    

r3   Úfilenamez
test.{ext}c              	   C   sì   |\}}}|}	||	 }
|d u r"|n
|j |
d�}|rJ|rJ|  tjjdd�¡ tj|d��‚}t |	||¡ |rndn|	}|r°t|dƒ�}|j	||d�}W d   ƒ q¾1 s¤0    Y  n|j	||d�}t 
||¡ W d   ƒ n1 sÞ0    Y  d S )N)Úextz9Cannot deduce compression from buffer of compressed data.)Úreason)r4   r   r
   r   )ÚformatZapplymarkerr+   ÚmarkZxfailr   r    Zwrite_to_compressedr   r   r$   )r   r   Zcompression_onlyr	   r4   Zcompression_to_extensionr   r   r   Úcompress_typer5   r%   r   r   r'   r   r   r   Útest_compressionY   s$    	
ÿÿ.r:   r5   )NÚgzÚbz2c           	      C   s¢   | }dddœ}|j |fi |¤Ž}d|d< |rlt|dd��"}|j |fi |¤Ž}W d   ƒ q’1 s`0    Y  n&|rxd| nd	}|j || fi |¤Ž}t ||¡ d S )
Nr   T)Z	index_colZparse_datesr   r   úutf-8©ÚencodingÚ.Ú )r   r   r   r$   )	r   r   r	   r5   r   Úkwargsr   r   r'   r   r   r   Útest_infer_compression|   s    
2rC   c           	      C   s\   | }|  |¡}tj |d|› d�¡}|j||ddd�}tddgddgd	œƒ}t ||¡ d S )
NÚutfz_ex_small.zipr   ú	)r?   r   ÚsepÚ	Venezuelaõ   Hugo ChÃ¡vez FrÃ­asúHenrique Capriles R.©ZCountryZTwitter)r7   Úosr%   Újoinr   r   r   r$   )	r   Úcsv_dir_pathZ	utf_valueZencoding_fmtr   r?   r%   r'   r   r   r   r   Útest_compression_utf_encoding�   s    
þÿrN   Úinvalid_compression)ZsfarkZbz3Zzipperc                 C   sX   | }d|i}d|› �}t jt|d��  |jdi |¤Ž W d   ƒ n1 sJ0    Y  d S )Nr   zUnrecognized compression type: r)   r   )r   )r+   r,   r-   r   )r   rO   r   Zcompress_kwargsÚmsgr   r   r   Útest_invalid_compression    s
    
rQ   c                 C   s4   | }t j |d¡}| |¡}t|jƒdgks0J ‚d S )Nztar_csv.tar.gzÚa)rK   r%   rL   r   ÚlistÚcolumns)r   rM   r   r%   Údfr   r   r   Útest_compression_tar_archive«   s    
rV   c              	   C   s®   | }t dddgiƒ}t d¡�|}t d¡�R}|j|dd� t|ƒjt|ƒjdd	�dd	� t |j|d d
�|¡ W d   ƒ n1 s‚0    Y  W d   ƒ n1 s 0    Y  d S )NrR   r   é   ztest.csvztest.csv.zipF©Úindexr=   r>   r   )	r   r   r    Úto_csvr   Ú
write_textÚ	read_textr$   r   )r   r   rU   Zpath_csvZpath_zipr   r   r   Ú!test_ignore_compression_extension²   s    ÿr]   c              	   C   s¼   | }t ddgddgdœƒ}t d¡�„}|j|dd� t | |¡|¡ t |d¡�8}|j| | 	¡ d	 ¡d
d�}t ||¡ W d   ƒ n1 s�0    Y  W d   ƒ n1 s®0    Y  d S )NrG   rH   rI   rJ   ztest.tar.gzFrX   zr:gzr   r   r   )
r   r   r    rZ   r$   r   Útarfiler   ÚextractfileÚgetnames)r   r   r   Ztar_pathÚtarr'   r   r   r   Útest_writes_tar_gzÀ   s    þÿÿrb   )Ú__doc__rK   Úpathlibr   r^   r!   r+   Zpandasr   Zpandas._testingZ_testingr   r8   ÚfilterwarningsZ
pytestmarkZfixturer	   r   Zparametrizer(   r/   r1   r3   r:   rC   rN   rQ   rV   r]   rb   r   r   r   r   Ú<module>   s<   ÿ




	
"


