コード例 #1
0
 async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None:
     if AsyncExitStack:
         async with AsyncExitStack() as stack:
             scope["fastapi_astack"] = stack
             await super().__call__(scope, receive, send)
     else:
         await super().__call__(scope, receive, send)  # pragma: no cover
コード例 #2
0
 async def __call__(self, scope: Scope, receive: Receive,
                    send: Send) -> None:
     if AsyncExitStack:
         dependency_exception: Optional[Exception] = None
         async with AsyncExitStack() as stack:
             scope[self.context_name] = stack
             try:
                 await self.app(scope, receive, send)
             except Exception as e:
                 dependency_exception = e
                 raise e
         if dependency_exception:
             # This exception was possibly handled by the dependency but it should
             # still bubble up so that the ServerErrorMiddleware can return a 500
             # or the ExceptionMiddleware can catch and handle any other exceptions
             raise dependency_exception
     else:
         await self.app(scope, receive, send)  # pragma: no cover