如何为另一个包打包类型存根



Python包Flask HTTPAuth有类型注释,也可能不会有类型注释(源代码(。我想创建它们,并将它们作为mypy上的包提供,而不需要分叉项目。我已经创建了一个flask httpauth stubs包。

我需要做什么来告诉mypy这个包提供了Flask HTTPAuth的存根?

我如何测试

代码.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或短划线/下划线有问题。同样的结果。

您的尝试在其他方面似乎非常完美,但在stubs分发包安装的Python包的命名中出现了一个小错误。由于代码在名为"的Python包中;flask_httpauth";(带下划线(存根必须在名为"的Python包中;flask_httpauth-stubs";,即与"-短截线";附件。

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

我检查过,当使用以下小更改安装存根时,您的示例code.py可以进行正确的类型检查:

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

最新更新