[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