from ``dict``. Previously, the context object was guaranteed to have a subattr named ``registry`` which was presumed to be dictlike; interpolation used this dictionary to resolve names. This "registry", for interpolation purposes, is now assumed to be the context itself. A property alias named ``registry`` has been added to the context for bw compat. - The declaration object's ``registry`` property is now deprecated; instead ``declaration.context`` should be used directly.
- Allow ``repoze.configuration.context.Context`` constructor to take arbitrary keyword arguments. These kw arguments are added to the instance ``__dict__`` of the result context object. - The return value of ``repoze.configuration.context.Context.execute`` is no longer the ``registry`` attribute of the context object; it is instead ``None``. The ``registry`` object is no longer "special".
the characters 'tag:', treat the name as a YAML tag URI. YAML tag URIs can be aliased at the top of YAML files to shorter ``!bang!`` names via a YAML %TAG directive (see `YAML global tag prefix documentation <http://www.yaml.org/spec/1.2/spec.html#ns-global-tag-prefix>`_. The intent is to encourage directive writers to register both a "short name" (a word) and a tag URI for the same entry point function. Doing so means that a config file writer can optionally use a tag URI (``!<tag:repoze.org,2009:pypes/server>``) in place of a "short name" (``!server``) when the short version can't be used due to a conflict between two directives in separate packages that share the same short name. For example, an application might register both ``server = pypes.deploy.directives:server`` and ``tag:repoze.org,2009:pypes/server = pypes.deploy.directives:server`` in a ``repoze.configuration.directive`` section within ``setup.py``. A config file that used the above entry points might equivalently use any of the three below forms as necessary within a given YAML file:: # tag alias %TAG !pypes! tag:repoze.org,2009:pypes/ # short name --- !server name: main port: 8082 host: 0.0.0.0 # rely on tag expansion from %TAG directive --- !pypes!server name: main port: 8082 host: 0.0.0.0 # use literal tag URI --- !<tag:repoze.org,2009:pypes/server> name: main port: 8082 host: 0.0.0.0
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.
back to "stack" values; the most important of where 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 can be overridden (for interpolation purposes) by a registry variable.