o
    թZh                     @   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   ^/var/www/html/lang_env/lib/python3.10/site-packages/pandas/tests/io/parser/test_compression.pybuffer   s   r	   c                 C   sJ   | }t |d}| }W d    n1 sw   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}tj|dd}|d| W d    n1 s#w   Y  |dkrIt|d}|j|dd}W d    n1 sCw   Y  n|j||d}t || W d    d S 1 saw   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U}ddg}tj|dd}|D ]}||| qW d    n1 s,w   Y  tjtdd |j||d W d    n1 sJw   Y  W d    d S W d    d S 1 sbw   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  F}tj|dd W d    n1 sw   Y  tjtdd |j|dd W d    n1 s:w   Y  W d    d S W d    d S 1 sRw   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  E}t|d'}tjtjdd |j|dd W d    n1 s*w   Y  W d    n1 s9w   Y  W d    d S W d    d S 1 sQw   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}|r%|r%| tjjdd tj|dB}t|	|| |r7dn|	}|rXt|d}|j	||d}W d    n1 sRw   Y  n|j	||d}t
|| W d    d S 1 spw   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< |r6t|dd}|j |fi |}W d    n1 s0w   Y  n|r<d| 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   
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   sZ   | }d|i}d| }t jt|d |jdi | W d    d S 1 s&w   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sJ 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G}td)}|j|dd t|jt|jdd	dd	 t|j|d d
| W d    n1 sAw   Y  W d    d S W d    d S 1 sYw   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K}|j|dd t||| t|d}|j||	 d	 d
d}t|| W d    n1 sHw   Y  W d    d S W d    d S 1 s`w   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>    



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