Zawsze muszę też to sprawdzić. Składnia jest bardzo prosta, i obawiam się, że nie jest częścią składni.
Jak widać z the documentation in the zope.configuration source code, składnia jest zawsze w formie verb arguments
, gdzie czasownik jest jednym z have
, not-have
, installed
i not-installed
.
have
i not-have
test zarejestrowanej funkcji. Zarejestrowana funkcja to po prostu nieprzejrzysty ciąg, który został zarejestrowany w tagu <meta:provides feature="something" />
. Użyj go, aby oznaczyć, że coś zostało dołączone, nie przywiązując go do konkretnej implementacji. Przykład:
<configure zcml:condition="have apidoc">
<!-- only when the apidoc feature has been provided -->
</configure>
installed
i not-installed
prostu spróbować zaimportować pakiet o nazwie; jeśli import się powiedzie, to test installed
. Przykład:
<configure zcml:condition="installed sqlalchemy">
<!-- only when the sqlalchemy module can be imported -->
</configure>
Napisałem komponent, który może korzystać z wielu implementacji funkcji kryptograficznej w zależności od tego, która jest zainstalowana. Dla mojego "lub" prawdopodobnie mogę umieścić to samo '' w dwóch blokach zcml: condition, a następnie zarejestrować mój komponent w jednej trzeciej. Dzięki! – joeforker
Twoje linki do kodu źródłowego Zope są teraz zepsute – scarba05
@ scarba05: dzięki za heads-up, naprawiłem link. –