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?

Foi útil?

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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top