summaryrefslogtreecommitdiff
path: root/repoze/bfg/renderers.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/renderers.py')
-rw-r--r--repoze/bfg/renderers.py19
1 files changed, 8 insertions, 11 deletions
diff --git a/repoze/bfg/renderers.py b/repoze/bfg/renderers.py
index 8fa6e5c31..424c400ac 100644
--- a/repoze/bfg/renderers.py
+++ b/repoze/bfg/renderers.py
@@ -1,14 +1,12 @@
import os
import pkg_resources
-from zope.component import getSiteManager
-from zope.component import queryUtility
-
from repoze.bfg.interfaces import ITemplateRenderer
from repoze.bfg.compat import json
from repoze.bfg.settings import get_settings
from repoze.bfg.path import caller_package
+from repoze.bfg.threadlocal import get_current_registry
# concrete renderer factory implementations
@@ -27,22 +25,22 @@ def string_renderer_factory(name):
# utility functions
def template_renderer_factory(spec, impl):
+ reg = get_current_registry()
if os.path.isabs(spec):
# 'spec' is an absolute filename
if not os.path.exists(spec):
raise ValueError('Missing template file: %s' % spec)
- renderer = queryUtility(ITemplateRenderer, name=spec)
+ renderer = reg.queryUtility(ITemplateRenderer, name=spec)
if renderer is None:
renderer = impl(spec)
- sm = getSiteManager()
- sm.registerUtility(renderer, ITemplateRenderer, name=spec)
+ reg.registerUtility(renderer, ITemplateRenderer, name=spec)
else:
# spec is a package:relpath resource spec
- renderer = queryUtility(ITemplateRenderer, name=spec)
+ renderer = reg.queryUtility(ITemplateRenderer, name=spec)
if renderer is None:
# service unit tests by trying the relative path string as
# the utility name directly
- renderer = queryUtility(ITemplateRenderer, name=spec)
+ renderer = reg.queryUtility(ITemplateRenderer, name=spec)
if renderer is None:
try:
package_name, filename = spec.split(':', 1)
@@ -56,14 +54,13 @@ def template_renderer_factory(spec, impl):
renderer = impl(abspath)
if not _reload_resources():
# cache the template
- sm = getSiteManager()
- sm.registerUtility(renderer, ITemplateRenderer, name=spec)
+ reg.registerUtility(renderer, ITemplateRenderer, name=spec)
return renderer
def renderer_from_name(path):
from repoze.bfg.configuration import Configurator
- reg = getSiteManager()
+ reg = get_current_registry()
config = Configurator(reg)
return config.renderer_from_name(path)