Quali sono le condizioni valide per zcml: condizione?
Domanda
ZCML può includere direttive condizionali della forma
<configure zcml:condition="installed some.python.package">
(conditional configuration directives)
</configure>
Qual è la sintassi delle espressioni per condition
? È 'o' permesso?
Soluzione
devo sempre cercare questo troppo. La sintassi è molto semplice, e or
non è parte della sintassi, ho paura.
Come si può vedere da la documentazione nel codice sorgente zope.configuration , la sintassi è sempre della forma verb arguments
, dove verbo è uno dei have
, not-have
, installed
e not-installed
.
have
e prova not-have
per una caratteristica registrato. Una caratteristica registrato è semplicemente una stringa opaca che è stato registrato con un tag <meta:provides feature="something" />
. Usalo per la bandiera che qualcosa è stato incluso senza legare ad una particolare implementazione. Esempio:
<configure zcml:condition="have apidoc">
<!-- only when the apidoc feature has been provided -->
</configure>
installed
e not-installed
semplicemente cercano di importare il pacchetto di nome; se l'importazione riesce così fa il test installed
. Esempio:
<configure zcml:condition="installed sqlalchemy">
<!-- only when the sqlalchemy module can be imported -->
</configure>