`pylint`:如何为标签或空格缩进启用错误?

时间:2017-04-04 19:46:09

标签: python indentation pylint static-code-analysis linter

我正在尝试强制执行一些简单的python格式规则。我找到pylint,我一直很开心。但是,我需要强制执行的一个更简单的格式检查是:仅限制表符或仅限空格的缩进。

pylint中,如何为标签或空格缩进启用错误或警告?

我看到pylintw0311 "Used when an unexpected number of indentation's tabulations or spaces has been found"。但w0311不强制仅限制表符或仅限空格......它仍然支持制表符或空格。

我需要所有的python文件只是一种缩进类型。

P.S。如果您很好奇我如何使用pylint来执行我的规则。我有一个运行pylint的shell脚本,我使用set -o errexit,这与构建相关联。因此,如果pylint发现某些内容以非零值退出并导致构建失败。

1 个答案:

答案 0 :(得分:2)

你正在寻找的可能是这样的:

mixed-indentation (W0312): Found indentation with %ss instead of %ss Used when there are some mixed tabs and spaces in a module.

在以下情况下提出:

  

<强>描述

     

当模块中有一些混合制表符和空格时使用。

     

<强>解释

     

Python以不同方式解释制表符和空格,因此保持一致   缩进对正确解释块的关键至关重要   Python语法。

     

当使用空格和制表符的混合时会引发此警告   缩进 - 或者更准确地说,当检测到缩进时没有缩进   与indent-string选项一致。默认情况下,缩进字符串是   设置为四个空格,在PEP 8中推荐缩进的样式。

编辑#1:

Pylint没有我知道的(以及当下)选项来强制执行&#34;只有编码风格的标签/空格。上面提到的W0312用于警告代码中的缩进不一致。

我用一种技巧来强制缩进:在PyCharm上打开你的项目(也可以免费使用社区版)如果IDE检测到不一致,它会警告你关于它们的内容,它会给你一个更改当前文件缩进的选项,或保持原样!