[Checkins] SVN: z3c.template/trunk/ - Moved z3c.pt include to extras_require chameleon. This makes the package
Roger Ineichen
roger at projekt01.ch
Sat Oct 29 21:03:18 UTC 2011
Log message for revision 123181:
- Moved z3c.pt include to extras_require chameleon. This makes the package
independent from chameleon and friends and allows to include this
dependencies in your own project.
- Upgrade to chameleon 2.0 template engine and use the newest z3c.pt and
z3c.ptcompat packages adjusted to work with chameleon 2.0.
See the notes from the z3c.ptcompat package:
Update z3c.ptcompat implementation to use component-based template engine
configuration, plugging directly into the Zope Toolkit framework.
The z3c.ptcompat package no longer provides template classes, or ZCML
directives; you should import directly from the ZTK codebase.
Note that the ``PREFER_Z3C_PT`` environment option has been
rendered obsolete; instead, this is now managed via component
configuration.
Also note that the chameleon CHAMELEON_CACHE environment value changed from
True/False to a path. Skip this property if you don't like to use a cache.
None or False defined in buildout environment section doesn't work. At least
with chameleon <= 2.5.4
Attention: You need to include the configure.zcml file from z3c.ptcompat
for enable the z3c.pt template engine. The configure.zcml will plugin the
template engine. Also remove any custom built hooks which will import
z3c.ptcompat in your tests or other places.
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/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-29 21:02:09 UTC (rev 123180)
+++ z3c.template/trunk/CHANGES.txt 2011-10-29 21:03:17 UTC (rev 123181)
@@ -2,11 +2,38 @@
CHANGES
=======
-1.3.0 (2011-10-28)
+1.3.0 (2011-10-29)
------------------
-- Update to z3c.ptcompat 1.0 (and as a result, to the z3c.pt 2.x series).
+- Moved z3c.pt include to extras_require chameleon. This makes the package
+ independent from chameleon and friends and allows to include this
+ dependencies in your own project.
+- Upgrade to chameleon 2.0 template engine and use the newest z3c.pt and
+ z3c.ptcompat packages adjusted to work with chameleon 2.0.
+
+ See the notes from the z3c.ptcompat package:
+
+ Update z3c.ptcompat implementation to use component-based template engine
+ configuration, plugging directly into the Zope Toolkit framework.
+
+ The z3c.ptcompat package no longer provides template classes, or ZCML
+ directives; you should import directly from the ZTK codebase.
+
+ Note that the ``PREFER_Z3C_PT`` environment option has been
+ rendered obsolete; instead, this is now managed via component
+ configuration.
+
+ Also note that the chameleon CHAMELEON_CACHE environment value changed from
+ True/False to a path. Skip this property if you don't like to use a cache.
+ None or False defined in buildout environment section doesn't work. At least
+ with chameleon <= 2.5.4
+
+ Attention: You need to include the configure.zcml file from z3c.ptcompat
+ for enable the z3c.pt template engine. The configure.zcml will plugin the
+ template engine. Also remove any custom built hooks which will import
+ z3c.ptcompat in your tests or other places.
+
- Using Python's ``doctest`` module instead of depreacted
``zope.testing.doctest``.
Modified: z3c.template/trunk/buildout.cfg
===================================================================
--- z3c.template/trunk/buildout.cfg 2011-10-29 21:02:09 UTC (rev 123180)
+++ z3c.template/trunk/buildout.cfg 2011-10-29 21:03:17 UTC (rev 123181)
@@ -1,7 +1,20 @@
[buildout]
develop = .
-parts = test
+parts = test coverage-test coverage-report
[test]
recipe = zc.recipe.testrunner
eggs = z3c.template [test]
+
+
+[coverage-test]
+recipe = zc.recipe.testrunner
+eggs = z3c.template [test]
+defaults = ['--coverage', '../../coverage']
+
+
+[coverage-report]
+recipe = zc.recipe.egg
+eggs = z3c.coverage
+scripts = coveragereport
+arguments = ('parts/coverage', 'parts/coverage/report')
Modified: z3c.template/trunk/setup.py
===================================================================
--- z3c.template/trunk/setup.py 2011-10-29 21:02:09 UTC (rev 123180)
+++ z3c.template/trunk/setup.py 2011-10-29 21:03:17 UTC (rev 123181)
@@ -53,10 +53,16 @@
package_dir = {'':'src'},
namespace_packages = ['z3c'],
extras_require = dict(
- test = ['zope.app.testing',
- 'zope.app.pagetemplate',
- 'zope.testing',
- 'z3c.ptcompat>=1.0'],
+ test = [
+ 'zope.app.testing',
+ 'zope.app.pagetemplate',
+ 'zope.testing',
+ 'z3c.ptcompat>=1.0',
+ ],
+ chameleon = [
+ 'z3c.pt >= 2.1',
+ 'z3c.ptcompat',
+ ],
),
install_requires = [
'setuptools',
Modified: z3c.template/trunk/src/z3c/template/README.txt
===================================================================
--- z3c.template/trunk/src/z3c/template/README.txt 2011-10-29 21:02:09 UTC (rev 123180)
+++ z3c.template/trunk/src/z3c/template/README.txt 2011-10-29 21:03:17 UTC (rev 123181)
@@ -78,6 +78,8 @@
The template factory allows us to create a ViewPageTeplateFile instance.
>>> factory = TemplateFactory(contentTemplate, 'text/html')
+ >>> factory
+ <z3c.template.template.TemplateFactory object at ...>
We register the factory on a view interface and a layer.
@@ -88,10 +90,9 @@
>>> template = component.getMultiAdapter((view, request),
... interfaces.IPageTemplate)
- >>> from z3c.template import ViewPageTemplateFile
- >>> isinstance(template, ViewPageTemplateFile)
- True
-
+ >>> template
+ <...ViewPageTemplateFile...>
+
Now that we have a registered layout template for the default layer we can
call our view again.
@@ -171,8 +172,8 @@
>>> layout = component.getMultiAdapter(
... (view2, request), interfaces.ILayoutTemplate)
- >>> isinstance(layout, ViewPageTemplateFile)
- True
+ >>> layout
+ <...ViewPageTemplateFile...>
Now that we have a registered layout template for the default layer we can
call our view again.
Modified: z3c.template/trunk/src/z3c/template/template.py
===================================================================
--- z3c.template/trunk/src/z3c/template/template.py 2011-10-29 21:02:09 UTC (rev 123180)
+++ z3c.template/trunk/src/z3c/template/template.py 2011-10-29 21:03:17 UTC (rev 123181)
@@ -20,15 +20,11 @@
from zope.pagetemplate.pagetemplate import PageTemplate
try:
- from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile
- ViewPageTemplateFile # Satisfy pyflakes
+ # use z3c.pt if available
+ from z3c.pt.pagetemplate import ViewPageTemplateFile
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.")
+ # or default if not
+ from zope.browserpage.viewpagetemplatefile import ViewPageTemplateFile
from z3c.template import interfaces
@@ -38,6 +34,7 @@
# 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\']" />'
Modified: z3c.template/trunk/src/z3c/template/tests.py
===================================================================
--- z3c.template/trunk/src/z3c/template/tests.py 2011-10-29 21:02:09 UTC (rev 123180)
+++ z3c.template/trunk/src/z3c/template/tests.py 2011-10-29 21:03:17 UTC (rev 123181)
@@ -22,21 +22,41 @@
import itertools
import unittest
+import z3c.template.template
+
+
+_templateViewClass = z3c.template.template.ViewPageTemplateFile
+
def setUp(test):
root = setup.placefulSetUp(site=True)
test.globs['root'] = root
def tearDown(test):
+ global _templateViewClass
+ z3c.template.template.ViewPageTemplateFile = _templateViewClass
setup.placefulTearDown()
def setUpZPT(suite):
setUp(suite)
+ # apply correct template classes
+ global _templateViewClass
+ _templateViewClass = z3c.template.template.ViewPageTemplateFile
+ from zope.browserpage.viewpagetemplatefile import ViewPageTemplateFile
+ z3c.template.template.ViewPageTemplateFile = ViewPageTemplateFile
def setUpZ3CPT(suite):
setUp(suite)
+ import z3c.pt
import z3c.ptcompat
+ xmlconfig.XMLConfig('configure.zcml', z3c.pt)()
xmlconfig.XMLConfig('configure.zcml', z3c.ptcompat)()
+ # apply correct template classes
+ global _templateViewClass
+ _templateViewClass = z3c.template.template.ViewPageTemplateFile
+ from z3c.pt.pagetemplate import ViewPageTemplateFile
+ z3c.template.template.ViewPageTemplateFile = ViewPageTemplateFile
+
# We have to cook this template explicitly, because it's a module
# global.
from z3c.template.template import Macro
Modified: z3c.template/trunk/src/z3c/template/zcml.txt
===================================================================
--- z3c.template/trunk/src/z3c/template/zcml.txt 2011-10-29 21:02:09 UTC (rev 123180)
+++ z3c.template/trunk/src/z3c/template/zcml.txt 2011-10-29 21:03:17 UTC (rev 123181)
@@ -66,7 +66,7 @@
and check them:
- >>> from z3c.template import ViewPageTemplateFile
+ >>> from z3c.template.template import ViewPageTemplateFile
>>> isinstance(template, ViewPageTemplateFile)
True
@@ -102,7 +102,7 @@
and check them:
- >>> isinstance(layout, ViewPageTemplateFile)
+ >>> isinstance(template, ViewPageTemplateFile)
True
>>> print layout(view)
More information about the checkins
mailing list