diff --git a/grudge/symbolic/mappers/__init__.py b/grudge/symbolic/mappers/__init__.py index 14fea40a18c1edf788ee660d80a479a12a3e4bfa..32ad7b8c87419ef21c686247131017ee984f6da7 100644 --- a/grudge/symbolic/mappers/__init__.py +++ b/grudge/symbolic/mappers/__init__.py @@ -25,6 +25,8 @@ THE SOFTWARE. """ +import six + import numpy as np import pymbolic.primitives import pymbolic.mapper.stringifier @@ -1135,7 +1137,7 @@ class _InnerDerivativeJoiner(pymbolic.mapper.RecursiveMapper): else: return self.rec(expr, derivatives) - for operator, operands in sub_derivatives.iteritems(): + for operator, operands in six.iteritem(sub_derivatives): for operand in operands: derivatives.setdefault(operator, []).append( factor*operand) @@ -1185,7 +1187,7 @@ class DerivativeJoiner(CSECachingMapperMixin, IdentityMapper): if not sub_derivatives: return expr else: - for operator, operands in sub_derivatives.iteritems(): + for operator, operands in six.iteritems(sub_derivatives): derivatives.setdefault(operator, []).extend(operands) return result @@ -1194,7 +1196,7 @@ class DerivativeJoiner(CSECachingMapperMixin, IdentityMapper): new_children = [invoke_idj(child) for child in expr.children] - for operator, operands in derivatives.iteritems(): + for operator, operands in six.iteritems(derivatives): new_children.insert(0, operator( sum(self.rec(operand) for operand in operands))) diff --git a/grudge/symbolic/mappers/type_inference.py b/grudge/symbolic/mappers/type_inference.py index 0d77d71a1268a0271ac1e7e69923be7766aeac00..a90d4348a455b07a95d78f7877f3f1f210dcb77a 100644 --- a/grudge/symbolic/mappers/type_inference.py +++ b/grudge/symbolic/mappers/type_inference.py @@ -24,6 +24,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ +import six import pymbolic.mapper from grudge import sym @@ -348,8 +349,10 @@ class TypeDict(object): self.change_flag = True self.container[expr] = tp - def iteritems(self): - return self.container.iteritems() + def items(self): + return six.iteritems(self.container) + + iteritems = items # }}} @@ -380,7 +383,7 @@ class TypeInferrer(pymbolic.mapper.RecursiveMapper): break # check that type inference completed successfully - for expr, tp in typedict.iteritems(): + for expr, tp in six.iteritems(typedict): if not isinstance(tp, type_info.FinalType): raise RuntimeError("type inference was unable to deduce " "complete type information for '%s' (only '%s')" diff --git a/grudge/symbolic/operators.py b/grudge/symbolic/operators.py index 923092142e1d7ecf7ee11d596aced56d32c79054..58a093f705198231b889d696c7593d570034bf23 100644 --- a/grudge/symbolic/operators.py +++ b/grudge/symbolic/operators.py @@ -1,7 +1,6 @@ """Building blocks and mappers for operator expression trees.""" -from __future__ import division -from __future__ import absolute_import +from __future__ import division, absolute_import __copyright__ = "Copyright (C) 2008 Andreas Kloeckner" @@ -25,6 +24,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ +from six.moves import intern import numpy as np import numpy.linalg as la