o
    _~#g                     @   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/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/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   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_files6   s   
"r1   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   

"r3   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   r2   r%   r   r   r   r   test_zip_error_invalid_zipP   s   

"r5   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)r6   r   r
   r   )formatapplymarkerr,   markxfailr   r    write_to_compressedr   r   r$   )r   r   compression_onlyr	   r6   compression_to_extensionr   r   r   compress_typer7   r%   r   r   r'   r   r   r   test_compressionY   s*   
	"rA   r7   )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	   r7   r   kwargsr   r   r'   r   r   r   test_infer_compression|   s   
rL   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   	)rH   r   sep	Venezuela   Hugo Chávez FríasHenrique Capriles R.CountryTwitter)r9   osr%   joinr   r   r   r$   )	r   csv_dir_path	utf_valueencoding_fmtr   rH   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   
"rb   c                 C   s4   | }t j|d}||}t|jdgksJ d S )Nztar_csv.tar.gza)rV   r%   rW   r   listcolumns)r   rX   r   r%   dfr   r   r   test_compression_tar_archive   s   
rg   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 )Nrc   r      ztest.csvztest.csv.zipFindexrF   rG   r   )	r   r   r    to_csvr   
write_text	read_textr$   r   )r   r   rf   path_csvpath_zipr   r   r   !test_ignore_compression_extension   s   "rp   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 )NrP   rQ   rR   rS   ztest.tar.gzFri   zr:gzr   r   r   )
r   r   r    rk   r$   r   tarfiler   extractfilegetnames)r   r   r   tar_pathtarr'   r   r   r   test_writes_tar_gz   s$   "rv   )__doc__rV   pathlibr   rq   r!   r,   pandasr   pandas._testing_testingr   r;   filterwarnings
pytestmarkfixturer	   r   parametrizer(   r1   r3   r5   rA   rL   r[   rb   rg   rp   rv   r   r   r   r   <module>   s>    



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