diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-09-18 03:37:52 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-09-18 03:37:52 +0000 |
| commit | 600ea3d5c50c1907e5f389d3040644543fae9077 (patch) | |
| tree | 725073bb67b91af507797f0ea709ed67304793af /repoze/bfg/renderers.py | |
| parent | 43514664d60d00721bfe9b32d68c5d9dcdb2419a (diff) | |
| download | pyramid-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.py | 23 |
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 |
