I should always watch this too. The syntax is very simple, and or not part of the syntax, I'm afraid.
As you can see from the documentation in the zope.configuration source code , the syntax is always in the form of verb arguments , where the verb is one of have , not-have , installed and not-installed .
have and not-have check the registered function. A registered function is just an opaque string registered with the <meta:provides feature="something" /> . Use it to indicate that something has been included without being tied to a specific implementation. Example:
<configure zcml:condition="have apidoc"> </configure>
installed and not-installed just try importing the named package; if the import is completed successfully, then the installed test. Example:
<configure zcml:condition="installed sqlalchemy"> </configure>
Martijn pieters
source share