PEP 808:在动态项目元数据中包含静态值

PEP 808:在动态项目元数据中包含静态值

💡 原文英文,约2700词,阅读约需10分钟。
📝

内容提要

PEP 808 提议放宽 pyproject.toml 中动态元数据的限制,允许在项目表中定义静态部分。这将增强静态工具的处理能力,支持更复杂的项目需求,如动态添加依赖项和版本固定,从而提高 Python 包管理的灵活性和可用性。

🎯

关键要点

  • PEP 808 提议放宽 pyproject.toml 中动态元数据的限制,允许在项目表中定义静态部分。
  • 此提议旨在增强静态工具的处理能力,支持更复杂的项目需求,如动态添加依赖项和版本固定。
  • PEP 621 中的元数据选择是全有或全无的,导致某些情况下无法同时使用静态和动态元数据。
  • 放宽限制后,用户可以在 [project] 表和 project.dynamic 列表中同时定义字段,后端可以添加新条目但不能修改现有条目。
  • 此提议将提高 Python 包管理的灵活性和可用性,特别是在处理依赖项和生成额外脚本时。
  • 未来可能会根据实际使用情况进一步调整此提议,但当前版本已解决许多实际用例。

延伸问答

PEP 808 的主要目的是什么?

PEP 808 的主要目的是放宽 pyproject.toml 中动态元数据的限制,允许在项目表中定义静态部分,从而增强静态工具的处理能力。

PEP 808 如何改善 Python 包管理的灵活性?

PEP 808 通过允许在项目表和动态列表中同时定义字段,提高了对复杂项目需求的支持,特别是在处理依赖项和生成额外脚本时。

PEP 621 中的元数据选择有什么限制?

PEP 621 中的元数据选择是全有或全无的,导致无法同时使用静态和动态元数据,这在某些情况下造成了问题。

PEP 808 允许哪些类型的字段同时存在?

PEP 808 允许任何由列表或表组成的字段同时存在于 [project] 表和 project.dynamic 列表中。

PEP 808 对动态元数据的处理有什么新规定?

PEP 808 允许构建后端在静态定义的基础上扩展动态元数据,但不能修改现有条目。

PEP 808 可能会有哪些未来的更新?

未来可能会根据实际使用情况进一步调整 PEP 808,但当前版本已解决许多实际用例。

➡️

继续阅读