【问题标题】:Make flake8 detect Python types errors使 flake8 检测 Python 类型错误
【发布时间】:2021-11-09 11:55:51
【问题描述】:

经过FastAPI docs,看起来像下面这个函数

def get_name_with_age(name: str, age: int):
    name_with_age = name + " is this old: " + age
    return name_with_age

应该通过 Python linter(示例中为 mypy)在 VSCode 中触发错误消息

我已经在使用 flake8,但它没有检测到此类错误。有没有办法让 flake8 表现得像那样?

【问题讨论】:

  • 你的截图告诉你答案:使用 mypy
  • 是的,这是一种方式。但是,我需要坚持使用 flake8,最终扩展它的功能。就我而言,切换到或同时使用 mypy 并不是一个好的选择。
  • 并非如此。在发布到这里之前,我已经检查了这样一个问题。他们引用了pypi.org/project/flake8-annotations,但这个插件不检查表达式一致性与所涉及的数据类型有关。 flake8 无法进行这些检查。 mypy 看起来是唯一的出路。

标签: python visual-studio-code fastapi flake8


【解决方案1】:

抱歉,这看起来不可能。

mypy中,这个功能是由"check_untyped_defs=true"提供的。我们可以在 settings.json 中使用这个配置禁用它:

  "python.linting.mypyArgs": [
    "--follow-imports=silent",
    "--ignore-missing-imports",
    "--show-column-numbers",
    "--no-pretty",
    "check_untyped_defs=false"  //this line
  ],

从 flake8 的official docs,它只禁用了这些功能:

By default, Flake8 ignores E121, E123, E126, E226, E24, and E704.

但是虽然你都启用了,flake8还是不行。

所以,flake8 好像没有这个功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 2021-03-02
    • 2019-07-28
    • 2016-05-20
    • 1970-01-01
    • 1970-01-01
    • 2016-04-17
    相关资源
    最近更新 更多