From c5de0ef6c39045c348ee2eab48cd1378b2e1695c Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sat, 11 Jul 2015 16:53:07 -0500 Subject: [PATCH] Modernize to Py2.6+3 --- examples/curve-pot.py | 1 + examples/curve.py | 1 + examples/fourier.py | 1 + sumpy/__init__.py | 1 + sumpy/assignment_collection.py | 7 +++++-- sumpy/codegen.py | 2 ++ sumpy/e2e.py | 15 +++++++++------ sumpy/e2p.py | 15 +++++++++------ sumpy/expansion/__init__.py | 1 + sumpy/expansion/local.py | 7 +++++-- sumpy/expansion/multipole.py | 9 ++++++--- sumpy/fmm.py | 2 ++ sumpy/kernel.py | 3 +++ sumpy/p2e.py | 9 ++++++--- sumpy/p2p.py | 9 ++++++--- sumpy/qbx.py | 12 ++++++++---- sumpy/symbolic.py | 10 +++++++--- sumpy/tools.py | 10 +++++++--- sumpy/visualization.py | 2 ++ test/test_fmm.py | 15 +++++++++------ test/test_kernels.py | 19 +++++++++++-------- 21 files changed, 102 insertions(+), 49 deletions(-) diff --git a/examples/curve-pot.py b/examples/curve-pot.py index 06ce7aeb..777c53ee 100644 --- a/examples/curve-pot.py +++ b/examples/curve-pot.py @@ -1,4 +1,5 @@ from __future__ import division +from __future__ import absolute_import import pyopencl as cl import numpy as np import numpy.linalg as la diff --git a/examples/curve.py b/examples/curve.py index 1a7be77f..36031c3e 100644 --- a/examples/curve.py +++ b/examples/curve.py @@ -1,4 +1,5 @@ from __future__ import division +from __future__ import absolute_import import numpy as np import scipy as sp diff --git a/examples/fourier.py b/examples/fourier.py index 5c94ce18..4c710970 100644 --- a/examples/fourier.py +++ b/examples/fourier.py @@ -1,4 +1,5 @@ from __future__ import division +from __future__ import absolute_import import numpy as np diff --git a/sumpy/__init__.py b/sumpy/__init__.py index 04bdb318..8f9c87b0 100644 --- a/sumpy/__init__.py +++ b/sumpy/__init__.py @@ -1,4 +1,5 @@ from __future__ import division +from __future__ import absolute_import __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" diff --git a/sumpy/assignment_collection.py b/sumpy/assignment_collection.py index 0e97c1cc..bc9feeb5 100644 --- a/sumpy/assignment_collection.py +++ b/sumpy/assignment_collection.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +import six +from six.moves import zip __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" @@ -143,7 +146,7 @@ class SymbolicAssignmentCollection(object): def __str__(self): return "\n".join( "%s <- %s" % (name, expr) - for name, expr in self.assignments.iteritems()) + for name, expr in six.iteritems(self.assignments)) def get_all_dependencies(self, var_name): """Including recursive dependencies.""" @@ -228,7 +231,7 @@ class SymbolicAssignmentCollection(object): rejected_assignments = [] from sumpy.symbolic import is_assignment_nontrivial - for name, value in self.assignments.iteritems(): + for name, value in six.iteritems(self.assignments): if name in self.user_symbols or is_assignment_nontrivial(name, value): approved_assignments.append((name, value)) else: diff --git a/sumpy/codegen.py b/sumpy/codegen.py index ac746fcc..6f1c1d35 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -1,4 +1,6 @@ from __future__ import division +from __future__ import absolute_import +from six.moves import range __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 85ee93e3..1a05da96 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +import six +from six.moves import range __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" @@ -65,7 +68,7 @@ class E2EBase(KernelCacheWrapper): dvec = make_sympy_vector("d", self.dim) src_coeff_exprs = [sp.Symbol("src_coeff%d" % i) - for i in xrange(len(self.src_expansion))] + for i in range(len(self.src_expansion))] from sumpy.assignment_collection import SymbolicAssignmentCollection sac = SymbolicAssignmentCollection() @@ -80,7 +83,7 @@ class E2EBase(KernelCacheWrapper): from sumpy.symbolic import kill_trivial_assignments assignments = kill_trivial_assignments([ (name, expr) - for name, expr in sac.assignments.iteritems()], + for name, expr in six.iteritems(sac.assignments)], retain_names=tgt_coeff_names) from sumpy.codegen import to_loopy_insns @@ -170,8 +173,8 @@ class E2EFromCSR(E2EBase): name=self.name, assumptions="ntgt_boxes>=1", defines=dict( dim=self.dim, - SRC_COEFFIDX=[str(i) for i in xrange(ncoeff_src)], - TGT_COEFFIDX=[str(i) for i in xrange(ncoeff_tgt)], + SRC_COEFFIDX=[str(i) for i in range(ncoeff_src)], + TGT_COEFFIDX=[str(i) for i in range(ncoeff_tgt)], ), silenced_warnings="write_race(write_expn*)") @@ -268,7 +271,7 @@ class E2EFromChildren(E2EBase): defines=dict( dim=self.dim, nchildren=2**self.dim, - COEFFIDX=[str(i) for i in xrange(ncoeffs)], + COEFFIDX=[str(i) for i in range(ncoeffs)], ), silenced_warnings="write_race(write_expn*)") @@ -354,7 +357,7 @@ class E2EFromParent(E2EBase): defines=dict( dim=self.dim, nchildren=2**self.dim, - COEFFIDX=[str(i) for i in xrange(ncoeffs)], + COEFFIDX=[str(i) for i in range(ncoeffs)], ), silenced_warnings="write_race(write_expn*)") diff --git a/sumpy/e2p.py b/sumpy/e2p.py index 2cbbd61a..87db3039 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +import six +from six.moves import range __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" @@ -66,7 +69,7 @@ class E2PBase(KernelCacheWrapper): sac = SymbolicAssignmentCollection() coeff_exprs = [sp.Symbol("coeff%d" % i) - for i in xrange(len(self.expansion.get_coefficient_identifiers()))] + for i in range(len(self.expansion.get_coefficient_identifiers()))] value = self.expansion.evaluate(coeff_exprs, bvec) result_names = [ sac.assign_unique("result_%d_p" % i, @@ -79,7 +82,7 @@ class E2PBase(KernelCacheWrapper): from sumpy.symbolic import kill_trivial_assignments assignments = kill_trivial_assignments([ (name, expr) - for name, expr in sac.assignments.iteritems()], + for name, expr in six.iteritems(sac.assignments)], retain_names=result_names) from sumpy.codegen import to_loopy_insns @@ -149,8 +152,8 @@ class E2PFromSingleBox(E2PBase): name=self.name, assumptions="ntgt_boxes>=1", defines=dict( dim=self.dim, - COEFFIDX=[str(i) for i in xrange(ncoeffs)], - RESULTIDX=[str(i) for i in xrange(len(result_names))], + COEFFIDX=[str(i) for i in range(ncoeffs)], + RESULTIDX=[str(i) for i in range(len(result_names))], nresults=len(result_names), ), silenced_warnings="write_race(write_result*)") @@ -239,8 +242,8 @@ class E2PFromCSR(E2PBase): name=self.name, assumptions="ntgt_boxes>=1", defines=dict( dim=self.dim, - COEFFIDX=[str(i) for i in xrange(ncoeffs)], - RESULTIDX=[str(i) for i in xrange(len(result_names))], + COEFFIDX=[str(i) for i in range(ncoeffs)], + RESULTIDX=[str(i) for i in range(len(result_names))], nresults=len(result_names), ), silenced_warnings="write_race(write_result*)") diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index 9eb04f60..7e4848f2 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -1,4 +1,5 @@ from __future__ import division +from __future__ import absolute_import __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index 5f4e2da2..f70cbe41 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +from six.moves import range +from six.moves import zip __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" @@ -41,7 +44,7 @@ class LineTaylorLocalExpansion(LocalExpansionBase): return k def get_coefficient_identifiers(self): - return range(self.order+1) + return list(range(self.order+1)) def coefficients_from_source(self, avec, bvec): if bvec is None: @@ -120,7 +123,7 @@ class H2DLocalExpansion(LocalExpansionBase): return self.order+k def get_coefficient_identifiers(self): - return range(-self.order, self.order+1) + return list(range(-self.order, self.order+1)) def coefficients_from_source(self, avec, bvec): from sumpy.symbolic import sympy_real_norm_2 diff --git a/sumpy/expansion/multipole.py b/sumpy/expansion/multipole.py index 1d6a289a..19deba91 100644 --- a/sumpy/expansion/multipole.py +++ b/sumpy/expansion/multipole.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +from six.moves import range +from six.moves import zip __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" @@ -55,7 +58,7 @@ class VolumeTaylorMultipoleExpansion( coeff_identifiers = self.get_coefficient_identifiers() result = [0] * len(coeff_identifiers) - for idim in xrange(kernel.dim): + for idim in range(kernel.dim): for i, mi in enumerate(coeff_identifiers): if mi[idim] == 0: continue @@ -115,7 +118,7 @@ class VolumeTaylorMultipoleExpansion( contrib = src_coeff_exprs[src_index] - for idim in xrange(self.dim): + for idim in range(self.dim): n = tgt_mi[idim] k = src_mi[idim] assert n >= k @@ -144,7 +147,7 @@ class H2DMultipoleExpansion(MultipoleExpansionBase): return self.order+k def get_coefficient_identifiers(self): - return range(-self.order, self.order+1) + return list(range(-self.order, self.order+1)) def coefficients_from_source(self, avec, bvec): from sumpy.symbolic import sympy_real_norm_2 diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 92a5c2e2..8a3b2042 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -1,4 +1,6 @@ from __future__ import division +from __future__ import absolute_import +from six.moves import zip __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 1cfc58ff..b29e6237 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +from six.moves import range +from six.moves import zip __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" diff --git a/sumpy/p2e.py b/sumpy/p2e.py index 444f7c33..06327384 100644 --- a/sumpy/p2e.py +++ b/sumpy/p2e.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +import six +from six.moves import range __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" @@ -71,7 +74,7 @@ class P2EBase(KernelCacheWrapper): from sumpy.symbolic import kill_trivial_assignments assignments = kill_trivial_assignments([ (name, expr) - for name, expr in sac.assignments.iteritems()], + for name, expr in six.iteritems(sac.assignments)], retain_names=coeff_names) from sumpy.codegen import to_loopy_insns @@ -131,7 +134,7 @@ class P2EFromSingleBox(P2EBase): name=self.name, assumptions="nsrc_boxes>=1", defines=dict( dim=self.dim, - COEFFIDX=[str(i) for i in xrange(ncoeffs)] + COEFFIDX=[str(i) for i in range(ncoeffs)] ), silenced_warnings="write_race(write_expn*)") @@ -220,7 +223,7 @@ class P2EFromCSR(P2EBase): name=self.name, assumptions="ntgt_boxes>=1", defines=dict( dim=self.dim, - COEFFIDX=[str(i) for i in xrange(ncoeffs)] + COEFFIDX=[str(i) for i in range(ncoeffs)] ), silenced_warnings="write_race(write_expn*)") diff --git a/sumpy/p2p.py b/sumpy/p2p.py index c86c1e1d..47557760 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +import six +from six.moves import range __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" @@ -71,7 +74,7 @@ class P2PBase(KernelComputation, KernelCacheWrapper): sac.run_global_cse() from sumpy.codegen import to_loopy_insns - loopy_insns = to_loopy_insns(sac.assignments.iteritems(), + loopy_insns = to_loopy_insns(six.iteritems(sac.assignments), vector_names=set(["d"]), pymbolic_expr_maps=[knl.transform_to_code for knl in self.kernels], complex_dtype=np.complex128 # FIXME @@ -139,7 +142,7 @@ class P2P(P2PBase): ] + gather_loopy_source_arguments(self.kernels), name=self.name, assumptions="nsources>=1 and ntargets>=1", defines=dict( - KNLIDX=range(len(exprs)), + KNLIDX=list(range(len(exprs))), dim=self.dim, nstrengths=self.strength_count, nresults=len(self.kernels), @@ -254,7 +257,7 @@ class P2PFromCSR(P2PBase): ] + gather_loopy_source_arguments(self.kernels), name=self.name, assumptions="ntgt_boxes>=1", defines=dict( - KNLIDX=range(len(exprs)), + KNLIDX=list(range(len(exprs))), dim=self.dim, nstrengths=self.strength_count, nkernels=len(self.kernels), diff --git a/sumpy/qbx.py b/sumpy/qbx.py index 3138ce19..2df73007 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -1,4 +1,8 @@ from __future__ import division +from __future__ import absolute_import +import six +from six.moves import range +from six.moves import zip __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" @@ -101,7 +105,7 @@ class LayerPotentialBase(KernelComputation): from sumpy.symbolic import kill_trivial_assignments assignments = kill_trivial_assignments([ (name, expr.subs("tau", 0)) - for name, expr in sac.assignments.iteritems()], + for name, expr in six.iteritems(sac.assignments)], retain_names=result_names) from sumpy.codegen import to_loopy_insns @@ -145,7 +149,7 @@ class LayerPotentialBase(KernelComputation): for i, (expr, dtype) in enumerate(zip(exprs, self.value_dtypes)) ]+self.get_result_store_instructions(), arguments, - defines=dict(KNLIDX=range(len(exprs))), + defines=dict(KNLIDX=list(range(len(exprs)))), name=self.name, assumptions="nsources>=1 and ntargets>=1", default_offset=lp.auto, ) @@ -198,10 +202,10 @@ class LayerPotential(LayerPotentialBase): def get_input_and_output_arguments(self): return [ lp.GlobalArg("strength_%d" % i, None, shape="nsources", order="C") - for i in xrange(self.strength_count) + for i in range(self.strength_count) ]+[ lp.GlobalArg("result_%d" % i, None, shape="ntargets", order="C") - for i in xrange(len(self.kernels)) + for i in range(len(self.kernels)) ] def get_result_store_instructions(self): diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index ae720fa0..fa40dfb9 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -1,4 +1,8 @@ from __future__ import division +from __future__ import absolute_import +import six +from six.moves import range +from six.moves import zip __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" @@ -90,7 +94,7 @@ class _DerivativeKiller(IdentityMapperBase): def _get_assignments_in_maxima(assignments, prefix=""): - my_variable_names = set(assignments.iterkeys()) + my_variable_names = set(six.iterkeys(assignments)) written_assignments = set() prefix_subst_dict = dict( @@ -118,7 +122,7 @@ def _get_assignments_in_maxima(assignments, prefix=""): assignments[name].subs(prefix_subst_dict)))))) written_assignments.add(name) - for name in assignments.iterkeys(): + for name in six.iterkeys(assignments): if name not in written_assignments: write_assignment(name) @@ -146,7 +150,7 @@ def checked_cse(exprs, symbols=None): outf.write("ratprint:false;\n") outf.write("%s\n\n" % max_old) outf.write("%s\n" % max_new) - for i in xrange(len(exprs)): + for i in range(len(exprs)): outf.write("print(\"diff in expr %d:\n\");\n" % i) outf.write("print(ratsimp(old_expr%d - new_expr%d));\n" % (i, i)) diff --git a/sumpy/tools.py b/sumpy/tools.py index 271444ae..f6c293be 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -1,4 +1,8 @@ from __future__ import division +from __future__ import absolute_import +import six +from six.moves import range +from six.moves import zip __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" @@ -109,7 +113,7 @@ def gather_arguments(kernel_likes): result[arg.name] = arg # FIXME: possibly check that arguments match before overwriting - return sorted(result.itervalues(), key=lambda arg: arg.name) + return sorted(six.itervalues(result), key=lambda arg: arg.name) def gather_source_arguments(kernel_likes): @@ -119,7 +123,7 @@ def gather_source_arguments(kernel_likes): result[arg.name] = arg # FIXME: possibly check that arguments match before overwriting - return sorted(result.itervalues(), key=lambda arg: arg.name) + return sorted(six.itervalues(result), key=lambda arg: arg.name) def gather_loopy_arguments(kernel_likes): @@ -212,7 +216,7 @@ class KernelCacheWrapper(object): import loopy.version cache_key = ( self.get_cache_key() - + tuple(sorted(kwargs.iteritems())) + + tuple(sorted(six.iteritems(kwargs))) + (loopy.version.DATA_MODEL_VERSION,)) try: diff --git a/sumpy/visualization.py b/sumpy/visualization.py index d175b0f7..a0c0c06e 100644 --- a/sumpy/visualization.py +++ b/sumpy/visualization.py @@ -1,4 +1,6 @@ from __future__ import division +from __future__ import absolute_import +from six.moves import range __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" diff --git a/test/test_fmm.py b/test/test_fmm.py index 0726ca76..94be2b96 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function +from six.moves import range __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" @@ -83,7 +86,7 @@ def test_sumpy_fmm(ctx_getter, knl, local_expn_class, mpole_expn_class): fp = FieldPlotter(np.array([0.5, 0]), extent=3, npoints=200) from pytools.obj_array import make_obj_array targets = make_obj_array( - [fp.points[i] for i in xrange(knl.dim)]) + [fp.points[i] for i in range(knl.dim)]) from boxtree import TreeBuilder tb = TreeBuilder(ctx) @@ -102,10 +105,10 @@ def test_sumpy_fmm(ctx_getter, knl, local_expn_class, mpole_expn_class): host_trav = trav.get() if 1: - print "src_box", host_tree.find_box_nr_for_source(403) - print "tgt_box", host_tree.find_box_nr_for_target(28) - print list(host_trav.target_or_target_parent_boxes).index(37) - print host_trav.get_box_list("sep_bigger", 22) + print("src_box", host_tree.find_box_nr_for_source(403)) + print("tgt_box", host_tree.find_box_nr_for_target(28)) + print(list(host_trav.target_or_target_parent_boxes).index(37)) + print(host_trav.get_box_list("sep_bigger", 22)) from boxtree.visualization import TreePlotter plotter = TreePlotter(host_tree) @@ -166,7 +169,7 @@ def test_sumpy_fmm(ctx_getter, knl, local_expn_class, mpole_expn_class): pconv_verifier.add_data_point(order, rel_err) - print pconv_verifier + print(pconv_verifier) pconv_verifier() diff --git a/test/test_kernels.py b/test/test_kernels.py index c44324d5..a520fa4e 100644 --- a/test/test_kernels.py +++ b/test/test_kernels.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function +from six.moves import range __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" @@ -75,7 +78,7 @@ def test_p2p(ctx_getter): targets = targets.T sources = sources.T - for itarg in xrange(n): + for itarg in range(n): potential_ref[itarg] = np.sum( strengths / @@ -84,7 +87,7 @@ def test_p2p(ctx_getter): potential_ref *= 1/(4*np.pi) rel_err = la.norm(potential - potential_ref)/la.norm(potential_ref) - print rel_err + print(rel_err) assert rel_err < 1e-3 @@ -262,7 +265,7 @@ def test_p2e2p(ctx_getter, base_knl, expn_class, order, with_source_derivative): eoc_rec_pot.add_data_point(h, err_pot) eoc_rec_grad_x.add_data_point(h, err_grad_x) - print expn_class, knl, order + print(expn_class, knl, order) print("POTENTIAL:") print(eoc_rec_pot) print("X TARGET DERIVATIVE:") @@ -524,11 +527,11 @@ def test_translations(ctx_getter, knl, local_expn_class, mpole_expn_class): ("p2m2m2l2p", pconv_verifier_p2m2m2l2p), ("full", pconv_verifier_full), ]: - print 30*"-" - print name - print 30*"-" - print verifier - print 30*"-" + print(30*"-") + print(name) + print(30*"-") + print(verifier) + print(30*"-") verifier() -- GitLab