我们可以在Buildout的配置文件的选项部分中添加变量吗?

时间:2019-03-02 11:27:46

标签: python buildout

Python的Buildout配置文件允许我们通过允许称为variable substitution的特殊语法(格式为${SECTION:OPTION} values >

这是一个使我们避免重复单词experiment的示例:

[context]
name = experiment

[db]
server = ${context:name}

是否可以使用替代来代替 option 本身?

例如:

[soures]
${context:name} = https://git.com/${context:name}.git

1 个答案:

答案 0 :(得分:1)

否,不支持键中的变量扩展;该功能实际上被命名为value substitions,以使其清晰可见,语法仅适用于值:

  

在配置中提供值时,可以使用以下语法包括来自其他选项的值:

${SECTION:OPTION}

options syntax还明确排除了使替换成为可能的字符:

  

通过选项名称,后跟等号和值来指定选项:

parts = py 
     

选项名称中可以包含空格,方括号,花括号,等号或冒号之外的其他任何字符

short-hand <part-dependencies> syntax中有例外。

因此,最后,当variable substitutions are applied in buildout时,代码仅在值中寻找语法的${部分:

# force substitutions
for k, v in sorted(self._raw.items()):
    if '${' in v:
        self._dosub(k, v)