¿Cuáles son las condiciones válidas para zcml: condición?
Pregunta
ZCML puede incluir directivas condicionales de la forma
<configure zcml:condition="installed some.python.package">
(conditional configuration directives)
</configure>
¿Cuál es la sintaxis de la expresión de condition
? Está 'o' permitido?
Solución
Siempre tiene que ver esto también. La sintaxis es muy simple, y or
no es parte de la sintaxis, me temo.
Como se puede ver en la documentación en el código fuente zope.configuration , la sintaxis es siempre de la forma verb arguments
, donde verbo es uno de have
, not-have
, installed
y not-installed
.
have
y la prueba not-have
para una característica registrada. Una característica registrada es simplemente una cadena opaca que se ha registrado con una etiqueta <meta:provides feature="something" />
. Usarla para indicador de que algo se ha incluido sin atar a una aplicación particular. Ejemplo:
<configure zcml:condition="have apidoc">
<!-- only when the apidoc feature has been provided -->
</configure>
installed
y not-installed
simplemente tratan de importar el paquete llamado; si la importación tiene éxito también lo hace la prueba installed
. Ejemplo:
<configure zcml:condition="installed sqlalchemy">
<!-- only when the sqlalchemy module can be imported -->
</configure>