Линтер Python, объединяющий PyFlakes, pycodestyle и McCabe в одной команде и поддерживающий сторонние плагины.
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
Установите плагин с помощью pip
python -m pip install flake8-comprehensions - 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 обновляется ежедневно.
Похожие проекты
Строгий и принципиальный плагин для flake8: поддерживает единый стиль Python и выявляет сложные конструкции кода.
Плагин для Flake8, который находит вероятные баги и сомнительные шаблоны проектирования, не проверяемые pyflakes и pycodestyle.
Инструмент для Python, который вычисляет цикломатическую сложность Маккейба функций и отмечает слишком сложный код как плагин flake8.
Плагин для flake8, который находит Python-код, который можно упростить: например, объединить вызовы isinstance или заменить блоки if тернарными выражениями.
Плагин для flake8, который выявляет небезопасные и неудачные шаблоны кода на Python, например использование exec и небезопасную десериализацию.