Flake8 と Black について、自分なりに要点を整理しました。
Flake8(静的解析ツール)
Flake8とは?
- Pythonコードの 静的解析ツール
- コードのエラーやPEP8違反を 検出(修正はしない)
- 内部的に以下の3つのツールを統合している:
-
pyflakes
(構文エラー・未使用変数など) -
pycodestyle
(スタイル違反チェック) -
mccabe
(複雑度のチェック)
-
Flake8の導入
pip install flake8
Flake8の使い方(基本)
flake8 script.py
よく使うオプション
オプション | 内容 |
---|---|
--max-line-length=88 |
行の長さ制限を88文字に設定 |
--ignore=E501 |
特定のエラー(ここでは行が長すぎる)を無視 |
--exclude=venv |
特定のディレクトリを解析対象から除外 |
プラグイン例(必要に応じて拡張可能)
-
flake8-bugbear
:より詳細な品質チェック -
flake8-docstrings
:docstringのルールチェック -
flake8-import-order
:インポート順のチェック
インストール例:
pip install flake8-bugbear
Black(自動フォーマッタ)
Blackとは?
- コードを自動で整形してPEP8に準拠させるツール
- 誰が使っても同じスタイルに整形される(一貫性がある)
- 「意見のないフォーマッタ(The Uncompromising Code Formatter)」と呼ばれる
Blackの導入
pip install black
Blackの使い方(基本)
black script.py
よく使うオプション
オプション | 内容 |
---|---|
--check |
整形が必要かだけをチェック(変更はしない) |
--diff |
変更点の差分を表示 |
--line-length 88 |
最大行長を88文字に設定(デフォルト) |
Flake8とBlackの違い
項目 | Flake8 | Black |
---|---|---|
処理 | エラーを検出 | コードを整形 |
修正 | しない | 自動で行う |
行長のデフォルト | 79文字 | 88文字 |
主な目的 | スタイルや構文エラーのチェック | コードスタイルの統一 |
Flake8とBlackは併用について
Flake8でコードのスタイル違反や構文エラーを検出し、Blackでコードを自動整形するという流れで補完的に併用できます。
特にチーム開発やレビュー前の整備に便利です。
まとめ
- Flake8 はエラーを検出するツール、Black は整形するツール
- どちらも PEP8 に準拠するために使う
- 「どちらが整形ツールか」「どちらがチェックツールか」などの役割の違いを覚えること