2

これは機能していないようです:

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

動作は常に、eggs += psycopg2線が存在しないかのように見えます。2行がどちらの順序であるかは関係ありません。

これはバグですか?この結果を達成する方法はありますか?

4

1 に答える 1

5

残念ながら、zc.buildoutバージョン1.5.2まではこのユースケースをサポートしていません。加算または減算のいずれかが成功します。

内部で起こることはこれです:

  • キーごとに、継承セクションで定義された値のペア:
    • キーがを使用している場合は+=、継承された値を取得して追加し、新しい値として保存します。
    • キーがを使用している場合は-=、継承された値を取得して削除し、新しい値として保存します。

これらの更新後、継承されたセクションがコピーされ、新しい値で更新され、これが最終結果として使用されます。

順序は通常のPythonマッピングセマンティクスによって定義されるため、未定義です。加算または減算のいずれかが最後に実行されます。どちらの操作も継承されたセクションから入力を受け取り、それを変更してから新しい値として保存するため、最後に実行された操作は、前に実行された操作の結果を上書きします。

私はこれに対する修正をコミットしました; buildoutpypiの新しいバージョンをリリースする権利はありませんが、リリースする人を突く必要があります。

編集zc.buildoutバージョン1.6にはこの修正が含まれています。

于 2012-07-12T07:45:01.377 に答える