Skip to main content

Structured Configuration Library

Project description

ZConfig is a configuration library intended for general use. It supports a hierarchical schema-driven configuration model that allows a schema to specify data conversion routines written in Python. ZConfig’s model is very different from the model supported by the ConfigParser module found in Python’s standard library, and is more suitable to configuration-intensive applications.

ZConfig schema are written in an XML-based language and are able to “import” schema components provided by Python packages. Since components are able to bind to conversion functions provided by Python code in the package (or elsewhere), configuration objects can be arbitrarily complex, with values that have been verified against arbitrary constraints. This makes it easy for applications to separate configuration support from configuration loading even with configuration data being defined and consumed by a wide range of separate packages.

ZConfig is licensed under the Zope Public License, version 2.1. See the file LICENSE.txt in the distribution for the full license text.

Reference documentation is available in the doc/ directory.

Information on the latest released version of the ZConfig package is available at

http://www.zope.org/Members/fdrake/zconfig/

You may either create an RPM and install this, or install directly from the source distribution.

There is a mailing list for discussions and questions about ZConfig; more information on the list is available at

http://mail.zope.org/mailman/listinfo/zconfig/

Installing from the source distribution

For a simple installation:

python setup.py install

To install to a user’s home-dir:

python setup.py install --home=<dir>

To install to another prefix (for example, /usr/local):

python setup.py install --prefix=/usr/local

If you need to force the python interpreter to (for example) python2:

python2 setup.py install

For more information on installing packages, please refer to Installing Python Modules.

Change History for ZConfig

ZConfig 2.6.0 (2008/09/03)

  • Added support for file rotation by time by specifying when and interval, rather than max-size, for log files.

  • Removed dependency on setuptools from the setup.py.

ZConfig 2.5.1 (2007/12/24)

  • Made it possible to run unit tests via ‘python setup.py test’ (requires setuptools on sys.path).

  • Added better error messages to test failure assertions.

ZConfig 2.5 (31 Aug 2007)

A note on the version number:

Information discovered in the revision control system suggests that some past revision has been called “2.4”, though it is not clear that any actual release was made with that version number. We’re going to skip revision 2.4 entirely to avoid potential issues with anyone using something claiming to be ZConfig 2.4, and go straight to version 2.5.

  • Add support for importing schema components from ZIP archives (including eggs).

  • Added a ‘formatter’ configuration option in the logging handler sections to allow specifying a constructor for the formatter.

  • Documented the package: URL scheme that can be used in extending schema.

  • Added support for reopening all log files opened via configurations using the ZConfig.components.logger package. For Zope, this is usable via the zc.signalhandler package. zc.signalhandler is not required for ZConfig.

  • Added support for rotating log files internally by size.

  • Added a minimal implementation of schema-less parsing; this is mostly intended for applications that want to read several fragments of ZConfig configuration files and assemble a combined configuration. Used in some zc.buildout recipes.

  • Converted to using zc.buildout and the standard test runner from zope.testing.

  • Added more tests.

ZConfig 2.3.1 (21 Aug 2005)

  • Isolated some of the case-normalization code so it will at least be easier to override. This remains non-trivial.

ZConfig 2.3 (18 May 2005)

  • Added “inet-binding-address” and “inet-connection-address” to the set of standard datatypes. These are similar to the “inet-address” type, but the default hostname is more sensible. The datatype used should reflect how the value will be used.

  • Alternate rotating logfile handler for Windows, to avoid platform limitations on renaming open files. Contributed by Sidnei da Silva.

  • For <section> and <multisection>, if the name attribute is omitted, assume name=”*”, since this is what is used most often.

ZConfig 2.2 (21 Apr 2004)

  • More documentation has been written.

  • Added a timedelta datatype function; the input is the same as for the time-interval datatype, but the resulting value is a datetime.timedelta object.

  • Make sure keys specified as attributes of the <default> element are converted by the appropriate key type, and are re-checked for derived sections.

  • Refactored the ZConfig.components.logger schema components so that a schema can import just one of the “eventlog” or “logger” sections if desired. This can be helpful to avoid naming conflicts.

  • Added a reopen() method to the logger factories.

  • Always use an absolute pathname when opening a FileHandler.

  • A fix to the logger ‘format’ key to allow the %(process)d expansion variable that the logging package supports.

  • A new timedelta built-in datatype was added. Similar to time-interval except that it returns a datetime.timedelta object instead.

ZConfig 2.1 (12 Apr 2004)

  • Removed compatibility with Python 2.1 and 2.2.

  • Schema components must really be in Python packages; the directory search has been modified to perform an import to locate the package rather than incorrectly implementing the search algorithm.

  • The default objects use for section values now provide a method getSectionAttributes(); this returns a list of all the attributes of the section object which store configuration-defined data (including information derived from the schema).

  • Default information can now be included in a schema for <key name=”+”> and <multikey name=”+”> by using <default key=”…”>.

  • More documentation has been added to discuss schema extension.

  • Support for a Unicode-free Python has been fixed.

  • Derived section types now inherit the datatype of the base type if no datatype is identified explicitly.

  • Derived section types can now override the keytype instead of always inheriting from their base type.

  • <import package=’…’/> makes use of the current prefix if the package name begins witha dot.

  • Added two standard datatypes: dotted-name and dotted-suffix.

  • Added two standard schema components: ZConfig.components.basic and ZConfig.components.logger.

ZConfig 2.0 (27 Oct 2003)

  • Configurations can import additional schema components using a new “%import” directive; this can be used to integrate 3rd-party components into an application.

  • Schemas may be extended using a new “extends” attribute on the <schema> element.

  • Better error messages when elements in a schema definition are improperly nested.

  • The “zconfig” script can now simply verify that a schema definition is valid, if that’s all that’s needed.

ZConfig 1.0 (25 Mar 2003)

  • Initial release.

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

ZConfig-2.6.0.tar.gz (254.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page