o
    թZh                  	   @   s   d dl mZmZ d dlZd dlm  mZ d dlZ	d dl
mZ dd Zdd Zejejjdd Zd	d
 Zdd Zdd Zdd Zejddejdeddgejdddgejdddgdd Zdd ZdS )    )BytesIOStringIONc              	   C   s   t jg dg dgddgg dd}t E}|j|| d t|t j|| d t|| }| 	d}t
|}W d    n1 sEw   Y  t|t | W d    d S 1 s^w   Y  d S )	N)g~Ϛ?g9DܜJ?g>D)?)g.4i(@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decoder   )r   dfpathfhresultdata r   \/var/www/html/lang_env/lib/python3.10/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jsonr   z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 td}t +}|j|| d t|d}|jd|d W d    n1 s*w   Y  W d    n1 s9w   Y  t jd|j d| |d}t	|| d S )	N {"a": [1, 2, 3], "b": [4, 5, 6]}r   rbztest-1)KeyZBodyzs3://z/test-1)r   Zstorage_options)
r   r   r   r   r   r   openZ
put_objectnamer   )r   Zs3_public_bucketZs3sor   r   froundtripped_dfr   r   r   test_with_s3_url*   s   
r+   c                 C   sj   t  '}ttd}|j|dd| d tj|d| d}t || W d    d S 1 s.w   Y  d S )Nr$   recordsTZorientlinesr   )r.   r   )r   r   r   r   r   r   r   )r   r   r   r*   r   r   r   test_lines_with_compression=   s   
"r/   c              	   C   s   t  =}ttd}|j|dd| d tj|dd| d}t|}W d    n1 s.w   Y  t || W d    d S 1 sDw   Y  d S )Nz,{"a": ["foo", "bar", "baz"], "b": [4, 5, 6]}r,   Tr-      )r.   	chunksizer   )r   r   r   r   r   r   concatr   )r   r   r   resr*   r   r   r   test_chunksize_with_compressionE   s   
"r4   c               	   C   s   t td} t 1}d}tjt|d | j|dd W d    n1 s'w   Y  W d    d S W d    d S 1 s?w   Y  d S )Nr$   *Unrecognized compression type: unsupportedmatchunsupportedr   )	r   r   r   r   r   pytestraises
ValueErrorr   )r   r   msgr   r   r   'test_write_unsupported_compression_typeQ   s   
"r=   c               	   C   s~   t  1} d}tjt|d tj| dd W d    n1 s w   Y  W d    d S W d    d S 1 s8w   Y  d S )Nr5   r6   r8   r   )r   r   r9   r:   r;   r   r   )r   r<   r   r   r   &test_read_unsupported_compression_typeY   s   
"r>   infer_stringFTZpyarrow)Zmarksto_infer
read_inferc              	   C   s   t d|X | }d}||| 7 }t ddgi}|rdn|}|r#dn|}	t|}
|j|
|d t j|
|	d}t|| W d    n1 sIw   Y  W d    d S W d    d S 1 saw   Y  d S )Nzfuture.infer_stringztest.r   r0   Zinferr   )r   Zoption_contextr   r   r   r   r   r   )Zcompression_onlyrA   r@   Zcompression_to_extensionr?   r   filenamer   Zto_compressionZread_compressionr   r   r   r   r   test_to_json_compression`   s   "rC   c                 C   sJ   t ddgi}t }|j|| d W d    d S 1 sw   Y  d S )Nr   r0   r   )r   r   r   r   )r   expectedbufferr   r   r   test_to_json_compression_mode{   s   "rF   )r   r   r   r9   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasr   Zpandas._testingZ_testingr   r   r#   Zskip_if_not_us_localemarkZ
single_cpur+   r/   r4   r=   r>   ZparametrizeparamZ
skip_if_norC   rF   r   r   r   r   <module>   s*    
