【问题标题】:How can I package type stubs for another package?如何为另一个包打包类型存根?
【发布时间】:2020-10-05 06:24:34
【问题描述】:

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 mypy


【解决方案1】:

您的尝试似乎是完美的,但是在命名由您的存根分发包安装的 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 2011-03-04
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    相关资源
    最近更新 更多