基于 Rust 的多语言代码质量命令行工具,用一个工具统一运行 lint、格式化、安全扫描和可维护性检查。
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
使用 pip 从 PyPI 安装 wily
pip install wily - 2
在 git 仓库中为源代码目录构建 wily 缓存
wily build src/ - 3
查看已分析文件的复杂度变化报告
wily report src/
使用前须知
- 仅支持分析 Python 代码。
- 需要 git 仓库来追踪历史,且构建缓存时工作区必须干净。
收录于专题
标签
#python#code-quality#complexity#static-analysis#git#cli#metrics#hacktoberfest#hacktoberfest-accepted#quality
常见问题
- 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 数据每日更新。
相关项目
3217+8 本周276COther维护活跃更新于 17小时前
一个计算 Python 函数 McCabe 圈复杂度的工具,可作为 flake8 插件使用,用于发现过于复杂的代码。
68470PythonOther更新于 26天前
一款 Python 静态代码分析工具,无需运行代码即可检查错误、执行编码规范并发现代码异味。
57451424PythonGPL-2.0维护活跃更新于 4天前
一款严格且观点鲜明的 flake8 插件,用于统一 Python 代码风格并标记复杂写法。
2944+3 本周439PythonMIT维护活跃更新于 昨天
一款 Python 静态检查工具,通过解析源码查找错误,不做代码风格检查。
1465+1 本周205PythonMIT维护活跃更新于 10天前
用于检查 Swift 代码风格与编码规范的 linter,内置 200 多条规则,可按项目配置。
2万2338SwiftMIT更新于 前天