Agent Skills
返回列表
💻

Python类型覆盖率分析器

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/python-type-coverage-analyzer。

技能介绍

解决什么问题

Python 的类型注解是渐进式的:大型代码库中,mypy、pyright 这类静态检查器只检查已标注的部分,而 Any 会被静默放行。结果就是覆盖率无从量化:哪些函数签名没有参数类型?哪些返回类型缺失?哪些参数被 Any 吞掉了类型信息?手写脚本统计注解既容易漏报,也无法区分「故意用 Any 绕过」和「忘记标注」这两种情况。

工作原理

这个技能把覆盖率度量交给静态检查器本身,而不是用正则或 AST 猜测:

  • 基于 mypy --html-report:从 mypy 生成的 HTML 报告中提取类型检查结果,汇总未类型化的函数签名、缺失的返回类型和 Any 类型参数。
  • 结合 pyright 类型完整性评分:用 pyright 的 type completeness 打分作为交叉参照,两份报告互补,避免单一工具的盲区。
  • 定位到具体位置:报告指出问题函数与参数所在的文件和行号,而不是只给一个笼统的百分比。
  • 迭代式改进:按报告逐项补齐注解后重新运行,覆盖率变化可直接对照。

适用边界与注意点

  • 代码库需要能被 mypy 或 pyright 正常解析;运行时动态拼装的模块可能被跳过。
  • Any 不一定是错的,有时是合理的逃生舱,需要人工判断后再处理。
  • mypy 是静态检查器,它能发现 bug,但类型覆盖率提升不等于运行时正确性有保证。
  • 首次使用前,代码库应已有基础的 mypy 配置,否则报告结果可能不完整。

使用场景

  • 接手一个旧 Python 项目,想统计哪些函数缺少参数和返回值类型注解,评估全库覆盖情况。
  • CI 流水线接入类型检查后,需要快速定位本次改动中新增的 Any 类型参数和未标注函数签名。
  • 准备把项目从动态类型迁移到静态类型,先跑一次报告摸清未类型化函数的分布与规模。
  • 重构大型代码库之后,用 mypy 与 pyright 两份报告交叉核对类型完整性,确认没有遗漏返回类型。

适合人员

  • 后端工程师,正在为存量 Python 服务补全类型注解,需要快速定位未标注的函数签名和返回类型。
  • 工具链工程师,负责在 CI 中推广静态类型检查,需要定期输出类型覆盖率变化和 Any 类型清单。
  • 技术负责人,计划在团队内推行类型安全,想先摸清现有代码库的类型注解缺失分布再定迁移策略。