o
    ҷh[                     @   sX  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ejdg ddd Zeejdddgdd Zedd Zedd Zeejdddgdd Zeejdg ddd  Zed!d" Zeejd#g d$d%d& Zed'd( Zd)d* Zed+d, ZdS )-zZ
Tests compressed data parsing functionality for all
of the parsers defined in parsers.py
    N)Path)	DataFramepyarrow_skipTF)paramsc                 C   s   | j S )N)param)request r   Z/var/www/html/venv/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   second_filer   r   zMultiple filesmatchr   )	r    r!   r"   r#   r$   pytestraises
ValueErrorr   )	r   r   r   r   r   r&   inner_file_namesr'   	file_namer   r   r	   test_zip_error_multiple_files5   s   
"r2   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   

"r4   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   r3   r&   r   r   r   r	   test_zip_error_invalid_zipQ   s   

"r6   filenamez
test.{ext}c              	   C   s   |\}}}|}	||	 }
|d u r|n|j |
d}|r&|r&| jtjjdd tj|dB}t|	|| |r8dn|	}|rYt	|d}|j
||d}W d    n1 sSw   Y  n|j
||d}t|| W d    d S 1 sqw   Y  d S )N)extz9Cannot deduce compression from buffer of compressed data.)reason)r7   r   r   r   )formatnode
add_markerr-   markxfailr    r!   write_to_compressedr   r   r%   )r   r   compression_onlyr
   r7   compression_to_extensionr   r   r   compress_typer8   r&   r   r   r(   r   r   r	   test_compression[   s*   

"rC   r8   )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)	index_colparse_datesr   r   utf-8encoding. )r   r   r    r%   )	r   r   r
   r8   r   kwargsr   r   r(   r   r   r	   test_infer_compression   s   
rN   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   	)rJ   r   sep	Venezuela   Hugo Chávez FríasHenrique Capriles R.CountryTwitter)r:   osr&   joinr   r   r    r%   )	r   csv_dir_path	utf_valueencoding_fmtr   rJ   r&   r(   r   r   r   r	   test_compression_utf_encoding   s   
r]   invalid_compression)sfarkbz3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   r^   r   compress_kwargsmsgr   r   r	   test_invalid_compression   s   
"rd   c                 C   s4   | }t j|d}||}t|jdgksJ d S )Nztar_csv.tar.gza)rX   r&   rY   r   listcolumns)r   rZ   r   r&   dfr   r   r	   test_compression_tar_archive   s   
ri   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 )Nre   r      ztest.csvztest.csv.zipFindexrH   rI   r   )	r   r    r!   to_csvr   
write_text	read_textr%   r   )r   r   rh   path_csvpath_zipr   r   r	   !test_ignore_compression_extension   s   "rr   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 )NrR   rS   rT   rU   ztest.tar.gzFrk   zr:gzr   r   r   )
r   r    r!   rm   r%   r   tarfiler   extractfilegetnames)r   r   r   tar_pathtarr(   r   r   r	   test_writes_tar_gz   s$   "rx   )__doc__rX   pathlibr   rs   r"   r-   pandasr   pandas._testing_testingr    r=   usefixturesskip_pyarrowfixturer
   r   parametrizer)   r2   r4   r6   rC   rN   r]   rd   ri   rr   rx   r   r   r   r	   <module>   sN    




	"


