a
    Pf                     @   s  d Z ddlmZ ddlZddlmZ ddlZddlm  m	Z
 ddlZddlmZ ejjejjejdgZdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zejdeej feej!fedd fej"eeej#dde
$ddej"eeej#d de
$d e
$d!e
j%gdeej&feej'feej feej!fg	ejd"dd#d$id$d%d&gd'd( Z(ejd)dd gd*d+ Z)dS ),z9
Tests for the pandas custom headers in http(s) requests
    )partialN)BytesIOz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningc              	   C   sj   t  P}tj|dd}||  W d    n1 s60    Y  | W  d    S 1 s\0    Y  d S )Nw)fileobjmode)r   gzipGzipFilewritegetvalue)Zresponse_bytesbioZzipper r   Z/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/io/test_http_headers.py
gzip_bytes   s    (r   c                 C   s   | j dddS NF)indexutf-8)Zto_csvencodedfr   r   r   csv_responder   s    r   c                 C   s   t t| S N)r   r   r   r   r   r   gz_csv_responder#   s    r   c                 C   s   |   dS )Nr   )to_jsonr   r   r   r   r   json_responder'   s    r   c                 C   s   t t| S r   )r   r   r   r   r   r   gz_json_responder+   s    r   c                 C   s   | j dddS r   )Zto_htmlr   r   r   r   r   html_responder/   s    r   c                 C   s   | j dddS )NFpyarrow)r   engine)
to_parquetr   r   r   r   parquetpyarrow_reponder3   s    r   c                 C   sR   dd l }| jdddd d |dd}| W  d    S 1 sD0    Y  d S )Nr   z'memory://fastparquet_user_agent.parquetFfastparquet)r   r   compressionrb)fsspecr   openread)r   r#   fr   r   r   parquetfastparquet_responder7   s    r'   c                 C   s<   t  "}| | | W  d    S 1 s.0    Y  d S r   )r   Z	to_pickler
   r   r   r   r   r   pickle_respnderJ   s    
r)   c                 C   s@   t  &}| j|dd | W  d    S 1 s20    Y  d S )NF)Zwrite_index)r   Zto_statar
   r(   r   r   r   stata_responderP   s    r*   zresponder, read_methodc                  O   s   t j| i |d S )Nr   )pdZ	read_html)argskwargsr   r   r   <lambda>]       r.   r   )r   )Zmarksr    r#   storage_options
User-AgentZfoobarr1   ZAuthc                 C   s   t ddgi}g d}d| jv rBddi}|d u r8|}qF||O }nd }t||rZ| ng }|j| ||d ||j|d}t	|| t
|jd	 j}	|D ]*}
|	|
}|r|
|v r|||
 ksJ q|	rJ d S )
Nab)zAccept-EncodingHost
Connectionr1   gzzContent-Encodingr   )contentheaders)r0   r   )r+   	DataFrame__name__setunionkeysZserve_contenturltmZassert_frame_equaldictrequestsr:   pop)Z	responderZread_methodZ
httpserverr0   expecteddefault_headersextraZexpected_headersresultZrequest_headersheaderexpr   r   r   test_request_headersV   s(    '


rK   r   c                 C   sj   ddd}t |  tddgi}d}t jt|d  |jd|| d	 W d    n1 s\0    Y  d S )
NZcustomZother_customr3   Zcolumn_nameZcolumn_valuezxstorage_options passed with file object or non-fsspec file path|storage_options passed with buffer, or non-supported URL)matchz/tmp/junk.parquet)r0   r   )pytestZimportorskipr+   r;   Zraises
ValueErrorr   )r   r:   Ztrue_dfmsgr   r   r   ,test_to_parquet_to_disk_with_storage_options   s    	
rP   )*__doc__	functoolsr   r   ior   rM   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasr+   Zpandas._testingZ_testingrA   markZ
single_cpunetworkfilterwarningsZ
pytestmarkr   r   r   r   r   r   r   r'   r)   r*   ZparametrizeZread_csv	read_jsonparamZread_parquetZ
skip_if_noZ&skip_array_manager_not_yet_implementedZread_pickleZ
read_statarK   rP   r   r   r   r   <module>   s   	
