Repolode
tonybaloney

tonybaloney/wily

一个命令行工具,遍历 git 提交历史,追踪 Python 代码复杂度等指标随时间的变化。

Star
1,336
Fork
73
未关闭 Issue
43
最近提交
10天前

这是什么?

Wily 是一个用于长期追踪 Python 代码质量的命令行工具。它借助 git 逐个遍历分支中的每次提交,对每个版本的文件运行复杂度和代码分析指标,并将结果缓存在项目的 .wily/ 目录中。

基于这些缓存,可以查看圈复杂度、可维护性指数、Halstead 指标或代码行数等指标在不同版本间的变化,按指标对文件排名,或在浏览器中绘制趋势图。diff 命令可将当前文件与指定的 git 引用对比,适合用作 pre-commit 钩子或 CI 检查。

指标按 operator 分组,包括 cyclomatic、cognitive、maintainability、halstead 和 raw,可通过 wily.cfg 文件配置。默认会扫描 Jupyter 笔记本,也可以选择按单元格进行报告。

核心功能

  • 01通过遍历分支中的 git 提交构建指标缓存。
  • 02使用 wily report 展示各版本之间的指标变化。
  • 03使用 wily rank 按指定指标对目录中的文件排名。
  • 04使用 wily graph 在浏览器中绘制指标趋势图。
  • 05使用 wily diff 将当前代码与任意 git 引用进行比较。
  • 06扫描 .ipynb 笔记本中的 Python 代码,可按单元格报告。

适用场景

  • 追踪 Python 项目随提交历史推进,复杂度是否不断上升。
  • 在 CI 或 pre-commit 检查中,当改动相对previous版本提高复杂度时使流程失败。
  • 找出项目中最复杂的文件,以确定重构优先级。
  • 监控基于 Jupyter 笔记本的数据科学项目的代码质量趋势。

快速上手

  1. 1

    使用 pip 从 PyPI 安装 wily

    pip install wily
  2. 2

    在 git 仓库中为源代码目录构建 wily 缓存

    wily build src/
  3. 3

    查看已分析文件的复杂度变化报告

    wily report src/

使用前须知

  • 仅支持分析 Python 代码。
  • 需要 git 仓库来追踪历史,且构建缓存时工作区必须干净。

收录于专题

标签

常见问题

wily 是什么?
一个命令行工具,遍历 git 提交历史,追踪 Python 代码复杂度等指标随时间的变化。 Wily 是一个用于长期追踪 Python 代码质量的命令行工具。它借助 git 逐个遍历分支中的每次提交,对每个版本的文件运行复杂度和代码分析指标,并将结果缓存在项目的 .wily/ 目录中。
wily 可以免费使用吗?用的什么许可证?
wily 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
wily 还在维护吗?
活跃维护中。wily 最近一次提交是在 2026年10月28日。
wily 适合用来做什么?
追踪 Python 项目随提交历史推进,复杂度是否不断上升。 在 CI 或 pre-commit 检查中,当改动相对previous版本提高复杂度时使流程失败。 找出项目中最复杂的文件,以确定重构优先级。 监控基于 Jupyter 笔记本的数据科学项目的代码质量趋势。
wily 怎么安装和运行?
使用 pip 从 PyPI 安装 wily: pip install wily 在 git 仓库中为源代码目录构建 wily 缓存: wily build src/ 查看已分析文件的复杂度变化报告: wily report src/
在哪里获取 wily?
源代码和安装说明在 GitHub 上:https://github.com/tonybaloney/wily

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目