在 setup.cfg 中嵌套或组合 extras_require for setuptools

Nest or combine extras_require for setuptools in setup.cfg

是否可以将 [options.extras_require] 中已指定的依赖项重新用于 [options.extras_require] 中的其他条目?比如说,一个开发团队在开发过程中使用 mypy 检查他们的类型注释,并使用 black 自动格式化他们的代码。在这种情况下,他们会指定 [options.extras_require] 如:

[options.extras_require]
dev = black, mypy

但现在搭建了一个测试环境,也使用mypy来检查类型提示,但不需要black。所以配置被扩展为:

[options.extras_require]
test = mypy
dev = black, mypy

现在开发所需的任何测试依赖都会重复开发依赖。

有什么方法可以通过说 dev 也需要 all in test 来避免这种情况吗?

您可以参考额外的套餐:

[metadata]
name = foo

[options.extras_require]
test = mypy
dev = black; foo[test]