A configuration system using YAML and entry points
Project description
repoze.configuration README
repoze.configuration is a package that software developers can use as a configuration system. It allows the use of YAML as a configuration language. Application-defined “directives” can be plugged in to repoze.configuration using one or more Python setuptools entry points. For example, you could make sense out of the following YAML using repoze.configuration and a custom “appsettings” directive:
--- !appsettings port_number = 8080 reload_templates = true --- !include filename = anotherfile.yml
Please see docs/index.rst or http://docs.repoze.org/configuration for more documentation.
repoze.configuration Changelog
0.5 (2009-07-26)
Add documentation about interpolation.
Show only line numbers in error reports on console (previously both line numbers and column numbers were reported, but the column numbers seem to be meaningless in most debugging scenarios).
Fix an off by one error in line number reporting in errors.
Interpolation variables now try to use the registry first, but fall back to “stack” values; the most important of which is %(here)s; this interpolation variable can be used in any config file. It will be the absolute path to the parent directory of the configuration file in which it was declared. Any stack variable will be overridden permanently (for interpolation purposes) by a registry variable.
0.4 (2009-07-25)
Totally backwards incompatible.
Instead of accepting “context”, “structure” and “node”, directives now accept “declaration” objects. A declaration object has most of the methods that used to be supplied by the “context”, and some new ones. The docs have been updated.
0.3 (2009-07-24)
Backwards incompatibility: directives must now accept three arguments: context, structure, and node (previously they had only accepted context and structure).
error method added to context.
Make discriminator conflict detection actually work.
Show actual lines from conflicting files when possible during a discriminator conflict.
Ignore import errors when trying to resolve entry point loads.
Add a popvalue method to the context; it works like getvalue except it pops the value out of the structure supplied instead of just getting it.
It was not possible to resolve the single dot . using repoze.configuration.context.Context.resolve to the current package.
Using a Python %(interpolation)s marker in any string value allows you to replace values in strings. For example, using “%(here)s” in a string value would attempt to resolve the name “here” from the registry as a key.
Use pyyaml’s SafeLoader rather than Loader: we don’t really need to be able to construct arbitrary Python objects.
0.2 (2009-07-13)
Trying to read any directive section that wasn’t a YAML mapping caused a TypeError (e.g. construct_scalar takes no argument 'deep').
0.1 (2009-06-22)
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.