できるだけシンプルにFlake8でPython修行

Contents
  1. はじめに
  2. 結論
  3. Flake8
  4. Flake8のプラグイン
  5. インストール
  6. Vimで使う
  7. おわりに

はじめに

この記事では Python の良い書き方を身につけるために Vim から Lint ツールを使う方法を紹介する。

Python は前から使う必要があるときに書いていたが、これから書く機会も増えるだろうから本格的に学ぼうと考えている。 そこで、良い書き方を身につけるために Lint 系のツールを導入した。

結論

Flake8 に以下のプラグインを入れて使うのが最強っぽい。

  • hacking
  • flake8-import-order
  • flake8-docstrings

Flake8

Flake8: Your Tool For Style Guide Enforcement — flake8 3.4.1 documentation

Flake8 は Python のコードチェックツールである。 複数のコードチェックツールのラッパーであり、つまり広範囲のコードチェックをやってくれる。

Python の Lint で調べると PEP 8 やら pyflakes やら色々見つかるが、とりあえず Flake8 だけ入れておけば良い。

参考:

Flake8のプラグイン

Flake8 はプラグイン機構を持っており、プラグインによってより厳しくチェックできる。

有名なプラグインに OpenStack の Style Guildelines のルールをチェックする hacking がある。 OpenStack Docs: hacking: OpenStack Hacking Guideline Enforcement

今回の目的は修行で厳しければ厳しいほどありがたいため以下のプラグインを導入した。

  • hacking
  • flake8-import-order
  • flake8-docstrings1
  • pep8-naming
  • flake8-double-quotes

参考: Python の Lint (文法チェッカ) まとめ - flake8 + hacking を使う - - Qiita

インストール

pip でインストールする。

pip install flake8 hacking flake8-import-order flake8-docstrings pep8-naming flake8-double-quotes

Vimで使う

とりあえずここではシンプルに、syntastic を使って保存時にチェックするようにする。 いろいろカスタマイズはできると思う。

~/.vimrc
" ...
NeoBundle 'scrooloose/syntastic'
" ...

let g:syntastic_mode_map = { 'mode': 'passive', 'active_filetypes': ['python'] }
let g:syntastic_python_checkers = ['flake8']

NeoBundle を使っている場合はこんな感じ。

参考:

おわりに

これでだめな書き方は指摘されるようになったので、指摘を潰していけばまぁまぁ良い書き方ができるようになるのではないかと思う。 Python 書いていくぞい 💪

Footnotes

  1. flake8-pep257 は古くてルールがコンフリクトしてる ↩