a
    Pf                     @   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/ai-form-bot/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rt|d}|j|dd}W d    q1 s0    Y  n|j||d}t || W d    n1 s0    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 s0    Y  W d    n1 s0    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 s0    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 s0    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|	}|rt|d}|j	||d}W d    q1 s0    Y  n|j	||d}t
|| W d    n1 s0    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    q1 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 s0    Y  W d    n1 s0    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 s0    Y  W d    n1 s0    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<   


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

