35 lines
604 B
Python
35 lines
604 B
Python
from sanic import Request, Sanic
|
|
from sanic.config import Config
|
|
|
|
|
|
class CustomConfig(Config):
|
|
pass
|
|
|
|
|
|
class Foo:
|
|
pass
|
|
|
|
|
|
class RequestContext:
|
|
foo: Foo
|
|
|
|
|
|
class CustomRequest(Request[Sanic[CustomConfig, Foo], RequestContext]):
|
|
@staticmethod
|
|
def make_context() -> RequestContext:
|
|
ctx = RequestContext()
|
|
ctx.foo = Foo()
|
|
return ctx
|
|
|
|
|
|
app = Sanic(
|
|
"test", config=CustomConfig(), ctx=Foo(), request_class=CustomRequest
|
|
)
|
|
|
|
|
|
@app.get("/")
|
|
async def handler(request: CustomRequest):
|
|
reveal_type(request)
|
|
reveal_type(request.ctx)
|
|
reveal_type(request.app)
|