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   R/home/ubuntu/.local/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