微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何包装另一个包装的存根?

如何解决如何包装另一个包装的存根?

Python包Flask-HTTPAuth可以并且可能不会具有类型注释(source)。我想创建它们并将它们作为软件包提供给mypy,而不用分叉该项目。我已经创建了flask-httpauth-stubs package

我需要怎么做才能告诉mypy该软件包提供了Flask-HTTPAuth的存根?

我如何测试

code.py:

from flask_httpauth import HTTPAuth

def autho(a: HTTPAuth):
    return a.get_auth()

然后:

$ pip install flask_httpauth flask_httpauth-stubs

$ mypy code.py

code.py:1: error: Skipping analyzing 'flask_httpauth': found module but no type hints or library stubs
code.py:1: note: See https://mypy.readthedocs.io/en/latest/running_mypy.html#missing-imports
Found 1 error in 1 file (checked 1 source file)

我还尝试过将包重命名flask_httpauth-stubs,以防CASE或破折号/下划线引起问题。结果相同。

解决方法

您的尝试在其他方面似乎只是完美的选择,但在存根分发软件包安装的Python软件包的命名中存在一个小错误。由于代码位于名为“ flask_httpauth”的Python包中(带有下划线),因此存根必须位于名为“ flask_httpauth-stubs”的Python包中,即名称完全相同,并附加“ -stubs”。

我创建了一个拉取请求,用于修复您的存根包: https://github.com/MartinThoma/flask-httpauth-stubs/pull/1

我检查了您的示例code.py是否可以通过以下较小更改安装存根时进行类型检查:

$ mypy code.py 
Success: no issues found in 1 source file

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。