Buildout支持扩展选项中的值替换吗?

Nis*_*ant 8 python buildout

Buildout在该部分的选项中是否支持值替换extendsbuildout

例如,这example.cfg不会扩展为base.cfg

[config]
base = base.cfg

[buildout]
extends =
    ${config:base}
parts =
Run Code Online (Sandbox Code Playgroud)
buildout -c example.cfg annotate
Run Code Online (Sandbox Code Playgroud)

我的目标是像这样从外部将要扩展的文件作为参数发送:

buildout config:base=base.cfg -c example.cfg annotate
Run Code Online (Sandbox Code Playgroud)

我试图合并buildout:extends来自外部的; 但这也不起作用:

buildout buildout:extends+=base.cfg -c example.cfg annotate
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 6

extends,不幸的是,不支持值替代。buildout.extends可以进行变量替换之前的当前实现过程。

对此存在一个现有的功能请求:#39 Extend中没有变量替换

我通常local.cfg首先会创建一个文件,也许是从模板开始,然后运行buildout -c local.cfg。那就是我将自定义扩展配置放在那种地方的地方。

  • @Nishant:`extends`是在[_open()内部处理的]](https://github.com/buildout/buildout/blob/9418699ca136e7eb21629712766f999ea14147f6/src/zc/buildout/buildout.py#L1809-L1827)。调用_open()以为[Buildout()实例加载配置文件](https://github.com/buildout/buildout/blob/9418699ca136e7eb21629712766f999ea14147f6/src/zc/buildout/buildout.py#L366 -L370),最终[根据合并结果设置`self._raw`](https://github.com/buildout/buildout/blob/master/src/zc/buildout/buildout.py#L436)。 (3认同)