123456789101112131415161718192021222324 |
- class BaseMiddleware:
- """
- Base class for implementing ASGI middleware.
-
- Note that subclasses of this are not self-safe; don't store state on
- the instance, as it serves multiple application instances. Instead, use
- scope.
- """
-
- def __init__(self, inner):
- """
- Middleware constructor - just takes inner application.
- """
- self.inner = inner
-
- async def __call__(self, scope, receive, send):
- """
- ASGI application; can insert things into the scope and run asynchronous
- code.
- """
- # Copy scope to stop changes going upstream
- scope = dict(scope)
- # Run the inner application along with the scope
- return await self.inner(scope, receive, send)
|