Repolode
adamchainz

adamchainz/flake8-comprehensions

Плагин для flake8, который находит лишние или неэффективные конструкции со списковыми, множественными, словарными и генераторными включениями, а также вызовы встроенных функций.

Звёзды
466
Форки
25
Открытые issues
11
Последний коммит
3 дня назад

Что это?

flake8-comprehensions — плагин для flake8, линтера Python. Он находит конструкции, в которых включения, генераторные выражения или вызовы list(), set(), dict() и tuple() избыточны либо их можно записать проще. Например, это обёртка генератора в list(), когда достаточно спискового включения, или вызов dict() для словарного литерала.

Каждая проверка — это правило с номером из семейства C4: например, C400 для ненужных генераторов и C419 для списковых включений внутри any() или all(), которые мешают досрочному завершению. Правила можно включить в настройке select для flake8, добавив префикс C4. Плагину требуется Python 3.11 или новее; установить его можно с помощью pip.

Ключевые возможности

  • 01Находит избыточные вызовы list(), set(), dict() и tuple() вокруг генераторов, включений и литералов.
  • 02Находит списковые включения в any() и all(), которые мешают досрочному завершению.
  • 03Предлагает использовать dict.fromkeys() для словарных включений, присваивающих одно и то же постоянное значение.
  • 04Рекомендует заменять вызовы map() с lambda на включения или генераторные выражения.
  • 05Интегрируется с flake8 и включён по умолчанию, если не настроен параметр select.

Сценарии использования

  • Поддержание чистоты кодовой базы на Python в CI-пайплайне, где уже запускается flake8.
  • Поиск ненужных промежуточных списков или двойных преобразований при рефакторинге.
  • Обучение команды идиоматичному использованию включений с помощью автоматических замечаний линтера.

Быстрый старт

  1. 1

    Установите плагин с помощью pip

    python -m pip install flake8-comprehensions
  2. 2

    Если вы задали параметр select в Flake8, добавьте к нему префикс C4; в противном случае плагин активен по умолчанию

Что важно знать

  • Требуется Python версий с 3.11 по 3.15.

В подборках

Темы

Частые вопросы

Что такое flake8-comprehensions?
Плагин для flake8, который находит лишние или неэффективные конструкции со списковыми, множественными, словарными и генераторными включениями, а также вызовы встроенных функций. flake8-comprehensions — плагин для flake8, линтера Python. Он находит конструкции, в которых включения, генераторные выражения или вызовы list(), set(), dict() и tuple() избыточны либо их можно записать проще. Например, это обёртка генератора в list(), когда достаточно спискового включения, или вызов dict() для словарного литерала.
flake8-comprehensions можно использовать бесплатно? Какая у него лицензия?
flake8-comprehensions распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
flake8-comprehensions всё ещё поддерживается?
Активно поддерживается. Последний коммит в flake8-comprehensions — 4 нояб. 2026 г..
Для чего можно использовать flake8-comprehensions?
Поддержание чистоты кодовой базы на Python в CI-пайплайне, где уже запускается flake8. Поиск ненужных промежуточных списков или двойных преобразований при рефакторинге. Обучение команды идиоматичному использованию включений с помощью автоматических замечаний линтера.
Как установить flake8-comprehensions?
Установите плагин с помощью pip: python -m pip install flake8-comprehensions Если вы задали параметр select в Flake8, добавьте к нему префикс C4; в противном случае плагин активен по умолчанию
Где скачать flake8-comprehensions?
Исходный код и инструкции по установке — на GitHub: https://github.com/adamchainz/flake8-comprehensions

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты