在buildout脚本中组合 - =和+ =修饰符

时间:2012-07-12 06:20:41

标签: python buildout

这似乎不起作用:

[buildout]
extends = buildout.cfg
eggs -= python-ldap
eggs += psycopg2

行为似乎总是好像没有eggs += psycopg2行。两条线的顺序无关紧要。

这是一个错误吗?有没有办法实现这个结果?

1 个答案:

答案 0 :(得分:4)

不幸的是,zc.buildout版本1.5.2并不支持此用例。添加减法将成功。

内部发生的是:

  • 对于继承部分中定义的每个键值对:
    • 如果密钥使用+=,请获取继承的值,添加内容并将其存储为新值。
    • 如果密钥使用-=,请删除继承的值,删除内容并将其存储为新值。

在这些更新之后,将复制继承的部分,并使用新值进行更新,并将其用作最终结果。

排序由通常的python映射语义定义,因此未定义;加法或减法运行最后。因为两个操作都从继承的部分获取输入,修改它,然后将其存储为新值,最后运行的操作将覆盖之前运行的操作的结果。

committed a fix for this;我没有权利向pypi发布新版buildout,但我不得不戳那些人。

修改zc.buildout version 1.6包含此修复程序。