Repolode
adamchainz

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

    pipでプラグインをインストールします

    python -m pip install flake8-comprehensions
  2. 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 の数値は毎日更新されます。

関連プロジェクト