【问题标题】:pylint duplicate code false positivepylint 重复代码误报
【发布时间】:2015-03-23 09:09:27
【问题描述】:

我的一个项目的(许多)Python 文件中有此代码。

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from pprint import pformat

Pylint 抱怨说:

==ook:2
==eek:2
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from pprint import pformat (duplicate-code)

虽然是真的,但完全无关紧要。 from __future__ [...] 行是来自Python 2 to Python 3to prevent compatibility regressions。因此,pylint 不应该抱怨它们在不同的文件中是相似的。

有没有办法阻止 pytlint 这样做?

我知道pylint: disable=duplicate-code,但由于导入范围,这将在整个文件中禁用它。但是,我不想为整个文件禁用它。

【问题讨论】:

  • @tobias_k: from modile import *非常糟糕的做法,不应使用。附带说明一下,pylint 会用 wildcard-import 错误来抱怨这一点。正如您所说,__future__ 不适用于通配符导入。

标签: python pylint


【解决方案1】:

Pylint 相似性配置

尝试更改pylintrc config filesimilarities 部分中的ignore-imports

默认pylintrc:

[SIMILARITIES]

# Minimum lines number of a similarity.
min-similarity-lines=4

# Ignore comments when computing similarities.
ignore-comments=yes

# Ignore docstrings when computing similarities.
ignore-docstrings=yes

# Ignore imports when computing similarities.
ignore-imports=no

【讨论】:

  • @Sardathrion 尝试做pylint /path/to/project/ --ignore-imports=no未测试),但真的很高兴能够访问配置文件中的所有选项.如果您运行pylint --generate-rcfile,它将打印出您可以更改的默认选项。只需将文件保存在代码目录中即可。
  • @Sardathrion 或任何有类似问题的人:我们也这样做。从 Scons 或其他脚本启动 pylint 时,您可以使用参数“--rcfile=tools/pylintrc”。 tools/pylintrc 是我们项目树的一部分。
  • 设置 ignore-imports=yes 忽略导入。
猜你喜欢
  • 1970-01-01
  • 2015-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-23
  • 2014-01-19
  • 2020-11-21
  • 1970-01-01
相关资源
最近更新 更多