Bra*_*roy 10 python setuptools typed pyproject.toml
根据我的阅读,为了确保代码的类型信息与代码一起分发以供 linter 读取,该py.typed文件应该是您的分发的一部分。
我找到了如何将这些添加到setup.py的答案,但我不清楚 1. 是否应将其包含在 pyproject.toml 中(使用 setuptools),2. 如果是,应如何添加。
搜索他们的 github 存储库,似乎这不会自动添加,所以问题仍然是我应该如何将它添加到我的 pyproject.toml 中。我发现了这个一般性讨论,package_data但它包括对include_package_data和 a 的引用MANIFEST.in,从那里开始,什么应该去哪里会让人感到困惑。
Tl;dr:使用 setuptools 时应该如何包含py.typed在 pyproject.toml 中?
小智 9
是的,您应该添加py.typed到包的源文件夹(与 相同级别__init__.py)。这会通知类型检查器(例如mypy)您的包支持类型。参见PEP 561。
这是 中需要什么的示例pyproject.toml。替换pkgname为您的包的名称。
[tool.setuptools.package-data]
"pkgname" = ["py.typed"]
Run Code Online (Sandbox Code Playgroud)
值得注意的是,包发现使用:
[tool.setuptools.packages.find]
where = ["src"]
Run Code Online (Sandbox Code Playgroud)
似乎是必需的,可惜package-data不会有任何效果,如setuptools文档中所述: https: //setuptools.pypa.io/en/latest/userguide/datafiles.html#package-data