関数のMcCabe循環的複雑度を計算し、flake8プラグインとして複雑すぎるコードを検出するPythonツールです。
MartinThoma/flake8-simplify
isinstance呼び出しの統合やifブロックの三項演算子への置き換えなど、より簡潔に書けるPythonコードを指摘するflake8プラグイン。
- スター
- 195
- フォーク
- 22
- 未解決の Issue
- 59
- 最終コミット
- 6 日前
これは何?
flake8-simplifyは、Pythonのリンターであるflake8用のプラグインです。ネストしたif文の統合、contextlib.suppressで置き換えられるtry/except/passブロック、enumerateを使える手動のループカウンターなど、より短く、または慣用的に書けるコードパターンを指摘するルールを追加します。
各ルールはSIM101やSIM108のようなコードと、該当箇所およびメッセージを報告するため、ほかのflake8チェックと同じワークフローで利用できます。パッケージをインストールしてflake8を実行するだけでルールが有効になり、標準のflake8設定で個別のコードを無視できます。新しいルールは、安定版のコードが割り当てられるまで、試験期間としてSIM9プレフィックスで公開されます。
このパッケージはPython 3.10〜3.14に対応しており、pipでインストールできます。以前は含まれていた一部のルールは、別プロジェクトのflake8-screamに移動しました。
主な機能
- 01統合できるネストしたif文を検出する。
- 02冗長なコードの代わりに、三項演算子、any()、all()、dict.get()を提案する。
- 03contextlib.suppressで置き換えられるtry/except/passブロックを指摘する。
- 04enumerateに置き換えられる手動のインデックスカウンターを報告する。
- 05ルールごとの無視設定に対応した、標準的なflake8プラグインとして動作する。
ユースケース
- コードレビューやリファクタリングでPythonコードベースを整理する。
- チームのflake8設定で、より簡潔なコーディングパターンを徹底する。
- 冗長なパターンをより短く書く方法を確認し、Pythonの慣用的な書き方を学ぶ。
クイックスタート
- 1
pipでプラグインをインストールします
pip install flake8-simplify - 2
プロジェクトでflake8を実行して、簡略化のヒントを確認します
flake8 .
使う前に知っておきたいこと
- 実験的なSIM9xxルールは、試験期間終了後に変更または名称変更される場合があります。
収録されている特集
トピック
よくある質問
- flake8-simplify とは?
- isinstance呼び出しの統合やifブロックの三項演算子への置き換えなど、より簡潔に書けるPythonコードを指摘するflake8プラグイン。 flake8-simplifyは、Pythonのリンターであるflake8用のプラグインです。ネストしたif文の統合、contextlib.suppressで置き換えられるtry/except/passブロック、enumerateを使える手動のループカウンターなど、より短く、または慣用的に書けるコードパターンを指摘するルールを追加します。
- flake8-simplify は無料で使えますか?ライセンスは?
- flake8-simplify は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- flake8-simplify は今もメンテナンスされていますか?
- 活発にメンテナンス中。flake8-simplify の最終コミットは 2026年11月1日 です。
- flake8-simplify は何に使えますか?
- コードレビューやリファクタリングでPythonコードベースを整理する。 チームのflake8設定で、より簡潔なコーディングパターンを徹底する。 冗長なパターンをより短く書く方法を確認し、Pythonの慣用的な書き方を学ぶ。
- flake8-simplify のインストール方法は?
- pipでプラグインをインストールします: pip install flake8-simplify プロジェクトでflake8を実行して、簡略化のヒントを確認します: flake8 .
- flake8-simplify はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/MartinThoma/flake8-simplify
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
一貫性のあるシンプルなPythonのコードスタイルを徹底し、複雑なコードパターンを検出する、厳格で独自の方針を持つflake8プラグイン。
PyFlakes、pycodestyle、McCabeを1つのコマンドにまとめ、サードパーティ製プラグインにも対応するPythonリンターです。
Pythonのimportを選択したスタイルガイドに沿ってグループ分け・整列できているかをチェックする、flake8およびPylama用プラグイン。
複数プロジェクトで共通の設定を適用し、設定ファイルを自動修正できるコマンドラインツール兼flake8プラグイン。
Rust製の超高速Pythonリンター/フォーマッター。900以上のlintルールを備え、Black互換のフォーマットに対応します。