a
    ^g
                     @  s  d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 ej
dkr\d dlmZ nd dlmZ dZej
dk rzd d	lmZ W n ey   d
ZY n0 edZejdeje f ZejdddddZejdddddZdddddZejdddZG dd deje eje eje ZG dd dejZejded
dZG dd deje Zed d!d"d#Z d$d%d&d'd(Z!dS ))    )annotationsN)contextmanager)Scope)   
   )	TypeGuardT)r      )BaseExceptionGroupFT.zAwaitableCallable[T]zTypeGuard[AwaitableCallable[T]])objreturnc                 C  s   d S N r   r   r   ^/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/starlette/_utils.pyis_async_callable   s    r   
typing.Anyz(TypeGuard[AwaitableCallable[typing.Any]]c                 C  s   d S r   r   r   r   r   r   r      s    c                 C  s2   t | tjr| j} q t| p0t| o0t| jS r   )
isinstance	functoolspartialfuncasyncioiscoroutinefunctioncallable__call__r   r   r   r   r   #   s    T_co)	covariantc                   @  s   e Zd ZdS )AwaitableOrContextManagerN)__name__
__module____qualname__r   r   r   r   r   -       r   c                   @  s   e Zd ZddddZdS )SupportsAsyncCloseNoner   c                   s   d S r   r   selfr   r   r   close1   r!   zSupportsAsyncClose.closeN)r   r   r    r'   r   r   r   r   r"   0   s   r"   SupportsAsyncCloseType)boundr   c                   @  sL   e Zd ZdZdddddZddd	d
ZddddZdddddZdS ) AwaitableOrContextManagerWrapperawenteredz(typing.Awaitable[SupportsAsyncCloseType]r#   )r,   r   c                 C  s
   || _ d S r   )r,   )r&   r,   r   r   r   __init__:   s    z)AwaitableOrContextManagerWrapper.__init__z:typing.Generator[typing.Any, None, SupportsAsyncCloseType]r$   c                 C  s
   | j  S r   )r,   	__await__r%   r   r   r   r/   =   s    z*AwaitableOrContextManagerWrapper.__await__r(   c                   s   | j I d H | _| jS r   r+   r%   r   r   r   
__aenter__@   s    z+AwaitableOrContextManagerWrapper.__aenter__r   zNone | bool)argsr   c                   s   | j  I d H  d S r   )r-   r'   )r&   r1   r   r   r   	__aexit__D   s    z*AwaitableOrContextManagerWrapper.__aexit__N)r   r   r    	__slots__r.   r/   r0   r2   r   r   r   r   r*   7   s
   r*   z"typing.Generator[None, None, None]r$   c               
   c  s`   z
d V  W nP t yZ }  z8trBt| trBt| jdkrB| jd } q| W Y d } ~ n
d } ~ 0 0 d S )N   r   )BaseExceptionhas_exceptiongroupsr   r	   len
exceptions)excr   r   r   collapse_excgroupsI   s    
r:   r   str)scoper   c                 C  sZ   | d }|  dd}|s|S ||s*|S ||kr6dS |t| dkrV|t|d  S |S )Npath	root_path /)get
startswithr7   )r<   r=   r>   r   r   r   get_route_pathU   s    
rC   )"
__future__r   r   r   systyping
contextlibr   Zstarlette.typesr   version_infor   Ztyping_extensionsr6   Zexceptiongroupr	   ImportErrorTypeVarr
   Callable	AwaitableZAwaitableCallableoverloadr   r   AsyncContextManagerProtocolr   r"   r(   Genericr*   r:   rC   r   r   r   r   <module>   s<   



&