[Checkins] SVN: z3c.jbot/trunk/ Zope 2.12 compability.

Malthe Borch mborch at gmail.com
Mon Feb 8 19:36:28 EST 2010


Log message for revision 108888:
  Zope 2.12 compability.

Changed:
  U   z3c.jbot/trunk/CHANGES.txt
  D   z3c.jbot/trunk/z3c/jbot/__init__.py
  A   z3c.jbot/trunk/z3c/jbot/configure.zcml
  A   z3c.jbot/trunk/z3c/jbot/patches.py
  U   z3c.jbot/trunk/z3c/jbot/tests/test_doctests.py
  U   z3c.jbot/trunk/z3c/jbot/tests/test_five.py

-=-
Modified: z3c.jbot/trunk/CHANGES.txt
===================================================================
--- z3c.jbot/trunk/CHANGES.txt	2010-02-08 23:48:18 UTC (rev 108887)
+++ z3c.jbot/trunk/CHANGES.txt	2010-02-09 00:36:28 UTC (rev 108888)
@@ -3,6 +3,8 @@
 
 In next release...
 
+- Zope 2.12 compatibility. [malthe]
+
 - Added support for automatic configuration. [malthe]
 
 - Fixed layer specialization ordering. [malthe]

Deleted: z3c.jbot/trunk/z3c/jbot/__init__.py
===================================================================
--- z3c.jbot/trunk/z3c/jbot/__init__.py	2010-02-08 23:48:18 UTC (rev 108887)
+++ z3c.jbot/trunk/z3c/jbot/__init__.py	2010-02-09 00:36:28 UTC (rev 108888)
@@ -1,127 +0,0 @@
-from zope.pagetemplate.pagetemplatefile import PageTemplateFile
-
-try:
-    from Acquisition.interfaces import IAcquirer
-except ImportError:
-    IAcquirer = None
-
-import utility
-import logging
-
-logger = logging.getLogger('jbot')
-
-# Standard PageTemplateFile
-
-PT_CLASSES = [PageTemplateFile]
-
-try:
-    import Products.PageTemplates.PageTemplateFile
-    PT_CLASSES.append(Products.PageTemplates.PageTemplateFile.PageTemplateFile)
-except:
-    pass
-
-registry = {}
-
-def get(template, view=None, cls=None):
-    layer = utility.getLayer()
-    key = layer, template
-    inst = registry.get(key)
-    if inst is None:
-        cls = type(template)
-        inst = registry[key] = cls.__new__(cls)
-        inst.__dict__ = template.__dict__.copy()
-
-    for manager in utility.getManagers():
-        # register template; this call returns ``True`` if the
-        # template was invalidated (changed filename)
-        if manager.registerTemplate(inst, template):
-            inst._v_last_read = False
-            break
-
-    if view is not None and IAcquirer is not None:
-        if IAcquirer.providedBy(inst) and IAcquirer.providedBy(view):
-            return inst.__of__(view)
-
-    return inst
-
-for pt_class in PT_CLASSES:
-    pt_class.__get__ = get
-    logger.info(repr(pt_class))
-
-# Zope 2.12 ViewPageTemplateFile
-
-try:
-    from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile as FiveViewPageTemplateFile
-    from Products.Five.browser.pagetemplatefile import BoundPageTemplate as FiveBoundPageTemplate
-except ImportError:
-    pass
-else:
-    pt_class = FiveViewPageTemplateFile
-    bind = pt_class.__get__
-
-    def five_get_and_bind(template, view=None, cls=None):
-        inst = get(template, view, cls)
-        if inst._v_last_read is False:
-            inst.read()
-        return bind(inst, view, cls)
-
-    pt_class.__get__ = five_get_and_bind
-    logger.info(repr(pt_class))
-
-# five.pt / Chameleon
-
-try:
-    import five.pt.pagetemplate
-except ImportError:
-    pass
-else:
-    pt_class = five.pt.pagetemplate.ViewPageTemplateFile
-    bind = pt_class.__get__
-
-    def get_and_bind(template, view=None, cls=None):
-        inst = get(template, view, cls)
-        if inst._v_last_read is False:
-            inst.registry.purge()
-            inst.read()
-        return bind(inst, view, cls)
-
-    pt_class.__get__ = get_and_bind
-    logger.info(repr(pt_class))
-
-# CMF skin layer resources
-
-try:
-    import Products.CMFCore.FSObject
-except ImportError:
-    pass
-else:
-    fs_class = Products.CMFCore.FSObject.FSObject
-
-    def get_skin_obj(obj, view=None, cls=None):
-        layer = utility.getLayer()
-        key = layer, obj
-        inst = registry.get(key)
-        if inst is None:
-            cls = type(obj)
-            inst = registry[key] = cls.__new__(cls)
-            inst.__dict__ = obj.__dict__.copy()
-
-        for manager in utility.getManagers():
-            # register template; this call returns ``True`` if the
-            # template was invalidated (changed filename)
-            if manager.registerTemplate(inst, obj):
-                inst._parsed = False
-                inst.getObjectFSPath()
-
-        return inst
-
-    def get_filename(obj, *args):
-        return obj._filepath
-
-    def set_filename(obj, value, *args):
-        obj._filepath = value
-
-    fs_class.__get__ = get_skin_obj
-    fs_class.filename = property(get_filename, set_filename)
-
-    logger.info(repr(fs_class))

