Каковы действительные условия для zcml:condition?

StackOverflow https://stackoverflow.com/questions/1596611

  •  22-09-2019
  •  | 
  •  

Вопрос

ZCML может включать условные директивы вида

<configure zcml:condition="installed some.python.package">
    (conditional configuration directives)
</configure>

Каков синтаксис выражения для condition?Разрешено ли «или»?

Это было полезно?

Решение

Мне тоже всегда приходится это искать.Синтаксис очень прост и or Боюсь, это не часть синтаксиса.

Как вы можете видеть из документация в исходном коде zope.configuration, синтаксис всегда имеет вид verb arguments, где глагол является одним из have, not-have, installed и not-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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top