summaryrefslogtreecommitdiff
path: root/repoze/bfg/renderers.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-11-23 04:51:35 +0000
committerChris McDonough <chrism@agendaless.com>2009-11-23 04:51:35 +0000
commit6fec211488f87f9207fda9c39b21e83c6359c727 (patch)
tree0ad5de2211e9b71aed1d12ad3cbc97efd50b7c22 /repoze/bfg/renderers.py
parent8dd3ce0142e8055cfc6c9e793b5c781c4691e2c0 (diff)
downloadpyramid-6fec211488f87f9207fda9c39b21e83c6359c727.tar.gz
pyramid-6fec211488f87f9207fda9c39b21e83c6359c727.tar.bz2
pyramid-6fec211488f87f9207fda9c39b21e83c6359c727.zip
- The ``repoze.bfg.scripting.get_root`` API now uses a 'real' WebOb
request rather than a FakeRequest when it sets up the request as a threadlocal. - The ``repoze.bfg.traversal.traverse`` API now uses a 'real' WebOb request rather than a FakeRequest when it calls the traverser. - The ``repoze.bfg.request.FakeRequest`` class has been removed. ``repoze.bfg.url.route_url`` ``repoze.bfg.url.model_url`` ``repoze.bfg.url.static_url`` ``repoze.bfg.traversal.virtual_root`` Each of these functions now expects to be called with a request object that has a ``registry`` attribute which represents the current ZCA registry. Get rid of extraneous uses of ZCA threadlocal API.
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)