a
    nÝEbÌ  ã                   @   sJ  d Z ddlZddlmZ ddlZddlZddlmZ ddlm	Z
 ddlm  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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/home/ja/django-apps/lartica_env/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r’t|dƒ�}|j|dd�}W d   ƒ q 1 s†0    Y  n|j||d�}t  ||¡ W d   ƒ n1 sÀ0    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 s”0    Y  W d   ƒ n1 s²0    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 s’0    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_filesF   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 s�0    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_zipR   s
    

r3   Úfilenamez
test.{ext}c              	   C   sä   | \}}}|}t j| }|d u r$|n
|j|d�}|rB|rBt d¡ tj|d��‚}	t ||	|¡ |rfdn|}
|r¨t|	dƒ�}|j	||
d�}W d   ƒ q¶1 sœ0    Y  n|j	|	|
d�}t 
||¡ W d   ƒ n1 sÖ0    Y  d S )N)Úextz9Cannot deduce compression from buffer of compressed data.)r4   r   r
   r   )ÚicomZ_compression_to_extensionÚformatr+   Úskipr   r    Zwrite_to_compressedr   r   r$   )r   Zcompression_onlyr	   r4   r   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< |rht|ƒ�"}|j |fi |¤Ž}W d   ƒ qŽ1 s\0    Y  n&|rtd| nd}|j || fi |¤Ž}t ||¡ d S )Nr   T)Z	index_colZparse_datesr   r   Ú.Ú )r   r   r   r$   )	r   r   r	   r5   r   Úkwargsr   r   r'   r   r   r   Útest_infer_compressionu   s    

2r@   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   ú	)Úencodingr   ÚsepZ	Venezuelau   Hugo ChÃ¡vez FrÃ­aszHenrique Capriles R.)ZCountryZTwitter)r7   Úosr%   Újoinr   r   r   r$   )	r   Zcsv_dir_pathZ	utf_valueZencoding_fmtr   rC   r%   r'   r   r   r   r   Útest_compression_utf_encoding‰   s    
þÿrG   Ú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   rH   r   Zcompress_kwargsÚmsgr   r   r   Útest_invalid_compression›   s
    
rJ   c              	   C   s¦   | }t dddgiƒ}t d¡�t}t d¡�J}|j|dd� t|ƒ t|ƒ ¡ ¡ t |j|d d�|¡ W d   ƒ n1 sz0    Y  W d   ƒ n1 s˜0    Y  d S )	NÚar   é   ztest.csvztest.csv.zipF)Úindexr   )	r   r   r    Zto_csvr   Ú
write_textÚ	read_textr$   r   )r   r   ZdfZpath_csvZpath_zipr   r   r   Ú!test_ignore_compression_extension§   s    rP   )Ú__doc__rE   Úpathlibr   r!   r+   Zpandasr   Zpandas._testingZ_testingr   Zpandas.io.commonÚioÚcommonr6   ÚmarkZusefixturesZskip_pyarrowZfixturer	   r   Zparametrizer(   r/   r1   r3   r:   r@   rG   rJ   rP   r   r   r   r   Ú<module>   sD   




	

