Quais são as condições válidas para ZCML: Condição?
Pergunta
O ZCML pode incluir diretrizes condicionais do formulário
<configure zcml:condition="installed some.python.package">
(conditional configuration directives)
</configure>
Qual é a sintaxe da expressão para condition
? É 'ou' permitido?
Solução
Eu sempre tenho que procurar isso também. A sintaxe é muito simples e or
não faz parte da sintaxe, receio.
Como você pode ver de a documentação no código -fonte do Zope.Configuration, a sintaxe é sempre da forma verb arguments
, onde o verbo é um dos have
, not-have
, installed
e not-installed
.
have
e not-have
teste para um recurso registrado. Um recurso registrado é simplesmente uma corda opaca que foi registrada com um <meta:provides feature="something" />
marcação. Use -o para sinalizar que algo foi incluído sem vinculá -lo a uma implementação específica. Exemplo:
<configure zcml:condition="have apidoc">
<!-- only when the apidoc feature has been provided -->
</configure>
installed
e not-installed
Basta tentar importar o pacote nomeado; Se a importação é bem -sucedida, o mesmo installed
teste. Exemplo:
<configure zcml:condition="installed sqlalchemy">
<!-- only when the sqlalchemy module can be imported -->
</configure>