o
    h
                     @  sn  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 rOzd d	lmZ W n eyN   d
ZY nw edZejdeje f Zejd)ddZejd*ddZ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#Z d-d'd(Z!dS ).    )annotationsN)contextmanager)Scope)   
   )	TypeGuardT)r      )BaseExceptionGroupFT.objAwaitableCallable[T]returnTypeGuard[AwaitableCallable[T]]c                 C     d S N r   r   r   d/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/starlette/_utils.pyis_async_callable      r   
typing.Any(TypeGuard[AwaitableCallable[typing.Any]]c                 C  r   r   r   r   r   r   r   r      r   c                 C  s<   t | tjr| j} t | tjst| pt| ot| jS r   )
isinstance	functoolspartialfuncinspect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"   -   s    r"   c                   @  s   e Zd ZdddZdS )SupportsAsyncCloser   Nonec                   s   d S r   r   selfr   r   r   close1   s    zSupportsAsyncClose.closeN)r   r'   )r#   r$   r%   r*   r   r   r   r   r&   0   s    r&   SupportsAsyncCloseType)boundr!   c                   @  s8   e Zd ZdZdddZdd	d
ZdddZdddZdS ) AwaitableOrContextManagerWrapperawenteredr/   (typing.Awaitable[SupportsAsyncCloseType]r   r'   c                 C  s
   || _ d S r   )r/   )r)   r/   r   r   r   __init__:      
z)AwaitableOrContextManagerWrapper.__init__:typing.Generator[typing.Any, None, SupportsAsyncCloseType]c                 C  s
   | j  S r   )r/   	__await__r(   r   r   r   r5   =   r3   z*AwaitableOrContextManagerWrapper.__await__r+   c                   s   | j I d H | _| jS r   r.   r(   r   r   r   
__aenter__@   s   z+AwaitableOrContextManagerWrapper.__aenter__argsr   None | boolc                   s   | j  I d H  d S r   )r0   r*   )r)   r7   r   r   r   	__aexit__D   s   z*AwaitableOrContextManagerWrapper.__aexit__N)r/   r1   r   r'   )r   r4   )r   r+   )r7   r   r   r8   )r#   r$   r%   	__slots__r2   r5   r6   r9   r   r   r   r   r-   7   s    


r-   "typing.Generator[None, None, None]c               
   c  sj    zd V  W d S  t y4 }  z!tr.t| tr.t| jdkr.| jd } t| tr.t| jdks| d } ~ ww )N   r   )BaseExceptionhas_exceptiongroupsr   r	   len
exceptions)excr   r   r   collapse_excgroupsI   s   
rB   scoper   strc                 C  sZ   | d }|  dd}|s|S ||s|S ||krdS |t| dkr+|t|d  S |S )Npath	root_path /)get
startswithr?   )rC   rE   rF   r   r   r   get_route_pathU   s   
rK   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r;   )rC   r   r   rD   )"
__future__r   r   r   systyping
contextlibr   starlette.typesr   version_infor   typing_extensionsr>   exceptiongroupr	   ImportErrorTypeVarr
   Callable	AwaitableAwaitableCallableoverloadr   r    AsyncContextManagerProtocolr"   r&   r+   Genericr-   rB   rK   r   r   r   r   <module>   s@    



&