o
    թZh                     @   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  (}tj|dd}||  W d    n1 sw   Y  | W  d    S 1 s.w   Y  d S )Nw)fileobjmode)r   gzipGzipFilewritegetvalue)Zresponse_bytesbioZzipper r   X/var/www/html/lang_env/lib/python3.10/site-packages/pandas/tests/io/test_http_headers.py
gzip_bytes   s   $r   c                 C      | j dddS NF)indexutf-8)Zto_csvencodedfr   r   r   csv_responder      r   c                 C      t t| S N)r   r   r   r   r   r   gz_csv_responder#      r   c                 C   s   |   dS )Nr   )to_jsonr   r   r   r   r   json_responder'      r   c                 C   r   r   )r   r   r   r   r   r   gz_json_responder+   r   r   c                 C   r   r   )Zto_htmlr   r   r   r   r   html_responder/   r   r    c                 C   s   | j dddS )NFpyarrow)r   engine)
to_parquetr   r   r   r   parquetpyarrow_reponder3   r   r$   c                 C   sR   dd l }| jdddd d |dd}| W  d    S 1 s"w   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w   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 sw   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>]   s    r3   r!   )r"   )Zmarksr%   r(   storage_options
User-AgentZfoobarr5   ZAuthc                 C   s   t ddgi}g d}d| jv r!ddi}|d u r|}n||O }nd }t||r-| ng }|j| ||d ||j|d}t	|| t
|jd	 j}	|D ]}
|	|
}|re|
|v re|||
 kseJ qP|	rjJ d S )
Nab)zAccept-EncodingHost
Connectionr5   gzzContent-Encodingr   )contentheaders)r4   r   )r0   	DataFrame__name__setunionkeysZserve_contenturltmZassert_frame_equaldictrequestsr>   pop)Z	responderZread_methodZ
httpserverr4   expecteddefault_headersextraZexpected_headersresultZrequest_headersheaderexpr   r   r   test_request_headersV   s*   '


rO   r"   c                 C   sl   ddd}t |  tddgi}d}t jt|d |jd|| d	 W d    d S 1 s/w   Y  d S )
NZcustomZother_customr7   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)r4   r"   )pytestZimportorskipr0   r?   Zraises
ValueErrorr#   )r"   r>   Ztrue_dfmsgr   r   r   ,test_to_parquet_to_disk_with_storage_options   s   	
"rT   )*__doc__	functoolsr   r   ior   rQ   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasr0   Zpandas._testingZ_testingrE   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_statarO   rT   r   r   r   r   <module>   s    	
