在 sanic 上下文对象上类型检查变量?
Type checking variables on the sanic context object?
全局状态的sanic python http server provides a context object。 python 的一个不错的新功能是类型检查,它可以检测拼写错误的属性。有没有一种方法可以告诉像 mypy 这样的类型系统您要将哪些属性及其类型添加到上下文对象?
因为该对象是一个 SimpleNamespace,所以没有 OOTB 方法来处理它。但是,您有一些选择。
首先,您可以使用Sanic Extensions注入一个类型化的对象。
foo = Foo()
app.ext.dependency(foo)
@app.get("/getfoo")
async def getfoo(request: Request, foo: Foo):
return text(foo.bar())
其次,您可以创建一个输入的自定义对象并将其传递给 Sanic。
class CustomContext:
foo: int
app = Sanic(..., ctx= CustomContext())
ctx: CustomContext = app.ctx
第三,您可以子class Sanic
class 并提供类型化对象。
全局状态的sanic python http server provides a context object。 python 的一个不错的新功能是类型检查,它可以检测拼写错误的属性。有没有一种方法可以告诉像 mypy 这样的类型系统您要将哪些属性及其类型添加到上下文对象?
因为该对象是一个 SimpleNamespace,所以没有 OOTB 方法来处理它。但是,您有一些选择。
首先,您可以使用Sanic Extensions注入一个类型化的对象。
foo = Foo()
app.ext.dependency(foo)
@app.get("/getfoo")
async def getfoo(request: Request, foo: Foo):
return text(foo.bar())
其次,您可以创建一个输入的自定义对象并将其传递给 Sanic。
class CustomContext:
foo: int
app = Sanic(..., ctx= CustomContext())
ctx: CustomContext = app.ctx
第三,您可以子class Sanic
class 并提供类型化对象。