o
    Û­j  ã                   @   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   úd/var/www/html/CropPilot/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_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>    ÿ



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