summaryrefslogtreecommitdiff
path: root/repoze/bfg/renderers.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-09-18 03:37:52 +0000
committerChris McDonough <chrism@agendaless.com>2009-09-18 03:37:52 +0000
commit600ea3d5c50c1907e5f389d3040644543fae9077 (patch)
tree725073bb67b91af507797f0ea709ed67304793af /repoze/bfg/renderers.py
parent43514664d60d00721bfe9b32d68c5d9dcdb2419a (diff)
downloadpyramid-600ea3d5c50c1907e5f389d3040644543fae9077.tar.gz
pyramid-600ea3d5c50c1907e5f389d3040644543fae9077.tar.bz2
pyramid-600ea3d5c50c1907e5f389d3040644543fae9077.zip
Centralize resource_spec code.
Diffstat (limited to 'repoze/bfg/renderers.py')
-rw-r--r--repoze/bfg/renderers.py23
1 files changed, 9 insertions, 14 deletions
diff --git a/repoze/bfg/renderers.py b/repoze/bfg/renderers.py
index c5aed2906..840896f0e 100644
--- a/repoze/bfg/renderers.py
+++ b/repoze/bfg/renderers.py
@@ -10,6 +10,8 @@ from repoze.bfg.settings import get_settings
from repoze.bfg.interfaces import IRendererFactory
from repoze.bfg.interfaces import ITemplateRenderer
+from repoze.bfg.resource import resource_spec
+
try:
import json
except ImportError:
@@ -45,30 +47,23 @@ def template_renderer_factory(path, impl, level=3):
else:
# 'path' is a relative filename or a package:relpath spec
- if ':' in path:
- # it's a package:relpath spec
- spec = path.split(':', 1)
- utility_name = path
- else:
- # it's a relpath only
- package = caller_package(level=level)
- spec = (package.__name__, path)
- utility_name = '%s:%s' % spec # utility name must be a string
- renderer = queryUtility(ITemplateRenderer, name=utility_name)
+ 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
renderer = queryUtility(ITemplateRenderer, name=path)
+ pkg, path = spec.split(':', 1)
if renderer is None:
- if not pkg_resources.resource_exists(*spec):
- raise ValueError('Missing template resource: %s' % utility_name)
- abspath = pkg_resources.resource_filename(*spec)
+ if not pkg_resources.resource_exists(pkg, path):
+ raise ValueError('Missing template resource: %s' % spec)
+ abspath = pkg_resources.resource_filename(pkg, path)
renderer = impl(abspath)
if not _reload_resources():
# cache the template
sm = getSiteManager()
sm.registerUtility(renderer, ITemplateRenderer,
- name=utility_name)
+ name=spec)
return renderer