buildout cfg文件中可能的变量类型

时间:2014-01-28 11:05:49

标签: buildout genshi

是否可以定义字典类型的buildout变量?

我试图用字典替换变量,但buildout认为它是一个字符串。

E.g。

buildout.cfg中的

[MYPROG]
    progr_args = 
           a : 1 
           b : 2
           d : 
             d1: 1
             d2: 2
模板中的

my_params:
    {% for key, val in parts.MYPROG.progr_args.items() %}\
        ${key}: ${val}\
    {% end %}

1 个答案:

答案 0 :(得分:2)

不是Buildout本身,不是。构建配置值始终是字符串;即使是mr.scripty recipe,它允许您使用Python代码作为构建配置的一部分,也可以将Python代码的结果存储为字符串。

更糟糕的是,连续行的初始空格被剥离,所以你的条目是:

progr_args = 
       a : 1 
       b : 2
       d : 
         d1: 1
         d2: 2

存储为\na : 1\nb : 2\nd :\nd1: 1\nd2: 2,丢失了所有缩进上下文。

你必须使用Genshi本身来解析你的价值观。我建议你使用一个单独的部分:

[MYPROG]
prog_params = section_name

[section_name]
a = 1
b = 2

并在您的模板中:

my_params:
{% for key, val in parts[parts.MYPROG.progr_args].items() %}\
    ${key}: ${val}\
{% end %}