こんにちは!
現在インターン先でプログラミングの勉強をしている大学三回生です。
今回はflake8について勉強する機会があったので、それについてアウトプットしていこうと思います。
基本調べたことを書いているだけなので、詳細を知りたい方は参考文献を載せておくのでそちらを御覧ください。
##flake8と何なのか
flake8とは「pep8のチェック、pyflakesのチェック、及び循環的複雑度をチェックできるラッパー」→(引用元)のことらしいです。
つまり、広範囲カバーしてくれるPythonのコードチェックツールですね!
flake8は下記コードチェックツールのラッパーとなります。
・PyFlakes(pyflakes : コードのエラーチェック)
・pycodestyle(pycodestyle : PEP8に準拠しているかチェック)
・Ned Batchelder’s McCabe script(mccabe : 循環的複雑度のチェック)
##flake8を使ってみよう!
では実際にflake8を使ってみましょう!
そのためには、まずflake8をインストール必要があります。
下記コマンドでインストールできます。
$ pip install flake8
実際に使用するときは
$ flake8 ファイル名
で実行できます。
また、ファイル名だけではなく、ディレクトリ名でも実行できます。
実際に僕のdjangoのblogsというアプリケーションで試してみたいと思います。
$ flake8 blogs
blogs/views.py:3:1: E302 expected 2 blank lines, found 1
blogs/views.py:4:47: W292 no newline at end of file
blogs/urls.py:7:2: W292 no newline at end of file
blogs/admin.py:5:1: W391 blank line at end of file
blogs/models.py:4:1: E302 expected 2 blank lines, found 1
blogs/models.py:11:26: W292 no newline at end of file
blogs/tests.py:1:1: F401 'django.test.TestCase' imported but unused
blogs/migrations/0001_initial.py:17:80: E501 line too long (114 > 79 characters)
このような結果が出てきます。
また、--show-sourceオプションをつけるとどこを修正すればいいのかわかりやすくなります。
では、実際に実行してみましょう。
$ flake8 --show-source blogs
blogs/views.py:3:1: E302 expected 2 blank lines, found 1
def index(request):
^
blogs/views.py:4:47: W292 no newline at end of file
return render(request, 'blogs/index.html') ^
blogs/urls.py:7:2: W292 no newline at end of file
] ^
blogs/admin.py:5:1: W391 blank line at end of file
^
blogs/models.py:4:1: E302 expected 2 blank lines, found 1
class Blog(models.Model):
^
blogs/models.py:11:26: W292 no newline at end of file
return self.title ^
blogs/tests.py:1:1: F401 'django.test.TestCase' imported but unused
from django.test import TestCase
^
blogs/migrations/0001_initial.py:17:80: E501 line too long (114 > 79 characters)
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
このようにさっきよりもわかりやすくなりました。
##まとめ
flake8を使用することで、より間違いも少なくでき、コードもきれいになるので頻繁に使っていこうと思います。
最後までお読みいただきありがとうございます。
もっと詳しく知りたい方は参考文献をお読みください。
##参考文献
Vimメモ : flake8でPythonのコードをチェックする