我使用的是完全类型感知的第三方包(在本例中为 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/