[Checkins] SVN: z3c.template/trunk/ Update to z3c.ptcompat 1.0 (and as a result, to the z3c.pt 2.x series).
Malthe Borch
mborch at gmail.com
Fri Oct 14 09:53:13 EST 2011
Log message for revision 123094:
Update to z3c.ptcompat 1.0 (and as a result, to the z3c.pt 2.x series).
Changed:
U z3c.template/trunk/CHANGES.txt
U z3c.template/trunk/buildout.cfg
U z3c.template/trunk/setup.py
U z3c.template/trunk/src/z3c/template/README.txt
U z3c.template/trunk/src/z3c/template/__init__.py
U z3c.template/trunk/src/z3c/template/template.py
U z3c.template/trunk/src/z3c/template/tests.py
U z3c.template/trunk/src/z3c/template/zcml.txt
-=-
Modified: z3c.template/trunk/CHANGES.txt
===================================================================
--- z3c.template/trunk/CHANGES.txt 2011-10-14 10:51:07 UTC (rev 123093)
+++ z3c.template/trunk/CHANGES.txt 2011-10-14 14:53:12 UTC (rev 123094)
@@ -2,8 +2,8 @@
CHANGES
=======
-1.2.2 (unreleased)
-------------------
+1.3 (unreleased)
+----------------
- Using Python's ``doctest`` module instead of depreacted
``zope.testing.doctest``.
Modified: z3c.template/trunk/buildout.cfg
===================================================================
--- z3c.template/trunk/buildout.cfg 2011-10-14 10:51:07 UTC (rev 123093)
+++ z3c.template/trunk/buildout.cfg 2011-10-14 14:53:12 UTC (rev 123094)
@@ -4,14 +4,10 @@
versions = versions
[versions]
-z3c.pt = 1.2.1
-Chameleon = 1.2.13
+z3c.pt = 2.1.4
+z3c.ptcompat = 1.0
+Chameleon = 2.5.2
[test]
recipe = zc.recipe.testrunner
eggs = z3c.template [test]
-environment = test-environment
-
-[test-environment]
-CHAMELEON_DEBUG = False
-CHAMELEON_CACHE = False
Modified: z3c.template/trunk/setup.py
===================================================================
--- z3c.template/trunk/setup.py 2011-10-14 10:51:07 UTC (rev 123093)
+++ z3c.template/trunk/setup.py 2011-10-14 14:53:12 UTC (rev 123094)
@@ -23,7 +23,7 @@
setup (
name='z3c.template',
- version = '1.2.2dev',
+ version = '1.3dev',
author = "Roger Ineichen and the Zope Community",
author_email = "zope-dev at zope.org",
description = "A package implementing advanced Page Template patterns.",
@@ -54,9 +54,9 @@
namespace_packages = ['z3c'],
extras_require = dict(
test = ['zope.app.testing',
+ 'zope.app.pagetemplate',
'zope.testing',
- 'lxml>=2.1.1',
- 'z3c.pt>=1.0b1'],
+ 'z3c.ptcompat>=1.0'],
),
install_requires = [
'setuptools',
@@ -66,7 +66,6 @@
'zope.pagetemplate',
'zope.publisher',
'zope.schema',
- 'z3c.ptcompat [zpt]',
],
include_package_data = True,
zip_safe = False,
Modified: z3c.template/trunk/src/z3c/template/README.txt
===================================================================
--- z3c.template/trunk/src/z3c/template/README.txt 2011-10-14 10:51:07 UTC (rev 123093)
+++ z3c.template/trunk/src/z3c/template/README.txt 2011-10-14 14:53:12 UTC (rev 123094)
@@ -88,7 +88,7 @@
>>> template = component.getMultiAdapter((view, request),
... interfaces.IPageTemplate)
- >>> from z3c.ptcompat import ViewPageTemplateFile
+ >>> from z3c.template import ViewPageTemplateFile
>>> isinstance(template, ViewPageTemplateFile)
True
@@ -118,7 +118,7 @@
and a view:
- >>> from z3c.ptcompat import ViewPageTemplateFile
+ >>> from z3c.template import ViewPageTemplateFile
>>> class MyViewWithTemplate(BrowserPage):
... zope.interface.implements(IMyView)
... template = ViewPageTemplateFile(viewContent)
Modified: z3c.template/trunk/src/z3c/template/__init__.py
===================================================================
--- z3c.template/trunk/src/z3c/template/__init__.py 2011-10-14 10:51:07 UTC (rev 123093)
+++ z3c.template/trunk/src/z3c/template/__init__.py 2011-10-14 14:53:12 UTC (rev 123094)
@@ -14,3 +14,5 @@
"""
$Id$
"""
+
+from template import ViewPageTemplateFile
Modified: z3c.template/trunk/src/z3c/template/template.py
===================================================================
--- z3c.template/trunk/src/z3c/template/template.py 2011-10-14 10:51:07 UTC (rev 123093)
+++ z3c.template/trunk/src/z3c/template/template.py 2011-10-14 14:53:12 UTC (rev 123094)
@@ -17,33 +17,61 @@
from zope import component
from zope.pagetemplate.interfaces import IPageTemplate
+from zope.pagetemplate.pagetemplate import PageTemplate
-from z3c import ptcompat
+try:
+ from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile
+ ViewPageTemplateFile # Satisfy pyflakes
+except ImportError:
+ # The package does not require a particular view page template
+ # implementation
+ try:
+ from z3c.pt.pagetemplate import ViewPageTemplateFile
+ except ImportError:
+ raise ImportError("zope.app.pagetemplate or z3c.pt required.")
+
from z3c.template import interfaces
+
class Macro(object):
- def __init__(self, template, macroName, view, request, contentType):
- self.template = template
- self.macroName = macroName
+ # XXX: We can't use Zope's `TALInterpreter` class directly
+ # because it (obviously) only supports the Zope page template
+ # implementation. As a workaround or trick we use a wrapper
+ # template.
+ wrapper = PageTemplate()
+ wrapper.write(
+ '<metal:main use-macro="python: options[\'macro\']" />'
+ )
+
+ def __init__(self, template, name, view, request, contentType):
+ self.macro = template.macros[name]
+ self.contentType = contentType
self.view = view
self.request = request
- self.contentType = contentType
def __call__(self, **kwargs):
- render = ptcompat.bind_macro(
- self.template, self.view, self.request, self.macroName)
- return render(content_type=self.contentType, **kwargs)
-
+ kwargs['macro'] = self.macro
+ kwargs.setdefault('view', self.view)
+ kwargs.setdefault('request', self.request)
+ result = self.wrapper(**kwargs)
+
+ if not self.request.response.getHeader("Content-Type"):
+ self.request.response.setHeader(
+ "Content-Type", self.contentType)
+
+ return result
+
+
class TemplateFactory(object):
"""Template factory."""
template = None
def __init__(self, filename, contentType, macro=None):
+ self.contentType = contentType
+ self.template = ViewPageTemplateFile(
+ filename, content_type=contentType)
self.macro = macro
- self.contentType = contentType
- self.template = ptcompat.ViewPageTemplateFile(filename,
- content_type=contentType)
def __call__(self, view, request, context=None):
if self.macro is None:
@@ -51,6 +79,7 @@
return Macro(
self.template, self.macro, view, request, self.contentType)
+
class BoundViewTemplate(object):
def __init__(self, pt, ob):
object.__setattr__(self, 'im_func', pt)
@@ -69,8 +98,8 @@
def __repr__(self):
return "<BoundViewTemplate of %r>" % self.im_self
+
class ViewTemplate(object):
-
def __init__(self, provides=IPageTemplate, name=u''):
self.provides = provides
self.name = name
Modified: z3c.template/trunk/src/z3c/template/tests.py
===================================================================
--- z3c.template/trunk/src/z3c/template/tests.py 2011-10-14 10:51:07 UTC (rev 123093)
+++ z3c.template/trunk/src/z3c/template/tests.py 2011-10-14 14:53:12 UTC (rev 123094)
@@ -22,9 +22,6 @@
import itertools
import unittest
-import z3c.ptcompat
-from z3c.ptcompat.testing import OutputChecker
-
def setUp(test):
root = setup.placefulSetUp(site=True)
test.globs['root'] = root
@@ -33,25 +30,27 @@
setup.placefulTearDown()
def setUpZPT(suite):
- z3c.ptcompat.config.disable()
setUp(suite)
def setUpZ3CPT(suite):
- z3c.ptcompat.config.enable()
setUp(suite)
- xmlconfig.XMLConfig('configure.zcml', z3c.pt)()
+ import z3c.ptcompat
+ xmlconfig.XMLConfig('configure.zcml', z3c.ptcompat)()
+ # We have to cook this template explicitly, because it's a module
+ # global.
+ from z3c.template.template import Macro
+ Macro.wrapper._cook()
+
+
def test_suite():
- checker = OutputChecker(doctest)
tests = ((
doctest.DocFileSuite('README.txt',
setUp=setUp, tearDown=tearDown,
optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS,
- checker=checker,
),
doctest.DocFileSuite('zcml.txt', setUp=setUp, tearDown=tearDown,
optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS,
- checker=checker,
),
) for setUp in (setUpZPT, setUpZ3CPT,))
Modified: z3c.template/trunk/src/z3c/template/zcml.txt
===================================================================
--- z3c.template/trunk/src/z3c/template/zcml.txt 2011-10-14 10:51:07 UTC (rev 123093)
+++ z3c.template/trunk/src/z3c/template/zcml.txt 2011-10-14 14:53:12 UTC (rev 123094)
@@ -66,7 +66,7 @@
and check them:
- >>> from z3c.ptcompat import ViewPageTemplateFile
+ >>> from z3c.template import ViewPageTemplateFile
>>> isinstance(template, ViewPageTemplateFile)
True
More information about the checkins
mailing list