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?

È stato utile?

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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top