Quelles sont les conditions valides pour zcml: condition?
Question
ZCML peut inclure des directives conditionnelles de la forme
<configure zcml:condition="installed some.python.package">
(conditional configuration directives)
</configure>
Quelle est la syntaxe d'expression pour condition
? Est 'ou' permis?
La solution
Je dois toujours regarder ce aussi. La syntaxe est très simple, et or
ne fait pas partie de la syntaxe, je crains.
Comme vous pouvez le voir la documentation du code source zope.configuration , la syntaxe est toujours de la forme verb arguments
, où verbe est l'un des have
, not-have
, installed
et not-installed
.
have
et test not-have
pour une fonction enregistrée. Une caractéristique enregistrée est simplement une chaîne opaque qui a été enregistré avec une étiquette de <meta:provides feature="something" />
. Utilisez-le pour signaler que quelque chose a été inclus sans l'attacher à une mise en œuvre particulière. Exemple:
<configure zcml:condition="have apidoc">
<!-- only when the apidoc feature has been provided -->
</configure>
installed
et not-installed
simplement essayer d'importer le package nommé; si l'importation réussit le fait le test de installed
. Exemple:
<configure zcml:condition="installed sqlalchemy">
<!-- only when the sqlalchemy module can be imported -->
</configure>