o
    <‘ði  ã                   @   s€   d dl Z d dlmZmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlmZmZ dZdZh d£ZG d	d
„ d
eƒZG dd„ deƒZdS )é    N)ÚABCÚabstractmethod)ÚThreadPoolExecutor)ÚAnyÚMappingÚOptionalÚUnion)Ú
HttpClientÚHttpResponsez)HttpClient/1.0 (+https://example.invalid)g      >@>   é­  éô  éö  é÷  éø  c                   @   sÌ  e Zd Ze				ddedeeeedeee	e
eef f  deeeef  dee	 de
deeef fd	d
„ƒZe				ddedeeeedeee	e
eef f  deeeef  dee	 de
deeef fdd„ƒZe						ddedee deeeef  deeeedeee	e
eef f  deeeef  dee	 de
deeef fdd„ƒZe						ddedee deeeef  deeeedeee	e
eef f  deeeef  dee	 de
deeef fdd„ƒZe						ddedee deeeef  deeeedeee	e
eef f  deeeef  dee	 de
deeef fdd„ƒZe				ddededeeeedeee	e
eef f  deeeef  deeeef  dee	 defdd„ƒZdS )ÚAsyncHTTPClientNTÚpathÚparamsÚheadersÚtimeoutÚexpect_jsonÚreturnc                 Ã   ó   �dS )z!
        Invoke HTTP GET request.N© ©Úselfr   r   r   r   r   r   r   ú]/root/parts/websockify/install/lib/python3.10/site-packages/redis/asyncio/http/http_client.pyÚget   ó   €zAsyncHTTPClient.getc                 Ã   r   )z$
        Invoke HTTP DELETE request.Nr   r   r   r   r   Údelete   r   zAsyncHTTPClient.deleteÚ	json_bodyÚdatac                 Ã   r   )z"
        Invoke HTTP POST request.Nr   ©r   r   r   r    r   r   r   r   r   r   r   Úpost,   ó   €zAsyncHTTPClient.postc                 Ã   r   )z!
        Invoke HTTP PUT request.Nr   r!   r   r   r   Úput=   r#   zAsyncHTTPClient.putc                 Ã   r   )z#
        Invoke HTTP PATCH request.Nr   r!   r   r   r   ÚpatchN   r#   zAsyncHTTPClient.patchÚmethodÚbodyc                 Ã   r   )z/
        Invoke HTTP request with given method.Nr   )r   r&   r   r   r   r'   r   r   r   r   Úrequest_   s   €zAsyncHTTPClient.request©NNNT©NNNNNT©NNNN)Ú__name__Ú
__module__Ú__qualname__r   Ústrr   r   r   ÚintÚfloatÚboolÚlistÚtupler
   r   r   r   Úbytesr"   r$   r%   r(   r   r   r   r   r      s   øþÿýúùø
	÷øþÿýúùø
	÷öþýüÿûø	÷
ö
õöþýüÿûø	÷
ö
õöþýüÿûø	÷
ö
õ÷þýÿüùø	÷
ör   c                   @   sÐ  e Zd ZdZddededdfdd„Z					d d
edee	ee
deeeeeef f  dee	eef  dee dede
eef fdd„Z					d d
edee	ee
deeeeeef f  dee	eef  dee dede
eef fdd„Z							d!d
edee dee
eef  dee	ee
deeeeeef f  dee	eef  dee dede
eef fdd„Z							d!d
edee dee
eef  dee	ee
deeeeeef f  dee	eef  dee dede
eef fdd„Z							d!d
edee dee
eef  dee	ee
deeeeeef f  dee	eef  dee dede
eef fdd„Z				d"ded
edee	ee
deeeeeef f  dee	eef  dee
eef  dee defdd„ZdS )#ÚAsyncHTTPClientWrapperzN
    An async wrapper around sync HTTP client with thread pool execution.
    é
   ÚclientÚmax_workersr   Nc                 C   s   || _ t|d�| _dS )aÿ  
        Initialize a new HTTP client instance.

        Args:
            client: Sync HTTP client instance.
            max_workers: Maximum number of concurrent requests.

        The client supports both regular HTTPS with server verification and mutual TLS
        authentication. For server verification, provide CA certificate information via
        ca_file, ca_path or ca_data. For mutual TLS, additionally provide a client
        certificate and key via client_cert_file and client_key_file.
        )r9   N)r8   r   Ú	_executor)r   r8   r9   r   r   r   Ú__init__u   s   zAsyncHTTPClientWrapper.__init__Tr   r   r   r   r   c              	   Ã   ó,   �t  ¡ }| | j| jj|||||¡I d H S ©N)ÚasyncioÚget_event_loopÚrun_in_executorr:   r8   r   ©r   r   r   r   r   r   Úloopr   r   r   r   …   s
   €

ÿzAsyncHTTPClientWrapper.getc              	   Ã   r<   r=   )r>   r?   r@   r:   r8   r   rA   r   r   r   r   ”   s   €

ùzAsyncHTTPClientWrapper.deleter   r    c           	      Ã   ó0   �t  ¡ }| | j| jj|||||||¡	I d H S r=   )r>   r?   r@   r:   r8   r"   ©	r   r   r   r    r   r   r   r   rB   r   r   r   r"   ©   ó   €
÷zAsyncHTTPClientWrapper.postc           	      Ã   rC   r=   )r>   r?   r@   r:   r8   r$   rD   r   r   r   r$   Â   rE   zAsyncHTTPClientWrapper.putc           	      Ã   rC   r=   )r>   r?   r@   r:   r8   r%   rD   r   r   r   r%   Û   rE   zAsyncHTTPClientWrapper.patchr&   r'   c              
   Ã   s.   �t  ¡ }| | j| jj||||||¡I d H S r=   )r>   r?   r@   r:   r8   r(   )r   r&   r   r   r   r'   r   rB   r   r   r   r(   ô   s   €
øzAsyncHTTPClientWrapper.request)r7   r)   r*   r+   )r,   r-   r.   Ú__doc__r	   r0   r;   r/   r   r   r   r1   r2   r3   r4   r
   r   r   r   r5   r"   r$   r%   r(   r   r   r   r   r6   p   s   øþÿýúùø
	
÷øþÿýúùø
	
÷öþýüÿûø	÷
ö

õöþýüÿûø	÷
ö

õöþýüÿûø	÷
ö

õ÷þýÿüùø	÷
ör6   )r>   Úabcr   r   Úconcurrent.futuresr   Útypingr   r   r   r   Úredis.http.http_clientr	   r
   ÚDEFAULT_USER_AGENTÚDEFAULT_TIMEOUTÚRETRY_STATUS_CODESr   r6   r   r   r   r   Ú<module>   s    c