PyFlakes、pycodestyle、McCabeを1つのコマンドにまとめ、サードパーティ製プラグインにも対応するPythonリンターです。
adamchainz/flake8-comprehensions
不要または非効率な内包表記や組み込み関数の呼び出しパターンを検出するflake8プラグイン。
- スター
- 466
- フォーク
- 25
- 未解決の Issue
- 11
- 最終コミット
- 一昨日
これは何?
flake8-comprehensionsは、Pythonのリンターであるflake8のプラグインです。内包表記、ジェネレーター式、またはlist()、set()、dict()、tuple()の呼び出しが冗長な場合や、より直接的に書ける場合に検出します。たとえば、リスト内包表記で済むのにジェネレーターをlist()でラップしているケースや、dict()で辞書リテラルを囲んでいるケースが該当します。
各チェックはC4系の番号付きルールで、不要なジェネレーターを検出するC400や、短絡評価を妨げるany()またはall()内のリスト内包表記を検出するC419などがあります。flake8のselect設定にC4プレフィックスを追加すると、ルールを有効にできます。このプラグインにはPython 3.11以降が必要で、pipでインストールできます。
主な機能
- 01ジェネレーター、内包表記、リテラルを囲む冗長なlist()、set()、dict()、tuple()の呼び出しを検出します。
- 02短絡評価を妨げるany()やall()内のリスト内包表記を検出します。
- 03常に同じ値を代入する辞書内包表記に対して、dict.fromkeys()を提案します。
- 04lambdaを使ったmap()の呼び出しを、内包表記またはジェネレーター式に置き換えるよう推奨します。
- 05flake8と連携し、select設定がカスタマイズされていない限りデフォルトで有効です。
ユースケース
- すでにflake8を実行しているCIパイプラインで、Pythonコードベースをクリーンに保つ。
- リファクタリング時に、不要な中間リストや二重変換がないかコードを確認する。
- 自動リンティングのフィードバックを通じて、チームメンバーに慣用的な内包表記の書き方を教える。
クイックスタート
- 1
pipでプラグインをインストールします
python -m pip install flake8-comprehensions - 2
Flake8のselectオプションを設定している場合は、C4プレフィックスを追加してください。設定していない場合、プラグインはデフォルトで有効です
使う前に知っておきたいこと
- Python 3.11〜3.15が必要です。
収録されている特集
トピック
よくある質問
- flake8-comprehensions とは?
- 不要または非効率な内包表記や組み込み関数の呼び出しパターンを検出するflake8プラグイン。 flake8-comprehensionsは、Pythonのリンターであるflake8のプラグインです。内包表記、ジェネレーター式、またはlist()、set()、dict()、tuple()の呼び出しが冗長な場合や、より直接的に書ける場合に検出します。たとえば、リスト内包表記で済むのにジェネレーターをlist()でラップしているケースや、dict()で辞書リテラルを囲んでいるケースが該当します。
- flake8-comprehensions は無料で使えますか?ライセンスは?
- flake8-comprehensions は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- flake8-comprehensions は今もメンテナンスされていますか?
- 活発にメンテナンス中。flake8-comprehensions の最終コミットは 2026年11月4日 です。
- flake8-comprehensions は何に使えますか?
- すでにflake8を実行しているCIパイプラインで、Pythonコードベースをクリーンに保つ。 リファクタリング時に、不要な中間リストや二重変換がないかコードを確認する。 自動リンティングのフィードバックを通じて、チームメンバーに慣用的な内包表記の書き方を教える。
- flake8-comprehensions のインストール方法は?
- pipでプラグインをインストールします: python -m pip install flake8-comprehensions Flake8のselectオプションを設定している場合は、C4プレフィックスを追加してください。設定していない場合、プラグインはデフォルトで有効です
- flake8-comprehensions はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/adamchainz/flake8-comprehensions
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
一貫性のあるシンプルなPythonのコードスタイルを徹底し、複雑なコードパターンを検出する、厳格で独自の方針を持つflake8プラグイン。
pyflakesやpycodestyleがチェックしない、バグの可能性が高いコードや疑わしい設計パターンを検出するFlake8プラグイン。
関数のMcCabe循環的複雑度を計算し、flake8プラグインとして複雑すぎるコードを検出するPythonツールです。
isinstance呼び出しの統合やifブロックの三項演算子への置き換えなど、より簡潔に書けるPythonコードを指摘するflake8プラグイン。
execの使用や危険なデシリアライズなど、安全でないPythonのコーディングパターンを検出するflake8プラグイン。