2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

開発を効率化するPython自動整形ツール:`flake8`と`Black`

Posted at

開発を効率化するPython自動整形ツール:flake8Black

はじめに

定年退職後の備忘録としてまとめたものです。

Pythonのスタイルガイド(PEP 8)を手作業で守るのは大変です。そこで、コーディング規約のチェックやコードの自動整形を行ってくれる便利なツールが活躍します。ここでは、代表的なツールであるflake8Blackの使い方を、簡単な例を交えながら紹介します。

1. flake8:スタイルガイドのチェックツール

flake8は、あなたの書いたコードがPEP 8に準拠しているかをチェックしてくれるツールです。コードを修正する機能はなく、どこがルール違反しているかを教えてくれます。

インストール方法

pip install flake8

使い方

以下の内容をexample.pyとして保存します。あえてPEP 8に違反したコードにしています。

example.py

def my_func( a, b ):
    x=a+b
    return x

コマンドラインで以下のコマンドを実行します。

flake8 example.py

実行結果は以下のようになります。

example.py:1:14: E231 missing whitespace after ','
example.py:1:15: W292 no newline at end of file
example.py:2:5: E225 missing whitespace around operator
example.py:2:7: E225 missing whitespace around operator
  • example.py:1:14: E231example.pyの1行目14文字目にE231というエラーがあることを示しています。
  • E231E225 は、PEP 8で定義されたエラーコードです。これらのコードを検索することで、どのルールに違反しているか詳細がわかります。

2. Black:妥協なきコードフォーマッター

Blackは、コードのフォーマットを自動で修正してくれるツールです。PEP 8などのルールに従い、統一されたスタイルに自動整形します。Blackは、設定項目がほとんどなく、「妥協なきフォーマッター」と呼ばれるほど、開発者の好みに左右されず、一貫したスタイルを適用します。

インストール方法

pip install black

使い方

先ほど使用したexample.pyBlackで整形してみましょう。

example.py (整形前)

def my_func( a, b ):
    x=a+b
    return x

コマンドラインで以下のコマンドを実行します。

black example.py

Blackはファイルを直接上書きします。example.pyの中身が以下のようになります。

example.py (整形後)

def my_func(a, b):
    x = a + b
    return x
  • 引数リストの空白や演算子の周りの空白が自動で修正されました。
  • Blackはコードの構文を解析して整形するため、単純な置換ツールよりも賢く動作します。

まとめ:どちらを使うべきか?

  • flake8コードレビューCI/CDパイプラインで、コーディング規約に違反している箇所を検知したい場合に適しています。
  • Black日常的な開発で、手作業で整形する手間をなくし、常に統一されたコードスタイルを保ちたい場合に適しています。

両者は併用することが多いです。開発者はBlackでコードを整形し、CI/CDでflake8を使って、Blackがカバーしきれないルール違反(未使用の変数など)をチェックするというワークフローが一般的です。これらのツールを導入することで、スタイルに関する議論の時間を減らし、本質的な開発に集中できるようになります

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?