ZCML には、次の形式の条件付きディレクティブを含めることができます。
<configure zcml:condition="installed some.python.package">
(conditional configuration directives)
</configure>
の式構文は何condition
ですか? 「または」は使用できますか?
私もいつもこれを調べなければなりません。構文は非常に単純でor
、残念ながら構文の一部ではありません。
zope.configuration ソース コードのドキュメントからわかるように、構文は常に の形式です。ここで、verb arguments
動詞は、、、および のいずれhave
かです。not-have
installed
not-installed
have
登録された機能をnot-have
テストします。登録された機能は、<meta:provides feature="something" />
タグに登録された単純な不透明な文字列です。特定の実装に結び付けずに、何かが含まれていることを示すために使用します。例:
<configure zcml:condition="have apidoc">
<!-- only when the apidoc feature has been provided -->
</configure>
installed
そして、not-installed
単に名前付きパッケージをインポートしようとします; インポートが成功すると、installed
テストも成功します。例:
<configure zcml:condition="installed sqlalchemy">
<!-- only when the sqlalchemy module can be imported -->
</configure>