Umi Uyuraのブログ

プログラミング関連の作業ログ

pylintで2スペースインデント用の設定

Pythonの標準的なコーディング規約であるPEP8では、インデントは4スペースと定められています。

PEP 8 -- Style Guide for Python Code | Python.org

個人的には、しばらくメインで書いていたJavaScriptを2スペースでやっていたこともあって、なんとなくPython書くときは2スペースインデントで書いているのですが、そうすると静的チェックで使っているpylintでいくつかエラーが発生してしまいます。

umi-uyura.hatenablog.com

そこで以下の点を変更することで、2スペース用の設定にすることができました。

[FORMAT]

...

# String used as indentation unit. This is usually "    " (4 spaces) or "\t" (1
# tab).
indent-string='  '

# Number of spaces of indent required inside a hanging  or continued line.
indent-after-paren=2

...

インデントを2スペースとする

2スペースのインデントで発生したエラーは、 Bad indentation. Found 2 spaces, expected 4 [bad-indentation] というものでした。

この場合は indent-string の設定を、デフォルトでは ' ' とスペース4つとなっているため、 ' ' とスペース2つにすることで、上記エラーにならないようになりました。

括弧に続く行のインデントも2スペースとする

indent-after-paren もデフォルトは 4 なのですが、そのままでは以下のように次の行に継続するような場合のインデントを2スペースにすると、 Wrong hanging indentation (add 2 spaces). [bad-continuation] という警告が出てしまいます。

my_list = [
  1, 2, 3,
  4, 5, 6,
]

そこで、ここも 2 を設定しておくことで、エラーとならなくなりました。

参考