Added: z3c.jbot/trunk/z3c/jbot/configure.zcml
===================================================================
--- z3c.jbot/trunk/z3c/jbot/configure.zcml	                        (rev 0)
+++ z3c.jbot/trunk/z3c/jbot/configure.zcml	2010-02-09 00:36:28 UTC (rev 108888)
@@ -0,0 +1,8 @@
+<configure xmlns="http://namespaces.zope.org/zope"
+           xmlns:zcml="http://namespaces.zope.org/zcml">
+
+  <include zcml:condition="installed five.pt" package="five.pt" />
+  <include file="meta.zcml" />
+  <include package="z3c.jbot.patches" />
+
+</configure>
\ No newline at end of file

Copied: z3c.jbot/trunk/z3c/jbot/patches.py (from rev 108867, z3c.jbot/trunk/z3c/jbot/__init__.py)
===================================================================
--- z3c.jbot/trunk/z3c/jbot/patches.py	                        (rev 0)
+++ z3c.jbot/trunk/z3c/jbot/patches.py	2010-02-09 00:36:28 UTC (rev 108888)
@@ -0,0 +1,130 @@
+from zope.pagetemplate.pagetemplatefile import PageTemplateFile
+
+try:
+    from Acquisition.interfaces import IAcquirer
+except ImportError:
+    IAcquirer = None
+
+import utility
+import logging
+
+logger = logging.getLogger('jbot')
+
+# Standard PageTemplateFile
+
+PT_CLASSES = [PageTemplateFile]
+
+try:
+    import Products.PageTemplates.PageTemplateFile
+    PT_CLASSES.append(Products.PageTemplates.PageTemplateFile.PageTemplateFile)
+except:
+    pass
+
+registry = {}
+
+def get(template, view=None, cls=None):
+    layer = utility.getLayer()
+    key = layer, template
+    inst = registry.get(key)
+    if inst is None:
+        cls = type(template)
+        inst = registry[key] = cls.__new__(cls)
+        inst.__dict__ = template.__dict__.copy()
+
+    for manager in utility.getManagers():
+        # register template; this call returns ``True`` if the
+        # template was invalidated (changed filename)
+        if manager.registerTemplate(inst, template):
+            inst._v_last_read = False
+            break
+
+    if view is not None and IAcquirer is not None:
+        if IAcquirer.providedBy(inst) and IAcquirer.providedBy(view):
+            return inst.__of__(view)
+
+    return inst
+
+# five.pt / Chameleon
+try:
+    from five.pt.pagetemplate import ViewPageTemplateFile as \
+         pt_class
+except ImportError:
+    pass
+else:
+    five_bind = pt_class.__get__
+
+    def get_and_bind(template, view=None, cls=None):
+        inst = get(template, view, cls)
+        if inst._v_last_read is False:
+            inst.registry.purge()
+            inst.read()
+        return five_bind(inst, view, cls)
+
+    pt_class.__get__ = get_and_bind
+    logger.info(repr(pt_class))
+
+    del pt_class
+
+# Zope 2.12 ViewPageTemplateFile; note that we import
+# ``BoundPageTemplate`` to provoke an import-error on Zope 2.10.
+try:
+    from Products.Five.browser.pagetemplatefile import \
+         ViewPageTemplateFile as pt_class
+    from Products.Five.browser.pagetemplatefile import \
+         BoundPageTemplate
+except ImportError:
+    pass
+else:
+    zope_bind = pt_class.__get__
+
+    def five_get_and_bind(template, view=None, cls=None):
+        inst = get(template, view, cls)
+        if inst._v_last_read is False:
+            inst.read()
+        return zope_bind(inst, view, cls)
+
+    pt_class.__get__ = five_get_and_bind
+    logger.info(repr(pt_class))
+
+    del pt_class
+
+for pt_class in PT_CLASSES:
+    pt_class.__get__ = get
+    logger.info(repr(pt_class))
+
+# CMF skin layer resources
+try:
+    from Products.CMFCore.FSObject import FSObject as fs_class
+except ImportError:
+    pass
+else:
+    of = fs_class.__of__
+
+    def get_skin_obj(obj, view=None, cls=None):
+        layer = utility.getLayer()
+        key = layer, obj
+        inst = registry.get(key)
+        if inst is None:
+            cls = obj.__class__
+            inst = registry[key] = cls.__new__(cls)
+            inst.__dict__ = obj.__dict__.copy()
+
+        for manager in utility.getManagers():
+            # register template; this call returns ``True`` if the
+            # template was invalidated (changed filename)
+            if manager.registerTemplate(inst, obj):
+                inst._parsed = False
+                inst.getObjectFSPath()
+
+        return of(inst, view)
+
+    def get_filename(obj, *args):
+        return obj._filepath
+
+    def set_filename(obj, value, *args):
+        obj._filepath = value
+
+    fs_class.__of__ = get_skin_obj
+    fs_class.filename = property(get_filename, set_filename)
+
+    logger.info(repr(fs_class))

