python - 强制 mypy 对第三方包进行类型检查

标签 python mypy

我使用的是完全类型感知的第三方包(在本例中为 jsonrpcserver,尽管此问题可能适用于其他包),甚至包含 py.typed 文件在其来源中。

但是,由于打包错误,py.typed 文件未安装。

结果,mypy 坚持

error: Skipping analyzing 'jsonrpcserver.response': found module but no type hints or library stubs

尽管我可以说该模块确实有类型提示。有没有办法可以强制 mypy 分析这个包,即使它缺少py.typed?我不必为此目的创建 stub 库,因为该包是类型感知的。

最佳答案

我不知道有什么好的方法可以做到这一点。 this mypy github issue中有一些讨论关于为此目的引入一个标志,但目前还没有。

目前一个不太好的方法是在运行 mypy 之前自己创建 py.typed 文件(提到 here )。也许作为设置测试环境或类似环境的脚本的一部分。

获取该文件的正确路径:

python -c 'import jsonrpcserver; print(jsonrpcserver.__path__[0] + "/py.typed")'

关于python - 强制 mypy 对第三方包进行类型检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67227275/

相关文章:

python - PyCharm 没有为类插入文档字符串 stub ?

python - 难以导入 .dat 文件

python - python 泛型函数的最佳实践

python - 如何在 python 中输入提示枚举值,绑定(bind)到某些协议(protocol)

python - 在处理列表和使用 mypy 时如何减少冗长?

python - 如何注释数据类中的字段类型与其__init__的类型不同?

python - django中的身份验证功能使用散列密码而不是原始密码

python - 使用 Scikit-learn 标记预处理文本

python - 如何从头开始为 BIOES/BILOU 格式的自定义多类 StandfordNLP/Stanza NER 标记模型构建训练数据集?

python输入: overload vs TypeVar