Python MyPy-您如何在注释中实际使用typeshed存根?
注意:没有回答我的问题。它只是重申了我已经读过的内容 这是怎么回事?我读到的所有内容都说Python MyPy-您如何在注释中实际使用typeshed存根?,python,mypy,Python,Mypy,注意:没有回答我的问题。它只是重申了我已经读过的内容 这是怎么回事?我读到的所有内容都说typeshed与MyPy捆绑在一起,并包含第三方库的存根。我已经在virtualenv中安装并运行了MyPy,我正试图用它来键入Flask代码,但我就是不明白 我有TypeScript方面的背景,我也在寻找类似的东西,但我不明白我们应该如何在MyPy中使用存根。例如,我有以下功能: def create_app(config_name="default"): app: Flask = Flask(_
typeshed
与MyPy
捆绑在一起,并包含第三方库的存根。我已经在virtualenv中安装并运行了MyPy
,我正试图用它来键入Flask
代码,但我就是不明白
我有TypeScript方面的背景,我也在寻找类似的东西,但我不明白我们应该如何在MyPy
中使用存根。例如,我有以下功能:
def create_app(config_name="default"):
app: Flask = Flask(__name__)
app.config.from_object(Configuration)
CORS(app)
register_extensions(app)
register_blueprints(app)
@app.route("/health")
def health_check():
return json.dumps({"status": "up"})
return app
烧瓶非常标准,但严格禁止任何设置,这将成为一个无法出售的烂摊子。应用程序的类型是什么?我知道typeshed
,但我不知道如何实际利用这些存根。typeshed
文档说:
如果您只是使用mypy(或pytype或PyCharm),而不是开发它,那么您根本不需要与typeshed repo交互:typeshed的副本与mypy捆绑在一起
所以我假设我不需要导入类型,文档也没有提到导入它们
例如,有一个名为app.pyi
的存根,但如果我这样注释函数:
def create_app(config_name="default") -> app:
我发现错误名称应用程序未定义
。如果我导入它:
from typeshed import app
我得到错误返回类型变为any是由于一个未跟踪的导入
,据我所知,这意味着没有这样的模块typeshed
,或者它没有名为app
的成员
那么,我实际上如何访问这些
typeshed
存根呢?我最后的办法是简单地克隆typeshed
repo并将mypy
作为自定义typeshed dir指向它,但我真的很想以正确的方式进行操作。类型不是Flask
?哇,我觉得自己像个大傻瓜。-。谢谢