设置 pyflake 和 mypy 忽略同一行

Posted

技术标签:

【中文标题】设置 pyflake 和 mypy 忽略同一行【英文标题】:Set pyflake AND mypy ignore same line 【发布时间】:2018-12-13 05:11:04 【问题描述】:

我为 Salt 编写了一个模块。通过documentation,它将__salt__ 对象添加到builtins。所以,pyflake 警告我 __salt__ 在我运行 prospector 时是未定义的,而 mypy 也是这样说的,__salt__ 是未定义的!我可以忽略带有# noqa: F821pyflake 或带有# type: ignoremypy

问题是!如何忽略他们两个?

【问题讨论】:

代码,赞成。 在行尾试试# type: ignore # noqa 感谢@vahdet 它有效! 【参考方案1】:

PEP 484 在 section on type comments 的末尾指定以下内容:

在某些情况下,可能需要将 linting 工具或其他 cmets 与类型注释放在同一行。在这些情况下,类型注释应该在其他 cmets 和 linting 标记之前:

# type: ignore # ~comment or other marker~

因此,正如 Ryan Tam 所建议的,# type: ignore # noqa 是忽略两者的正确方法。

【讨论】:

hmm... 似乎不适用于 mypy 和 pylint -- 他们都想先走 @shaunc - 现在似乎对我有用:# type: ignore # pylint: disable=E1137 这对我有用 Pylance 和 flake8,# type: ignore # noqa: F821

以上是关于设置 pyflake 和 mypy 忽略同一行的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Pyflakes 忽略一条语句?

使用 Eclipse 进行调试时如何忽略同一行中的类方法?

有没有办法完全忽略特定项目包中的所有 MyPy 错误?

mypy 忽略常规方法中的错误,但在 __init__ 中引发错误

linux 下的svn怎么设置忽略文件

git提交忽略文件或文件夹