自托管的代码质量与安全平台,扫描项目中的缺陷、漏洞和可维护性问题,并可在 CI 流程中设置质量门禁。
econchick/interrogate
一款 Python 命令行工具,统计代码库中函数、类、方法和模块的 docstring 覆盖率,并可设置通过阈值用于 CI。
- Star
- 678
- Fork
- 58
- 未关闭 Issue
- 42
- 最近提交
- 5天前
这是什么?
interrogate 扫描 Python 源代码,报告哪些模块、类、方法和函数带有 docstring,哪些没有,并给出项目、文件或对象级别的覆盖率百分比。团队可以借此了解代码文档的完善程度,并找到缺漏之处。
除了统计报告,它还可以用于强制执行。覆盖率低于设定阈值(默认 80%,可通过 --fail-under 调整)时命令以失败状态退出,因此很容易加入 CI 流程或 pre-commit 钩子,要求新增代码必须写文档。输出形式包括汇总表格、逐对象的详细视图,以及适合脚本使用的静默模式。
配置可写在 pyproject.toml 或 setup.cfg 中。用户可以忽略 __init__ 方法、魔术方法、私有或嵌套对象、setter 以及 @overload 函数,也能排除指定路径,并用正则表达式筛选名称。工具支持 Sphinx 和 Google 两种 docstring 风格,还能生成 SVG 或 PNG 格式的 shields.io 风格覆盖率徽章。支持 Python 3.8 及以上版本。
核心功能
- 01统计模块、类、方法和函数的 docstring 覆盖率。
- 02覆盖率低于可配置阈值时以失败状态退出,便于接入 CI。
- 03提供汇总、详细和静默三种输出模式。
- 04可忽略魔术方法、私有或嵌套对象等特定类型。
- 05支持 Sphinx 和 Google 两种 docstring 风格。
- 06生成 SVG 或 PNG 格式的 shields.io 风格覆盖率徽章。
适用场景
- 通过 CI 任务或 pre-commit 钩子强制新代码编写 docstring。
- 评估一个陌生 Python 项目的文档完善程度。
- 在项目 README 中展示文档覆盖率徽章。
- 在文档补齐工作中逐文件追踪缺漏。
快速上手
- 1
使用 pip 从 PyPI 安装 interrogate
pip install interrogate - 2
对 Python 项目路径运行 interrogate 检查文档字符串覆盖率
interrogate [PATH]
使用前须知
- 仅检测文档字符串是否存在,不评估其质量。
- 生成 PNG 徽章需要额外的系统库,例如 cairo。
收录于专题
标签
常见问题
- interrogate 是什么?
- 一款 Python 命令行工具,统计代码库中函数、类、方法和模块的 docstring 覆盖率,并可设置通过阈值用于 CI。 interrogate 扫描 Python 源代码,报告哪些模块、类、方法和函数带有 docstring,哪些没有,并给出项目、文件或对象级别的覆盖率百分比。团队可以借此了解代码文档的完善程度,并找到缺漏之处。
- interrogate 可以免费使用吗?用的什么许可证?
- interrogate 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- interrogate 还在维护吗?
- 活跃维护中。interrogate 最近一次提交是在 2026年11月2日。
- interrogate 适合用来做什么?
- 通过 CI 任务或 pre-commit 钩子强制新代码编写 docstring。 评估一个陌生 Python 项目的文档完善程度。 在项目 README 中展示文档覆盖率徽章。 在文档补齐工作中逐文件追踪缺漏。
- interrogate 怎么安装和运行?
- 使用 pip 从 PyPI 安装 interrogate: pip install interrogate 对 Python 项目路径运行 interrogate 检查文档字符串覆盖率: interrogate [PATH]
- 在哪里获取 interrogate?
- 源代码和安装说明在 GitHub 上:https://github.com/econchick/interrogate
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
用于检查 Swift 代码风格与编码规范的 linter,内置 200 多条规则,可按项目配置。
一款自动将 Python 文档字符串格式化为 PEP 257 规范的命令行工具。
面向 Ruby 的变异测试工具,自动修改代码并找出测试未能捕获的改动。
一款命令行文本检查工具,把团队的写作规范转为检查规则,可在编辑器、CI 和代码中离线运行。
本地运行、结果确定的重复代码检测工具,可识别被 AI 重复编写的函数,即使标识符已被改名。