summaryrefslogtreecommitdiff
path: root/repoze/bfg/renderers.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-09-20 22:13:11 +0000
committerChris McDonough <chrism@agendaless.com>2009-09-20 22:13:11 +0000
commite4610566d881f707c01d266a7e336084029c83e4 (patch)
tree0a2001361b14e5b0b7521164e67560e2763e4c3c /repoze/bfg/renderers.py
parent160f01439dc3e0d865b2e77bb4a9a7c9e7a16c1a (diff)
downloadpyramid-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.py12
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