diff --git a/src/App/ProductContext.py b/src/App/ProductContext.py index 507929684b..993c76d398 100644 --- a/src/App/ProductContext.py +++ b/src/App/ProductContext.py @@ -214,10 +214,16 @@ class DummyHelp(object): return DummyHelp() -class AttrDict: +class AttrDict(object): def __init__(self, ob): self.ob = ob + def __contains__(self, name): + return hasattr(self.ob, name) + + def __getitem__(self, name): + return getattr(self.ob, name) + def __setitem__(self, name, v): setattr(self.ob, name, v) diff --git a/src/Products/PageTemplates/Expressions.py b/src/Products/PageTemplates/Expressions.py index 21d2777ec5..8ccd3aa67a 100644 --- a/src/Products/PageTemplates/Expressions.py +++ b/src/Products/PageTemplates/Expressions.py @@ -356,7 +356,7 @@ def __next__(self): def next(self): if self._nextIndex > 0: self._last_item = self.item - return next(super(ZopeIterator, self)) + return super(ZopeIterator, self).next() @implementer(ITraversable) diff --git a/src/ZPublisher/HTTPRequest.py b/src/ZPublisher/HTTPRequest.py index c46b4be0f8..2e1b2d4889 100644 --- a/src/ZPublisher/HTTPRequest.py +++ b/src/ZPublisher/HTTPRequest.py @@ -1408,6 +1408,9 @@ def __getattr__(self, key, default=_marker, returnTaints=0): def set_lazy(self, key, callable): self._lazies[key] = callable + def __contains__(self, key): + return self.has_key(key) # NOQA + def has_key(self, key, returnTaints=0): try: self.__getitem__(key, returnTaints=returnTaints) diff --git a/src/ZTUtils/Tree.py b/src/ZTUtils/Tree.py index 5f67a2f9e3..d707773fe3 100644 --- a/src/ZTUtils/Tree.py +++ b/src/ZTUtils/Tree.py @@ -19,6 +19,11 @@ from Acquisition import Explicit from ComputedAttribute import ComputedAttribute +try: + maketrans = str.maketrans +except AttributeError: # Py2 + from string import maketrans + class TreeNode(Explicit): __allow_access_to_unprotected_subobjects__ = 1 @@ -231,8 +236,8 @@ def simple_type(ob, return is_simple(type(ob)) -a2u_map = str.maketrans('+/=', '-._') -u2a_map = str.maketrans('-._', '+/=') +a2u_map = maketrans('+/=', '-._') +u2a_map = maketrans('-._', '+/=') def b2a(s):