我想在我的 Python 包中的所有地方强制执行类型提示,并配置 CI 以在不是 100% 的情况下使构建失败。
有没有办法让我使用mypy或 Python 中的任何其他包来报告类型提示覆盖率,类似于我如何使用例如coverage.py检查代码覆盖率?
要求严格的 100% 类型提示覆盖率是否也明智?
有没有一种方法可以让我使用 mypy 或 Python 中的任何其他包来报告类型提示覆盖率,类似于我如何使用 Coverage.py 检查代码覆盖率?
是的,有很多标志禁止使用Any,以及缺少类型注释。或者,您可以仅传递标志--strict以禁止使用单个标志的大量有问题的构造。的精确定义--strict可能会随着时间的推移而改变,因此它可能不太适合 CI(即“为什么构建会损坏,我所做的只是安装一个新的mypy?”)。还有许多用于生成覆盖率报告的标志。
要求严格的 100% 类型提示覆盖率是否也明智?
这在很大程度上取决于您想要通过类型提示实现的目标,以及代码库的历史和当前状态。例如,如果您和您的所有开发人员同事都具有静态类型背景(即您以前使用静态类型语言(例如 C++ 和 Java)进行编程),并且您没有大量旧的 Python 代码需要支持,那么这可能会运作良好。另一方面,如果您有大量遗留代码(可能是在最后一刻从 Python 2 转换而来),或者如果您的许多开发人员习惯于动态类型,那么可能会存在更多的阻抗不匹配。如果您不确定这是否适合您,我建议您设置严格或不严格的单独 CI 构建。如果严格的提示始终为红色,而非严格的提示始终为绿色,则在启用强制类型提示之前,您可能需要克服技术或文化问题。
| 归档时间: |
|
| 查看次数: |
2879 次 |
| 最近记录: |