U
    #i                     @  s   d dl mZ d dlmZmZmZmZmZmZm	Z	 d dl
mZ d dlmZ d dlmZmZ ddlmZmZ ddlmZmZ dd	lmZ ed
ZG dd dZdS )    )annotations)AnyCallableDictOptionalTypeVarUnionoverload)Response)	BaseModel)LiteralSelf   )API_VERSION_HEADER_NAMEAPI_VERSIONS)handle_exception
model_dump)AsyncClientTc                   @  s  e Zd Zddddddddd	d
dZddddZddddZddddZedddddddddddddddddd
dd Zedddddd!dddddddd"d#dd
d$d Zeddddddddddddddddd%	d&d Zdddddddd'ddddddddd(d)d
d*d ZdS )+AsyncGoTrueBaseAPITN)verifyproxystrzDict[str, str]zUnion[AsyncClient, None]boolzOptional[str])urlheadershttp_clientr   r   c                C  s*   || _ || _|p"tt||ddd| _d S )NT)r   r   Zfollow_redirectsZhttp2)_url_headersr   r   _http_client)selfr   r   r   r   r    r!   A/tmp/pip-unpacked-wheel-b8wmx3ip/gotrue/_async/gotrue_base_api.py__init__   s    	zAsyncGoTrueBaseAPI.__init__r   )returnc                   s   | S Nr!   r    r!   r!   r"   
__aenter__#   s    zAsyncGoTrueBaseAPI.__aenter__Nonec                   s   |   I d H  d S r%   )close)r    Zexc_tZexc_vexc_tbr!   r!   r"   	__aexit__&   s    zAsyncGoTrueBaseAPI.__aexit__c                   s   | j  I d H  d S r%   )r   acloser&   r!   r!   r"   r)   )   s    zAsyncGoTrueBaseAPI.closeF)jwtredirect_tor   querybodyno_resolve_jsonzELiteral[('GET', 'OPTIONS', 'HEAD', 'POST', 'PUT', 'PATCH', 'DELETE')]zUnion[str, None]zUnion[Dict[str, str], None]zUnion[Any, None]zLiteral[False]zCallable[[Any], T]r   )
methodpathr-   r.   r   r/   r0   r1   xformr$   c          
        s   d S r%   r!   
r    r2   r3   r-   r.   r   r/   r0   r1   r4   r!   r!   r"   _request,   s    zAsyncGoTrueBaseAPI._request)r-   r.   r   r/   r0   zLiteral[True]zCallable[[Response], T]c          
        s   d S r%   r!   r5   r!   r!   r"   r6   ;   s    )	r2   r3   r-   r.   r   r/   r0   r1   r$   c          	        s   d S r%   r!   )	r    r2   r3   r-   r.   r   r/   r0   r1   r!   r!   r"   r6   J   s    )r-   r.   r   r/   r0   r1   r4   zUnion[Callable[[Any], T], None]zUnion[T, None]c             
     s   | j  d| }
| j|pi }t|kr8td d|t< d|krHd|d< |rZd| |d< |p`i }|rn||d< zX| jj||
||t|trt	|n|d	I d H }|
  |r|n| }|	r|	|W S W n* tk
r } zt|W 5 d }~X Y nX d S )
N/z
2024-01-01namezContent-Typezapplication/json;charset=UTF-8zBearer Authorizationr.   )r   paramsjson)r   r   r   r   getr   request
isinstancer   r   raise_for_statusr;   	Exceptionr   )r    r2   r3   r-   r.   r   r/   r0   r1   r4   r   responseresulter!   r!   r"   r6   X   s2    )	__name__
__module____qualname__r#   r'   r+   r)   r	   r6   r!   r!   r!   r"   r      sJ   &&$r   N)
__future__r   typingr   r   r   r   r   r   r	   Zhttpxr
   Zpydanticr   Ztyping_extensionsr   r   	constantsr   r   Zhelpersr   r   Zhttp_clientsr   r   r   r!   r!   r!   r"   <module>   s   $