ZCML には、次の形式の条件付きディレクティブを含めることができます。
<configure zcml:condition="installed some.python.package">
(conditional configuration directives)
</configure>
の式構文は何conditionですか? 「または」は使用できますか?
私もいつもこれを調べなければなりません。構文は非常に単純でor、残念ながら構文の一部ではありません。
zope.configuration ソース コードのドキュメントからわかるように、構文は常に の形式です。ここで、verb arguments動詞は、、、および のいずれhaveかです。not-haveinstallednot-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>