[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