Плагин для flake8, который находит Python-код, который можно упростить: например, объединить вызовы isinstance или заменить блоки if тернарными выражениями.
PyCQA/mccabe
Инструмент для Python, который вычисляет цикломатическую сложность Маккейба функций и отмечает слишком сложный код как плагин flake8.
- Звёзды
- 684
- Форки
- 70
- Открытые issues
- 12
- Последний коммит
- 26 дней назад
Что это?
mccabe измеряет сложность кода на Python по Маккейбу (цикломатическую сложность) — числу независимых путей выполнения функции. Высокие значения указывают на функции, которые трудно читать и тестировать. Проект можно запускать как отдельный модуль для файла: он выводит функции, сложность которых превышает заданный порог.
Также mccabe работает как плагин для flake8 — анализатора кода Python. После установки плагин по умолчанию отключён; его можно включить с помощью параметра --max-complexity, который выдаёт предупреждение C901 для каждой функции, сложность которой превышает заданное значение.
Проект развивается в организации PyCQA и поддерживает актуальные версии Python 3. В релизе 0.7.0 прекращена поддержка версий Python ниже 3.6.
Ключевые возможности
- 01Вычисляет цикломатическую сложность Маккейба для функций и методов на Python.
- 02Запускается как отдельная команда через python -m mccabe с порогом --min.
- 03Интегрируется с flake8 через параметр --max-complexity и выдаёт предупреждения C901.
- 04Поддерживает синтаксис async/await и актуальные версии Python 3.
Сценарии использования
- Выявление слишком сложных функций при проверке кода или в непрерывной интеграции.
- Установка ограничения на сложность во всём проекте Python с помощью конфигурации flake8.
- Поиск самых сложных функций в модуле перед рефакторингом.
Быстрый старт
- 1
Установите mccabe из PyPI с помощью pip
pip install mccabe - 2
Запустите автономную проверку для файла Python, чтобы вывести список самых сложных функций
python -m mccabe --min 5 mccabe.py - 3
Используйте его как плагин flake8, задав максимальную сложность
flake8 --max-complexity 10 coolproject
Что важно знать
- Лицензия явно не указана в метаданных проекта, поэтому перед коммерческим использованием проверьте файл лицензии.
- Проверки плагина по умолчанию отключены; для их включения укажите --max-complexity.
В подборках
Темы
Частые вопросы
- Что такое mccabe?
- Инструмент для Python, который вычисляет цикломатическую сложность Маккейба функций и отмечает слишком сложный код как плагин flake8. mccabe измеряет сложность кода на Python по Маккейбу (цикломатическую сложность) — числу независимых путей выполнения функции. Высокие значения указывают на функции, которые трудно читать и тестировать. Проект можно запускать как отдельный модуль для файла: он выводит функции, сложность которых превышает заданный порог.
- mccabe можно использовать бесплатно? Какая у него лицензия?
- mccabe распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- mccabe всё ещё поддерживается?
- Активно поддерживается. Последний коммит в mccabe — 12 окт. 2026 г..
- Для чего можно использовать mccabe?
- Выявление слишком сложных функций при проверке кода или в непрерывной интеграции. Установка ограничения на сложность во всём проекте Python с помощью конфигурации flake8. Поиск самых сложных функций в модуле перед рефакторингом.
- Как установить mccabe?
- Установите mccabe из PyPI с помощью pip: pip install mccabe Запустите автономную проверку для файла Python, чтобы вывести список самых сложных функций: python -m mccabe --min 5 mccabe.py Используйте его как плагин flake8, задав максимальную сложность: flake8 --max-complexity 10 coolproject
- Где скачать mccabe?
- Исходный код и инструкции по установке — на GitHub: https://github.com/PyCQA/mccabe
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Линтер Python, объединяющий PyFlakes, pycodestyle и McCabe в одной команде и поддерживающий сторонние плагины.
Строгий и принципиальный плагин для flake8: поддерживает единый стиль Python и выявляет сложные конструкции кода.
Плагин для flake8 и Pylama, который проверяет группировку и порядок импортов Python по выбранному стилю.
Однофайловый анализатор Python, который проверяет соответствие кода стилю PEP 8 и использует только стандартную библиотеку.
Плагин для Flake8, который находит вероятные баги и сомнительные шаблоны проектирования, не проверяемые pyflakes и pycodestyle.