o
    wi                     @   s  U d dl mZmZ d dlmZmZmZmZmZm	Z	m
Z
mZmZ d dlmZ d dlmZmZmZ ddlmZ ddlmZ ddlmZ e	d	Ze	d
Ze	dZeeeeef ef ZeddeddZeeef ed< G dd deeeef Z G dd deee Z!dS )    )ABCabstractmethod)	AnyDictTypeUnionGenericTypeVarOptional	Coroutinecast)override)LimitsHeadersTimeout   )	_NoneType)Method)HTTPClientClosedErrorSessionResponse
ReturnTypei  )Zmax_connections   )ZlimitstimeoutDEFAULT_CONFIGc                
   @   s
  e Zd ZU eeef ed< dZdeddfddZe	ded	ede
d fd
dZe	dededede
d fddZe	d ddZe	de
d fddZedefddZedefddZejdee ddfddZdefddZedefddZedefddZdS )!AbstractHTTPsession_kwargs)_sessionr   kwargsreturnNc                 K   s   t | _i t|| _d S N)r   r   r   r   )selfr    r"   K/home/app/Keep/.python/lib/python3.10/site-packages/prisma/http_abstract.py__init__*   s   
zAbstractHTTP.__init__urldestc                 C      d S r    r"   )r!   r%   r&   r"   r"   r#   download4      zAbstractHTTP.downloadmethodzAbstractResponse[Response]c                 K   r'   r    r"   )r!   r*   r%   r   r"   r"   r#   request7   r)   zAbstractHTTP.requestc                 C   r'   r    r"   r!   r"   r"   r#   open:   r)   zAbstractHTTP.openc                 C   r'   r    r"   r,   r"   r"   r#   close=   r)   zAbstractHTTP.closec                 C   s
   | j d u S r    r   r,   r"   r"   r#   closed@      
zAbstractHTTP.closedc                 C   s:   | j }|tu r|   tt| j S |d u rt tt|S r    )r   r   r-   r   r   r   )r!   sessionr"   r"   r#   r2   D   s   
zAbstractHTTP.sessionvaluec                 C   
   || _ d S r    r/   )r!   r3   r"   r"   r#   r2   Q   r1   c                 C   s   | j tuo| j S r    )r   r   r0   r,   r"   r"   r#   should_closeU   s   zAbstractHTTP.should_closec                 C      t | S r    strr,   r"   r"   r#   __repr__X      zAbstractHTTP.__repr__c                 C      d| j  dS )Nz<HTTP closed=>)r0   r,   r"   r"   r#   __str__\      zAbstractHTTP.__str__)r   N)__name__
__module____qualname__r   r8   r   __annotations__	__slots__r$   r   MaybeCoroutiner(   r   r+   r-   r.   propertyboolr0   r   r2   setterr
   r5   r   r9   r=   r"   r"   r"   r#   r       s.   
 
 r   c                   @   s   e Zd ZU eed< dZdeddfddZeede	fddZ
eedefd	d
Zedee fddZedee fddZedefddZedefddZdS )AbstractResponseoriginalrI   r   Nc                 C   r4   r    rJ   )r!   rI   r"   r"   r#   r$   f   s   
zAbstractResponse.__init__c                 C   r'   r    r"   r,   r"   r"   r#   statusi      zAbstractResponse.statusc                 C   r'   r    r"   r,   r"   r"   r#   headersm   rL   zAbstractResponse.headersc                 C   r'   r    r"   r,   r"   r"   r#   jsonq   r)   zAbstractResponse.jsonc                 C   r'   r    r"   r,   r"   r"   r#   textt   r)   zAbstractResponse.textc                 C   r6   r    r7   r,   r"   r"   r#   r9   w   r:   zAbstractResponse.__repr__c                 C   r;   )Nz<Response wrapped=z >rJ   r,   r"   r"   r#   r=   {   r>   zAbstractResponse.__str__)r?   r@   rA   r   rB   rC   r$   rE   r   intrK   r   rM   rD   r   rN   r8   rO   r   r9   r=   r"   r"   r"   r#   rH   a   s$   
 rH   N)"abcr   r   typingr   r   r   r   r   r	   r
   r   r   Ztyping_extensionsr   Zhttpxr   r   r   utilsr   _typesr   errorsr   r   r   r   rD   r   r8   rB   r   rH   r"   r"   r"   r#   <module>   s     ,A