U
    &%e+                     @   s   d dl Z d dlZd dlZd dlZd dlmZ ejdk rDd dlmZ nd dlmZ ej	e
dddZejdd	d
ZG dd dee ZG dd deZejdeddZG dd deje ZdS )    N)TracebackType)      )Protocol)objreturnc                 C   s2   t | tjr| j} q t| p0t| o0t| jS N)
isinstance	functoolspartialfuncasyncioiscoroutinefunctioncallable__call__)r    r   O/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/starlette/_utils.pyis_async_callable   s
    
r   T_coT)	covariantc                   @   sl   e Zd Zejejdef dddZedddZej	ej
e  ej	e ej	e ejedf ddd	ZdS )
AwaitableOrContextManagerNr   c                 C   s   d S r   r   selfr   r   r   	__await__"   s    z#AwaitableOrContextManager.__await__c                    s   d S r   r   r   r   r   r   
__aenter__%   s    z$AwaitableOrContextManager.__aenter__)$_AwaitableOrContextManager__exc_type%_AwaitableOrContextManager__exc_value%_AwaitableOrContextManager__tracebackr   c                    s   d S r   r   )r   r   r   r   r   r   r   	__aexit__(   s    z#AwaitableOrContextManager.__aexit__)__name__
__module____qualname__typing	GeneratorAnyr   r   r   OptionalTypeBaseExceptionr   Unionboolr   r   r   r   r   r   !   s   r   c                   @   s   e Zd ZddddZdS )SupportsAsyncCloseNr   c                    s   d S r   r   r   r   r   r   close2   s    zSupportsAsyncClose.close)r    r!   r"   r,   r   r   r   r   r+   1   s   r+   SupportsAsyncCloseTypeF)boundr   c                   @   sl   e Zd ZdZeje ddddZejej	def dddZ
edd	d
Zej	ejdef dddZdS ) AwaitableOrContextManagerWrapperawenteredN)r1   r   c                 C   s
   || _ d S r   )r1   )r   r1   r   r   r   __init__>   s    z)AwaitableOrContextManagerWrapper.__init__r   c                 C   s
   | j  S r   )r1   r   r   r   r   r   r   A   s    z*AwaitableOrContextManagerWrapper.__await__c                    s   | j I d H | _| jS r   r0   r   r   r   r   r   D   s    z+AwaitableOrContextManagerWrapper.__aenter__)argsr   c                    s   | j  I d H  d S r   )r2   r,   )r   r4   r   r   r   r   H   s    z*AwaitableOrContextManagerWrapper.__aexit__)r    r!   r"   	__slots__r#   	Awaitabler-   r3   r$   r%   r   r   r)   r*   r   r   r   r   r   r/   ;   s
   r/   )r   r
   sysr#   typesr   version_infoZtyping_extensionsr   r%   r*   r   TypeVarr   r   r+   r-   Genericr/   r   r   r   r   <module>   s"   
	  