Skip to main content

Easily hook into the ZCML processing machinery

Project description


This package provides means of hooking into the Zope (ZCML) configuration process.

Custom ZCML actions

It is sometimes useful to execute a function during the execution of configuration actions, for example to perform one-off configuration that does not warrant a new directive. The <zcml:customAction /> directive is provided for this purpose.

For example, you may want to call a function called my.package.finalConfiguration() “late” in the configuration action execution cycle. This can be achieved with the following ZCML statements:


    <include package="z3c.zcmlhook" file="meta.zcml" />



The handler attribute gives the name of a function to execute. The function should take no arguments. The order attribute is optional, and can be used to influence when in the configuration cycle the function is executed. The default value for this, as for most Zope configuration actions, is 0.

Overriding custom actions

If you want to override the invocation of a custom handler in an overrides.zcml, you need to tell zope.configuration which handler to override. You can do that by setting the discriminator explicitly. A discriminator is used to uniquely identify a configuration action. In the case of the <zcml:customAction /> directive, the discriminator is based on the full dotted name to the function by default. Thus, you could override the function call above like so:


Using a handler more than once

The discriminator attribute can also be used to explicitly allow using the same handler more than once. If you wanted to call my.package.finalConfiguration again, you would normally get a configuration conflict. However, with a (unique) custom discriminator, the second call is allowed:



Here, we are attempting to call our configuration action “very early” as well as “very late” in the configuration process.


1.1 (2021-02-15)

  • Add support for Python 3.5, 3.6, 3.7, 3.8 and 3.9.
  • Add test extra to declare test dependency on zope.component [test]. [icemac]

1.0b1 (2010-01-02)

  • Initial release [optilude]

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

z3c.zcmlhook-1.1.tar.gz (6.0 kB view hashes)

Uploaded source

Built Distribution

z3c.zcmlhook-1.1-py2.py3-none-any.whl (7.7 kB view hashes)

Uploaded py2 py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page