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?

¿Fue útil?

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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top