diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-09-20 22:13:11 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-09-20 22:13:11 +0000 |
| commit | e4610566d881f707c01d266a7e336084029c83e4 (patch) | |
| tree | 0a2001361b14e5b0b7521164e67560e2763e4c3c /repoze/bfg/renderers.py | |
| parent | 160f01439dc3e0d865b2e77bb4a9a7c9e7a16c1a (diff) | |
| download | pyramid-e4610566d881f707c01d266a7e336084029c83e4.tar.gz pyramid-e4610566d881f707c01d266a7e336084029c83e4.tar.bz2 pyramid-e4610566d881f707c01d266a7e336084029c83e4.zip | |
- The way ``bfg_view`` declarations are scanned for has been modified.
This should have no external effects.
- An object implementing the ``IRenderer`` interface (and
``ITemplateRenderer`, which is a subclass of ``IRenderer``) must now
accept an extra ``system`` argument in its ``__call__`` method
implementation. Values computed by the system (as opposed to by the
view) are passed by the system in the ``system`` parameter, which
will always be a dictionary. Keys in the dictionary include:
``view`` (the view object that returned the value),
``renderer_name`` (the template name or simple name of the
renderer), ``context`` (the context object passed to the view), and
``request`` (the request object passed to the view). Previously
only ITemplateRenderers received system arguments as elements inside
the main ``value`` dictionary.
Diffstat (limited to 'repoze/bfg/renderers.py')
| -rw-r--r-- | repoze/bfg/renderers.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/repoze/bfg/renderers.py b/repoze/bfg/renderers.py index 0d14279b0..1e7babcbc 100644 --- a/repoze/bfg/renderers.py +++ b/repoze/bfg/renderers.py @@ -19,12 +19,12 @@ except ImportError: # concrete renderer factory implementations def json_renderer_factory(name): - def _render(value): + def _render(value, system): return json.dumps(value) return _render def string_renderer_factory(name): - def _render(value): + def _render(value, system): if not isinstance(value, basestring): value = str(value) return value @@ -49,11 +49,11 @@ def template_renderer_factory(path, impl, level=3): spec = resource_spec(path, caller_package(level=level).__name__) renderer = queryUtility(ITemplateRenderer, name=spec) if renderer is None: - # service unit tests here by trying the relative path - # string as the utility name directly + # service unit tests by trying the relative path string as + # the utility name directly renderer = queryUtility(ITemplateRenderer, name=path) - pkg, path = spec.split(':', 1) if renderer is None: + pkg, path = spec.split(':', 1) if not pkg_resources.resource_exists(pkg, path): raise ValueError('Missing template resource: %s' % spec) abspath = pkg_resources.resource_filename(pkg, path) @@ -66,7 +66,7 @@ def template_renderer_factory(path, impl, level=3): return renderer -def renderer_from_name(path, level=4): +def renderer_from_name(path): name = os.path.splitext(path)[1] if not name: name = path |
