Repolode
tonybaloney

tonybaloney/wily

CLI-инструмент, который проходит по истории Git и отслеживает, как со временем меняются сложность и метрики Python-кода.

Звёзды
1,336
Форки
73
Открытые issues
43
Последний коммит
11 дней назад

Что это?

Wily — CLI-приложение для измерения метрик Python-кода в динамике. Оно проходит по всем ревизиям ветки с помощью Git, вычисляет метрики сложности и анализа кода для файлов на каждом коммите и сохраняет результаты в локальный кэш в каталоге .wily/.

С помощью этого кэша можно посмотреть, как между ревизиями изменились такие метрики, как цикломатическая сложность, индекс сопровождаемости, метрики Halstead или количество строк кода, отсортировать файлы по выбранной метрике или открыть в браузере график её изменений. Команда diff сравнивает текущие файлы с выбранной ссылкой Git, поэтому её можно использовать как pre-commit hook или проверку в CI.

Метрики сгруппированы по операторам: cyclomatic, cognitive, maintainability, halstead и raw. Их можно настроить в файле wily.cfg. Jupyter-ноутбуки сканируются по умолчанию; при необходимости можно выводить метрики отдельно для каждой ячейки.

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

  • 01Создаёт кэш метрик, проходя по коммитам ветки Git.
  • 02Показывает изменения метрик между ревизиями с помощью wily report.
  • 03Сортирует файлы в каталоге по выбранной метрике.
  • 04Строит графики изменения метрик и открывает их в браузере с помощью wily graph.
  • 05Сравнивает текущий код с любой ссылкой Git с помощью wily diff.
  • 06Сканирует Python-код в ноутбуках .ipynb, при необходимости — отдельно по ячейкам.

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

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

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

  1. 1

    Установите wily из PyPI с помощью pip

    pip install wily
  2. 2

    Создайте кэш wily для папки с исходным кодом в репозитории git

    wily build src/
  3. 3

    Сформируйте отчет об изменениях сложности проанализированных файлов

    wily report src/

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

  • Анализирует только код на Python.
  • Для отслеживания истории нужен репозиторий git, а для создания кэша рабочая копия должна быть чистой.

В подборках

Темы

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

Что такое wily?
CLI-инструмент, который проходит по истории Git и отслеживает, как со временем меняются сложность и метрики Python-кода. Wily — CLI-приложение для измерения метрик Python-кода в динамике. Оно проходит по всем ревизиям ветки с помощью Git, вычисляет метрики сложности и анализа кода для файлов на каждом коммите и сохраняет результаты в локальный кэш в каталоге .wily/.
wily можно использовать бесплатно? Какая у него лицензия?
wily распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
wily всё ещё поддерживается?
Активно поддерживается. Последний коммит в wily — 28 окт. 2026 г..
Для чего можно использовать wily?
Отслеживание изменений сложности Python-кода по истории коммитов. Настройка проверки в CI или pre-commit, которая завершится ошибкой, если изменения повышают сложность по сравнению с предыдущей ревизией. Поиск самых сложных файлов проекта, чтобы определить приоритеты рефакторинга. Отслеживание тенденций качества кода в проектах для анализа данных на базе Jupyter.
Как установить wily?
Установите wily из PyPI с помощью pip: pip install wily Создайте кэш wily для папки с исходным кодом в репозитории git: wily build src/ Сформируйте отчет об изменениях сложности проанализированных файлов: wily report src/
Где скачать wily?
Исходный код и инструкции по установке — на GitHub: https://github.com/tonybaloney/wily

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

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

Мультиъязычный CLI на Rust, который запускает линтеры, автоформаттеры, сканеры безопасности и проверки поддерживаемости кода с помощью одного инструмента и конфигурационного файла.

3,2 тыс.+6 за неделю276COtherАктивно поддерживаетсяОбновлён 20 часов назад