LoginSignup
15
14

More than 3 years have passed since last update.

flake8についてのアウトプット

Posted at

こんにちは!
現在インターン先でプログラミングの勉強をしている大学三回生です。
今回は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のコードをチェックする

Pythonのスタイルガイドとそれを守るための各種Lint・解析ツール5種まとめ!

flake8を使ってPythonプロジェクトを自動コードレビューする

15
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
14