【问题标题】:mypy overrides in toml are ignored?toml 中的 mypy 覆盖被忽略?
【发布时间】:2022-09-23 18:05:53
【问题描述】:

以下是 mypy 文档中 toml 文件示例的简化版本:

[tool.mypy]
python_version = \"3.7\"
warn_return_any = true
warn_unused_configs = true

[[tool.mypy.overrides]]
module = [\"somelibrary\"]
ignore_missing_imports = true

我在一个项目中使用此配置,其中我有一个第三方库(此处名为 \"somelibrary\"),它缺少类型提示,因此在 mypy 报告中导致大量垃圾邮件。

全局 mypy 配置被选中,所以我知道整体设置很好,但是每当我将 somelibrary 覆盖中的 ignore_missing_imports 切换为 true 时,mypy 仍然表现得好像我将其设置为 false(我在全局 mypy 中使用了相同的选项配置以确保事情以预期的方式工作,就是这种情况)。

我正在使用(当前)最新的 mypy 版本,0.931。

难道我做错了什么? mypy被窃听了吗?还有什么?

  • 我的 mypy 0.961 也有同样的问题。
  • 你能用module = [\"somelibrary.*\"]复制它吗?这为我解决了问题;显然它只将这些功能应用于指定包的__init__ 文件。它可能仍然是一个错误;我不知道预期的行为是什么。
  • module = \"somelibrary.*\"(不是列表)也为我工作

标签: python mypy


【解决方案1】:

您应该将项目添加到覆盖。假设您的项目名为“my_project”,并且您的库/模块“somelibrary”直接位于您的“my_project”文件夹下。 toml 文件应如下所示:

[tool.mypy]
python_version = "3.7"
warn_return_any = true
warn_unused_configs = true

[[tool.mypy.overrides]]
module = "my_project.somelibrary"
ignore_missing_imports = true

【讨论】:

    猜你喜欢
    • 2016-05-07
    • 2018-08-04
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 2015-08-17
    • 1970-01-01
    相关资源
    最近更新 更多