a
    þd­  ã                   @   sB   d dl mZ d dlmZ d dlmZmZmZmZ G dd„ dƒZ	dS )é    )ÚOptional)ÚAsyncExitStack)ÚASGIAppÚReceiveÚScopeÚSendc                   @   s4   e Zd Zd	eeddœdd„Zeeeddœdd„Z	dS )
ÚAsyncExitStackMiddlewareÚfastapi_astackN)ÚappÚcontext_nameÚreturnc                 C   s   || _ || _d S ©N)r
   r   )Úselfr
   r   © r   új/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.pyÚ__init__   s    z!AsyncExitStackMiddleware.__init__)ÚscopeÚreceiveÚsendr   c                 Ã   s´   t rœd }t ƒ 4 I d H šf}||| j< z|  |||¡I d H  W n, tyf } z|}|‚W Y d }~n
d }~0 0 W d   ƒI d H  q’1 I d H sˆ0    Y  |r°|‚n|  |||¡I d H  d S r   )r   r   r
   Ú	Exception)r   r   r   r   Zdependency_exceptionÚstackÚer   r   r   Ú__call__   s    
Dz!AsyncExitStackMiddleware.__call__)r	   )
Ú__name__Ú
__module__Ú__qualname__r   Ústrr   r   r   r   r   r   r   r   r   r      s   r   N)
Útypingr   Zfastapi.concurrencyr   Zstarlette.typesr   r   r   r   r   r   r   r   r   Ú<module>   s   