我可以将自定义数据添加到 pyproject.toml 文件中吗

Amo*_*rit 5 python toml python-packaging pyproject.toml

我正在使用toml包来读取我的pyproject.toml文件。我想添加自定义数据,在本例中我将在docs/conf.py文件中读取这些数据。当我尝试添加自定义部分时,我从Vs Code 中的Even Better TOML扩展中收到错误和警告,指出不允许我的自定义数据。

示例 TOML 部分位于pyproject.toml

[custom.metadata]
docs_name = "GUI Automation for windows"
docs_author = "myname"
docs_copyright = "2023"
docs_url= "https://someurl.readthedocs.io/en/latest/"
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:是否有一种有效的方法将自定义数据添加到pyproject.toml文件中?

Bri*_*ian 6

使用[tool.*]桌子。

引用PEP 518

[tool]表是与 Python 项目相关的任何工具(不仅仅是构建工具)都可以让用户指定配置数据,只要他们使用 中的子表即可[tool],例如 flit 工具会将其配置存储在 中[tool.flit]

任何解释pyproject.toml文件的工具都期望[tool]子表包含任意的、特定于工具的元数据。使用您需要的任何项目元数据填充自定义子表应该不会有任何问题。

在你的情况下,类似这样的事情应该没有警告:

[tool.my_distribution_name]
docs_name = "GUI Automation for windows"
docs_author = "myname"
docs_copyright = "2023"
docs_url= "https://someurl.readthedocs.io/en/latest/"
Run Code Online (Sandbox Code Playgroud)

不允许创建您自己的自定义表,因为 PEP 518保留以下位置的所有顶级表pyproject.toml

本 PEP 中未指定的表保留供其他 PEP 将来使用。