diff options
| author | Chris McDonough <chrism@agendaless.com> | 2008-11-07 10:47:28 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2008-11-07 10:47:28 +0000 |
| commit | deb0dc316b64d5fb7bd0e15a1bafe269d3b33fbc (patch) | |
| tree | 669d3eb3f6d00ce866b1d48fc977ca372aebc396 /repoze/bfg/xslt.py | |
| parent | 569ba5128fb1fd028e0fe879e810f855a61c8a03 (diff) | |
| download | pyramid-deb0dc316b64d5fb7bd0e15a1bafe269d3b33fbc.tar.gz pyramid-deb0dc316b64d5fb7bd0e15a1bafe269d3b33fbc.tar.bz2 pyramid-deb0dc316b64d5fb7bd0e15a1bafe269d3b33fbc.zip | |
Features
- Added a ``repoze.bfg.testing`` module to attempt to make it
slightly easier to write unittest-based automated tests of BFG
applications. Information about this class is in the
documentation.
- The default template renderer now supports testing better by
looking for ``ITestingTemplateRenderer`` using a relative
pathname. This is exposed indirectly through the API named
``registerTemplate`` in ``repoze.bfg.testing``.
Deprecations
- The names ``repoze.bfg.interfaces.ITemplate`` ,
``repoze.bfg.interfaces.ITemplateFactory`` and
``repoze.bfg.interfaces.INodeTemplate`` have been deprecated.
These should now be imported as
``repoze.bfg.interfaces.ITemplateRenderer`` and
``repoze.bfg.interfaces.ITemplateRendererFactory``, and
``INodeTemplateRenderer`` respectively.
- The name ``repoze.bfg.chameleon_zpt.ZPTTemplateFactory`` is
deprecated. Use ``repoze.bfg.chameleon_zpt.ZPTTemplateRenderer``.
- The name ``repoze.bfg.chameleon_genshi.GenshiTemplateFactory`` is
deprecated. Use
``repoze.bfg.chameleon_genshi.GenshiTemplateRenderer``.
- The name ``repoze.bfg.xslt.XSLTemplateFactory`` is deprecated.
Use ``repoze.bfg.xslt.XSLTemplateRenderer``.
Diffstat (limited to 'repoze/bfg/xslt.py')
| -rw-r--r-- | repoze/bfg/xslt.py | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/repoze/bfg/xslt.py b/repoze/bfg/xslt.py index 949bde6da..660a18130 100644 --- a/repoze/bfg/xslt.py +++ b/repoze/bfg/xslt.py @@ -5,14 +5,15 @@ from webob import Response from zope.component import queryUtility from zope.component import getSiteManager from zope.component.interfaces import ComponentLookupError +from zope.deprecation import deprecated from zope.interface import classProvides from zope.interface import implements from repoze.bfg.path import caller_path -from repoze.bfg.interfaces import INodeTemplate -from repoze.bfg.interfaces import ITemplateFactory +from repoze.bfg.interfaces import INodeTemplateRenderer +from repoze.bfg.interfaces import ITemplateRendererFactory def get_transform(path, node): """ Return a callable transform object. When called, the @@ -23,18 +24,18 @@ def get_transform(path, node): # Render using XSLT path = caller_path(path) - template = queryUtility(INodeTemplate, path) - if template is None: + renderer = queryUtility(INodeTemplateRenderer, path) + if renderer is None: if not os.path.exists(path): raise ValueError('Missing template file: %s' % path) - template = XSLTemplateFactory(path) + renderer = XSLTemplateRenderer(path) try: sm = getSiteManager() except ComponentLookupError: pass else: - sm.registerUtility(template, INodeTemplate, name=path) - return template + sm.registerUtility(renderer, INodeTemplateRenderer, name=path) + return renderer def render_transform(path, node, **kw): """ Render a XSL template at the package-relative path (may also @@ -52,9 +53,9 @@ def render_transform_to_response(path, node, **kw): result = render_transform(path, node, **kw) return Response(result) -class XSLTemplateFactory(object): - classProvides(ITemplateFactory) - implements(INodeTemplate) +class XSLTemplateRenderer(object): + classProvides(ITemplateRendererFactory) + implements(INodeTemplateRenderer) def __init__(self, path, auto_reload=False): self.path = path @@ -65,6 +66,12 @@ class XSLTemplateFactory(object): result = str(processor(node, **kw)) return result +XSLTemplateFactory = XSLTemplateRenderer +deprecated('ZPTTemplateFactory', + ('repoze.bfg.xslt.XSLTemplateFactory should now be ' + 'imported as repoze.bfg.xslt.XSLTTemplateRenderer')) + + # Manage XSLT processors on a per-thread basis import threading from lxml import etree |
