a
    nÝEb<  ã                   @   sÂ   d dl mZ d dlZd dlm  mZ d dlZd dl	m
Z d dlm   mZ dd„ Zdd„ Zejdd„ ƒZd	d
„ Zdd„ Zdd„ Zdd„ Zej dddg¡ej dddg¡dd„ ƒƒZdd„ ZdS )é    )ÚBytesIONc              	   C   sÀ   t jg d¢g d¢gddgg d¢d�}t ¡ �€}|j|| d� t |t j|| d�¡ t || ¡�}| ¡  	d¡}W d   ƒ n1 s‚0    Y  t |t  |¡¡ W d   ƒ n1 s²0    Y  d S )	N)g¿¶~úÏš¿?g9DÜœJÎ?g>éD‚)â?)gÜ.4×i¤(@g33333þ@gÍÌÌÌ¤œAÚAÚB)ÚXÚYÚZ)ÚindexÚcolumns©ÚcompressionÚutf8)
ÚpdÚ	DataFrameÚtmÚensure_cleanÚto_jsonÚassert_frame_equalÚ	read_jsonZdecompress_fileÚreadÚdecode)r   ÚdfÚpathÚfhÚresult© r   úe/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/io/json/test_compression.pyÚtest_compression_roundtrip   s    ý
,r   c                 C   sD   | ddddƒ}t  |¡}| ddddƒ}t j|dd�}t ||¡ d S )NÚioÚjsonÚdataztsframe_v012.jsonztsframe_v012.json.zipÚzipr
   )r   r   r   r   )ÚdatapathZuncompressed_pathZuncompressed_dfZcompressed_pathZcompressed_dfr   r   r   Útest_read_zipped_json   s
    
r"   c              	   C   sž   t  d¡}t ¡ �\}|j|| d� t|dƒ�$}| d¡jd|d� W d   ƒ n1 sV0    Y  W d   ƒ n1 st0    Y  t jd| |d�}t ||¡ d S )	Nú {"a": [1, 2, 3], "b": [4, 5, 6]}r
   Úrbzpandas-testztest-1)ÚKeyZBodyzs3://pandas-test/test-1)r   Zstorage_options)	r   r   r   r   r   ÚopenZBucketZ
put_objectr   )r   Zs3_resourceZs3sor   r   ÚfÚroundtripped_dfr   r   r   Útest_with_s3_url(   s    

Pÿr)   c                 C   sd   t  ¡ �H}t d¡}|j|dd| d� tj|d| d�}t  ||¡ W d   ƒ n1 sV0    Y  d S )Nr#   ÚrecordsT©ZorientÚlinesr   )r,   r   )r   r   r   r   r   r   )r   r   r   r(   r   r   r   Útest_lines_with_compression9   s
    

r-   c              	   C   s�   t  ¡ �t}t d¡}|j|dd| d� tj|dd| d��}t |¡}W d   ƒ n1 sX0    Y  t  ||¡ W d   ƒ n1 s‚0    Y  d S )Nz,{"a": ["foo", "bar", "baz"], "b": [4, 5, 6]}r*   Tr+   é   )r,   Ú	chunksizer   )r   r   r   r   r   Úconcatr   )r   r   r   Úresr(   r   r   r   Útest_chunksize_with_compressionB   s    

ÿ(r2   c               	   C   sv   t  d¡} t ¡ �P}d}tjt|d�� | j|dd� W d   ƒ n1 sJ0    Y  W d   ƒ n1 sh0    Y  d S )Nr#   ú*Unrecognized compression type: unsupported©ÚmatchÚunsupportedr
   )r   r   r   r   ÚpytestÚraisesÚ
ValueErrorr   )r   r   Úmsgr   r   r   Ú'test_write_unsupported_compression_typeO   s
    

r;   c               	   C   sl   t  ¡ �P} d}tjt|d�� tj| dd� W d   ƒ n1 s@0    Y  W d   ƒ n1 s^0    Y  d S )Nr3   r4   r6   r
   )r   r   r7   r8   r9   r   r   )r   r:   r   r   r   Ú&test_read_unsupported_compression_typeW   s    
r<   Úto_inferTFÚ
read_inferc           
      C   s”   | }d}|t j| 7 }t ddgi¡}|r.dn|}|r:dn|}t |¡�8}|j||d� tj||d�}	t |	|¡ W d   ƒ n1 s†0    Y  d S )Nztest.r   r.   Zinferr
   )	ÚicomZ_compression_to_extensionr   r   r   r   r   r   r   )
Zcompression_onlyr>   r=   r   Úfilenamer   Zto_compressionZread_compressionr   r   r   r   r   Útest_to_json_compression^   s    rA   c                 C   sH   t  ddgi¡}tƒ �}|j|| d� W d   ƒ n1 s:0    Y  d S )Nr   r.   r
   )r   r   r   r   )r   ÚexpectedÚbufferr   r   r   Útest_to_json_compression_modes   s    rD   )r   r   r7   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandasr   Zpandas._testingZ_testingr   Zpandas.io.commonÚcommonr?   r   r"   Zskip_if_not_us_localer)   r-   r2   r;   r<   ÚmarkZparametrizerA   rD   r   r   r   r   Ú<module>   s"   

	