Modified: z3c.jbot/trunk/z3c/jbot/tests/test_doctests.py
===================================================================
--- z3c.jbot/trunk/z3c/jbot/tests/test_doctests.py	2010-02-08 23:48:18 UTC (rev 108887)
+++ z3c.jbot/trunk/z3c/jbot/tests/test_doctests.py	2010-02-09 00:36:28 UTC (rev 108888)
@@ -8,6 +8,10 @@
 
 import zope.component.testing
 
+def setUp(test):
+    zope.component.testing.setUp(test)
+    import z3c.jbot.patches
+
 def test_suite():
     globs = dict(
         interface=zope.interface,
@@ -17,7 +21,7 @@
         zope.testing.doctest.DocFileSuite(
             'README.txt',
             optionflags=OPTIONFLAGS,
-            setUp=zope.component.testing.setUp,
+            setUp=setUp,
             tearDown=zope.component.testing.tearDown,
             globs=globs,
             package="z3c.jbot"),

Modified: z3c.jbot/trunk/z3c/jbot/tests/test_five.py
===================================================================
--- z3c.jbot/trunk/z3c/jbot/tests/test_five.py	2010-02-08 23:48:18 UTC (rev 108887)
+++ z3c.jbot/trunk/z3c/jbot/tests/test_five.py	2010-02-09 00:36:28 UTC (rev 108888)
@@ -4,6 +4,7 @@
     def setUp(self):
         import zope.component.testing
         zope.component.testing.setUp(self)
+        import z3c.jbot.patches
 
         from Products.Five.browser.pagetemplatefile import \
              ZopeTwoPageTemplateFile as Template



More information about the checkins mailing list