祢占堂

はい

flake8 で Python のコードをチェックするときにオプションを渡すやつ

いつの間にか pep8 の 79 文字制限のところがゆるくなってたのを教えてもらった。

チーム内で合意がとれるならまあいいんじゃね、的な感じ。

はい

flake8 という便利なやつがこれをチェックしてくれるけど、デフォルトは 79 文字なので引数とか設定ファイルで文字数を変えてやる必要がある。

Jenkins とかのビルドサーバーなら、コマンドに引数でいいんだけど、ローカルでチェックしたいときちょっとだるい。

http://flake8.readthedocs.org/en/latest/config.html#global

[flake8]
max-line-length = 99

こういうのを ~/.config/flake8 に置けばいいけど、これだとチームごとに max-line-length とか違う場合に対応できない。

~/.config/flake8 というパスは flake8 の --config オプションで変えられるけど、vimrc で保存時に自動チェックするようにしてるので、動的に今いるプロジェクトの config のパスを与えるのがよくわからない。

autocmd FileType python autocmd BufWritePost <buffer> :!flake8 %

と思ってたら

setup.cfg でできた。~/.config/flake8 と同じ記法でプロジェクトのルートに置けばいい。setup.py も tox.ini もないプロジェクトあるのでどうかと思ってたんだけど、setup.py なくても setup.cfg で問題なかった。

http://flake8.readthedocs.org/en/latest/config.html#per-project

あと

flake8 はチェックをスルー死体業したい行に # NOQA って書くと無視してくれて便利。あまり使わないけど、Django の settings を階層化するのはよくやるので、そのときにはないと死ぬ。

おまけ