o
    Ti[                     @   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)	DataFrameZpyarrow_skipTF)paramsc                 C   s   | j S )N)param)request r   g/var/www/html/evchargy.com/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   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_files5   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_zipQ   s   

"r3   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)r4   r   r
   r   )formatnodeZ
add_markerr+   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_compression[   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   
rD   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   
rO   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   rP   r   Zcompress_kwargsmsgr   r   r   test_invalid_compression   s   
"rR   c                 C   s4   | }t j|d}||}t|jdgksJ d S )Nztar_csv.tar.gza)rL   r%   rM   r   listcolumns)r   rN   r   r%   dfr   r   r   test_compression_tar_archive   s   
rW   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 )NrS   r      ztest.csvztest.csv.zipFindexr>   r?   r   )	r   r   r    to_csvr   
write_text	read_textr$   r   )r   r   rV   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 )NrH   rI   rJ   rK   ztest.tar.gzFrY   zr:gzr   r   r   )
r   r   r    r[   r$   r   tarfiler   extractfilegetnames)r   r   r   Ztar_pathtarr'   r   r   r   test_writes_tar_gz   s$   "rc   )__doc__rL   pathlibr   r_   r!   r+   Zpandasr   Zpandas._testingZ_testingr   r9   ZusefixturesZskip_pyarrowZfixturer	   r   Zparametrizer(   r/   r1   r3   r;   rD   rO   rR   rW   r^   rc   r   r   r   r   <module>   sN    




	"


