diff --git a/doc/conf.py b/doc/conf.py index 3459446fdf9541ccc4695130aa828cfb42cd3578..607a13119bca489b410ae78ac964882e52061c05 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import # -*- coding: utf-8 -*- # # grudge documentation build configuration file, created by diff --git a/examples/advection/advection.py b/examples/advection/advection.py index e912531c3179dd67e7d886391edf3bb91ce17c7d..5179e9141a07b5f88dbb9e698f9757ddb43e2dbe 100644 --- a/examples/advection/advection.py +++ b/examples/advection/advection.py @@ -16,6 +16,8 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy import numpy.linalg as la @@ -62,7 +64,7 @@ def main(write_output=True, flux_type_arg="upwind"): mesh = make_cylinder_mesh(max_volume=0.04, height=2, boundary_tagger=boundary_tagger, periodic=False, radial_subdivisions=32) else: - raise RuntimeError, "bad number of dimensions" + raise RuntimeError("bad number of dimensions") norm_v = la.norm(v) @@ -98,7 +100,7 @@ def main(write_output=True, flux_type_arg="upwind"): stepper = LSRK4TimeStepper() if rcon.is_head_rank: - print "%d elements" % len(discr.mesh.elements) + print("%d elements" % len(discr.mesh.elements)) # diagnostics setup ------------------------------------------------------- from pytools.log import LogManager, \ @@ -148,7 +150,7 @@ def main(write_output=True, flux_type_arg="upwind"): u = stepper(u, t, dt, rhs) true_u = discr.interpolate_volume_function(lambda x, el: u_analytic(x, el, t)) - print discr.norm(u-true_u) + print(discr.norm(u-true_u)) assert discr.norm(u-true_u) < 1e-2 finally: if write_output: diff --git a/examples/advection/var-velocity.py b/examples/advection/var-velocity.py index 81fb7e675525ed223320f0aea6eb9a5d6e85ba39..fa97c7d0b9c68ee271183ab782d4900cf3504e8d 100644 --- a/examples/advection/var-velocity.py +++ b/examples/advection/var-velocity.py @@ -18,6 +18,8 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy @@ -162,7 +164,7 @@ def main(write_output=True, flux_type_arg="central", use_quadrature=True, vector_primitive_factory=discr.get_vector_primitive_factory()) if rcon.is_head_rank: - print "%d elements" % len(discr.mesh.elements) + print("%d elements" % len(discr.mesh.elements)) # filter setup------------------------------------------------------------- from hedge.discretization import ExponentialFilterResponseFunction diff --git a/examples/burgers/burgers.py b/examples/burgers/burgers.py index 20b4832a2b9bae479ff4d95c6da6fbc40b411352..0b9bc93c37032d3bf4cc3c024f026e6467a0ead3 100644 --- a/examples/burgers/burgers.py +++ b/examples/burgers/burgers.py @@ -16,6 +16,8 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy import numpy.linalg as la from math import sin, cos, pi, sqrt @@ -108,7 +110,7 @@ def main(write_output=True, flux_type_arg="upwind", mesh = make_uniform_1d_mesh(case.a, case.b, 20, periodic=True) else: from hedge.mesh.generator import make_rect_mesh - print (pi*2)/(11*5*2) + print((pi*2)/(11*5*2)) mesh = make_rect_mesh((-pi, -1), (pi, 1), periodicity=(True, True), subdivisions=(11,5), @@ -135,7 +137,7 @@ def main(write_output=True, flux_type_arg="upwind", viscosity_scheme=IPDGSecondDerivative()) if rcon.is_head_rank: - print "%d elements" % len(discr.mesh.elements) + print("%d elements" % len(discr.mesh.elements)) # exact solution ---------------------------------------------------------- import pymbolic diff --git a/examples/gas_dynamics/box-in-box.py b/examples/gas_dynamics/box-in-box.py index ac3be82f7d5c230a6150243354fc359938fe4f24..5cc0764e2eb842bea83bfc09d15f9e82cca3f99c 100644 --- a/examples/gas_dynamics/box-in-box.py +++ b/examples/gas_dynamics/box-in-box.py @@ -16,6 +16,8 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy @@ -60,7 +62,7 @@ def make_boxmesh(): mesh = build(mesh_info, max_volume=0.02, volume_constraints=True, attributes=True) - print "%d elements" % len(mesh.elements) + print("%d elements" % len(mesh.elements)) #mesh.write_vtk("box-in-box.vtk") #print "done writing" @@ -143,10 +145,10 @@ def main(): rhs(0, fields) if rcon.is_head_rank: - print "---------------------------------------------" - print "order %d" % order - print "---------------------------------------------" - print "#elements=", len(mesh.elements) + print("---------------------------------------------") + print("order %d" % order) + print("---------------------------------------------") + print("#elements=", len(mesh.elements)) from hedge.timestep import RK4TimeStepper stepper = RK4TimeStepper() diff --git a/examples/gas_dynamics/euler/sine-wave.py b/examples/gas_dynamics/euler/sine-wave.py index 9f751a86eb4954c19a05c6b8a3fed31257db57fd..2916e3fb79120771662a630ff48ae1cc3e13f30f 100644 --- a/examples/gas_dynamics/euler/sine-wave.py +++ b/examples/gas_dynamics/euler/sine-wave.py @@ -18,6 +18,8 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy import numpy.linalg as la @@ -102,10 +104,10 @@ def main(final_time=1, write_output=False): rhs(0, fields) if rcon.is_head_rank: - print "---------------------------------------------" - print "order %d" % order - print "---------------------------------------------" - print "#elements=", len(mesh.elements) + print("---------------------------------------------") + print("order %d" % order) + print("---------------------------------------------") + print("#elements=", len(mesh.elements)) from hedge.timestep import RK4TimeStepper stepper = RK4TimeStepper() @@ -178,8 +180,8 @@ def main(final_time=1, write_output=False): true_fields = sinewave.volume_interpolant(t, discr) eoc_rec.add_data_point(order, discr.norm(fields-true_fields)) - print - print eoc_rec.pretty_print("P.Deg.", "L2 Error") + print() + print(eoc_rec.pretty_print("P.Deg.", "L2 Error")) diff --git a/examples/gas_dynamics/euler/sod-2d.py b/examples/gas_dynamics/euler/sod-2d.py index 352a855e8c9bf12df6729b8384e7976e2fb34fbc..207e00e7382cefcc899647634b4cae2044bd5535 100644 --- a/examples/gas_dynamics/euler/sod-2d.py +++ b/examples/gas_dynamics/euler/sod-2d.py @@ -1,4 +1,6 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy import numpy.linalg as la @@ -89,10 +91,10 @@ def main(): rhs(0, fields) if rcon.is_head_rank: - print "---------------------------------------------" - print "order %d" % order - print "---------------------------------------------" - print "#elements=", len(mesh.elements) + print("---------------------------------------------") + print("order %d" % order) + print("---------------------------------------------") + print("#elements=", len(mesh.elements)) # limiter setup ------------------------------------------------------------ from hedge.models.gas_dynamics import SlopeLimiter1NEuler @@ -177,7 +179,7 @@ def main(): # not solution, just to check against when making code changes true_fields = sod_field.volume_interpolant(t, discr) - print discr.norm(fields-true_fields) + print(discr.norm(fields-true_fields)) if __name__ == "__main__": main() diff --git a/examples/gas_dynamics/euler/vortex-adaptive-grid.py b/examples/gas_dynamics/euler/vortex-adaptive-grid.py index fb33c2ed0c1884e1123e50b573f9eb16d2e7c3cb..1f03d393e468758a81eee4da2a8dd00a801b5408 100644 --- a/examples/gas_dynamics/euler/vortex-adaptive-grid.py +++ b/examples/gas_dynamics/euler/vortex-adaptive-grid.py @@ -18,6 +18,8 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy import numpy.linalg as la @@ -105,11 +107,11 @@ def main(write_output=True): if rcon.is_head_rank: - print "---------------------------------------------" - print "order %d" % order - print "---------------------------------------------" - print "#elements for mesh 1 =", len(mesh.elements) - print "#elements for mesh 2 =", len(mesh2.elements) + print("---------------------------------------------") + print("order %d" % order) + print("---------------------------------------------") + print("#elements for mesh 1 =", len(mesh.elements)) + print("#elements for mesh 2 =", len(mesh2.elements)) # limiter ------------------------------------------------------------ @@ -229,8 +231,8 @@ def main(write_output=True): l2_error_u = discr.norm(op.u(fields)-op.u(true_fields)) eoc_rec.add_data_point(order, l2_error) - print - print eoc_rec.pretty_print("P.Deg.", "L2 Error") + print() + print(eoc_rec.pretty_print("P.Deg.", "L2 Error")) logmgr.set_constant("l2_error", l2_error) logmgr.set_constant("l2_error_rho", l2_error_rho) diff --git a/examples/gas_dynamics/euler/vortex-sources.py b/examples/gas_dynamics/euler/vortex-sources.py index dbe5f84d57bbcd7722cf925708c4904b30196403..09b5ff7d427e835fbb8ee262b610c04b93eda9a4 100644 --- a/examples/gas_dynamics/euler/vortex-sources.py +++ b/examples/gas_dynamics/euler/vortex-sources.py @@ -18,6 +18,8 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy import numpy.linalg as la @@ -205,10 +207,10 @@ def main(write_output=True): rhs(0, fields) if rcon.is_head_rank: - print "---------------------------------------------" - print "order %d" % order - print "---------------------------------------------" - print "#elements=", len(mesh.elements) + print("---------------------------------------------") + print("order %d" % order) + print("---------------------------------------------") + print("#elements=", len(mesh.elements)) # limiter setup ------------------------------------------------------- from hedge.models.gas_dynamics import SlopeLimiter1NEuler @@ -299,8 +301,8 @@ def main(write_output=True): l2_error_u = discr.norm(op.u(fields)-op.u(true_fields)) eoc_rec.add_data_point(order, l2_error_rho) - print - print eoc_rec.pretty_print("P.Deg.", "L2 Error") + print() + print(eoc_rec.pretty_print("P.Deg.", "L2 Error")) logmgr.set_constant("l2_error", l2_error) logmgr.set_constant("l2_error_rho", l2_error_rho) diff --git a/examples/gas_dynamics/euler/vortex.py b/examples/gas_dynamics/euler/vortex.py index ddbb43288692bd7807c5bd4a7b6779a817ba994b..4e425a5f78acaca3813c8a412e516913cd584f7b 100644 --- a/examples/gas_dynamics/euler/vortex.py +++ b/examples/gas_dynamics/euler/vortex.py @@ -18,6 +18,8 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy @@ -85,10 +87,10 @@ def main(write_output=True): rhs(0, fields) if rcon.is_head_rank: - print "---------------------------------------------" - print "order %d" % order - print "---------------------------------------------" - print "#elements=", len(mesh.elements) + print("---------------------------------------------") + print("order %d" % order) + print("---------------------------------------------") + print("#elements=", len(mesh.elements)) # limiter ------------------------------------------------------------ @@ -130,7 +132,7 @@ def main(write_output=True): max_dt_getter=lambda t: op.estimate_timestep(discr, stepper=stepper, t=t, max_eigenvalue=max_eigval[0])) - print "run until t=%g" % final_time + print("run until t=%g" % final_time) for step, t, dt in step_it: if step % 10 == 0 and write_output: #if False: @@ -179,8 +181,8 @@ def main(write_output=True): l2_error_u = discr.norm(op.u(fields)-op.u(true_fields)) eoc_rec.add_data_point(order, l2_error) - print - print eoc_rec.pretty_print("P.Deg.", "L2 Error") + print() + print(eoc_rec.pretty_print("P.Deg.", "L2 Error")) logmgr.set_constant("l2_error", l2_error) logmgr.set_constant("l2_error_rho", l2_error_rho) diff --git a/examples/gas_dynamics/gas_dynamics_initials.py b/examples/gas_dynamics/gas_dynamics_initials.py index 9e1bef7d7cd7b7936fbe3a6b6856c7a211e66743..2bfeb4a05acfa6b8995609542cb9cffa8fe78041 100644 --- a/examples/gas_dynamics/gas_dynamics_initials.py +++ b/examples/gas_dynamics/gas_dynamics_initials.py @@ -18,8 +18,10 @@ from __future__ import division +from __future__ import absolute_import import numpy import numpy.linalg as la +from six.moves import range diff --git a/examples/gas_dynamics/lbm-simple.py b/examples/gas_dynamics/lbm-simple.py index 4e5cf034f52ff294010fb17087a2d4a47b231d4b..0c5a3d0ff79e1b28a4999770afee9b352f252217 100644 --- a/examples/gas_dynamics/lbm-simple.py +++ b/examples/gas_dynamics/lbm-simple.py @@ -18,8 +18,11 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy as np import numpy.linalg as la +from six.moves import range @@ -42,7 +45,7 @@ def main(write_output=True, dtype=np.float32): D2Q9LBMMethod(), lbm_delta_t=0.001, nu=1e-4) if rcon.is_head_rank: - print "%d elements" % len(mesh.elements) + print("%d elements" % len(mesh.elements)) mesh_data = rcon.distribute_mesh(mesh) else: mesh_data = rcon.receive_mesh() @@ -106,13 +109,13 @@ def main(write_output=True, dtype=np.float32): try: lbm_dt = op.lbm_delta_t dg_dt = op.estimate_timestep(discr, stepper=stepper) - print dg_dt + print(dg_dt) dg_steps_per_lbm_step = int(np.ceil(lbm_dt / dg_dt)) dg_dt = lbm_dt / dg_steps_per_lbm_step lbm_steps = int(final_time // op.lbm_delta_t) - for step in xrange(lbm_steps): + for step in range(lbm_steps): t = step*lbm_dt if step % 100 == 0 and write_output: @@ -131,7 +134,7 @@ def main(write_output=True, dtype=np.float32): step=step) visf.close() - print "step=%d, t=%f" % (step, t) + print("step=%d, t=%f" % (step, t)) f_bar = collision_update(f_bar) diff --git a/examples/gas_dynamics/naca.py b/examples/gas_dynamics/naca.py index 9439deeea01fb5b93d5137ddbd4555a3fce3cbe5..7eaadfabb661d9ade70676ad0d3e3d3bec9154f2 100644 --- a/examples/gas_dynamics/naca.py +++ b/examples/gas_dynamics/naca.py @@ -18,8 +18,11 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy import numpy.linalg as la +from six.moves import range @@ -76,7 +79,7 @@ def make_nacamesh(): write_gnuplot_mesh("mesh.dat", mesh) - print "%d elements" % len(mesh.elements) + print("%d elements" % len(mesh.elements)) fvi2fm = mesh.face_vertex_indices_to_face_marker @@ -161,10 +164,10 @@ def main(): rhs(0, fields) if rcon.is_head_rank: - print "---------------------------------------------" - print "order %d" % order - print "---------------------------------------------" - print "#elements=", len(mesh.elements) + print("---------------------------------------------") + print("order %d" % order) + print("---------------------------------------------") + print("#elements=", len(mesh.elements)) from hedge.timestep.runge_kutta import \ ODE23TimeStepper, LSRK4TimeStepper diff --git a/examples/gas_dynamics/navierstokes/shearflow.py b/examples/gas_dynamics/navierstokes/shearflow.py index 597c2b0b8d7862e11f723134a60d2f76e43eb58c..7045165da00dd196be53a9ce153563fd0cee5ade 100644 --- a/examples/gas_dynamics/navierstokes/shearflow.py +++ b/examples/gas_dynamics/navierstokes/shearflow.py @@ -18,6 +18,8 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy import numpy.linalg as la @@ -116,10 +118,10 @@ def main(): rhs(0, fields) if rcon.is_head_rank: - print "---------------------------------------------" - print "order %d" % order - print "---------------------------------------------" - print "#elements=", len(mesh.elements) + print("---------------------------------------------") + print("order %d" % order) + print("---------------------------------------------") + print("#elements=", len(mesh.elements)) from hedge.timestep import RK4TimeStepper stepper = RK4TimeStepper() @@ -184,8 +186,8 @@ def main(): true_fields = shearflow.volume_interpolant(t, discr) l2_error = discr.norm(op.u(fields)-op.u(true_fields)) eoc_rec.add_data_point(order, l2_error) - print - print eoc_rec.pretty_print("P.Deg.", "L2 Error") + print() + print(eoc_rec.pretty_print("P.Deg.", "L2 Error")) logmgr.set_constant("l2_error", l2_error) diff --git a/examples/gas_dynamics/square.py b/examples/gas_dynamics/square.py index f1e63e62445a2e735af4eece1859d83bdc2b7231..61a83bb102dd2d5639b6e39784207fb8a0b03105 100644 --- a/examples/gas_dynamics/square.py +++ b/examples/gas_dynamics/square.py @@ -18,8 +18,11 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy import numpy.linalg as la +from six.moves import range @@ -65,7 +68,7 @@ def make_squaremesh(): allow_boundary_steiner=True, generate_faces=True) - print "%d elements" % len(mesh.elements) + print("%d elements" % len(mesh.elements)) from meshpy.triangle import write_gnuplot_mesh write_gnuplot_mesh("mesh.dat", mesh) @@ -221,10 +224,10 @@ def main(): rhs(0, fields) if rcon.is_head_rank: - print "---------------------------------------------" - print "order %d" % order - print "---------------------------------------------" - print "#elements=", len(mesh.elements) + print("---------------------------------------------") + print("order %d" % order) + print("---------------------------------------------") + print("#elements=", len(mesh.elements)) try: from hedge.timestep import times_and_steps diff --git a/examples/gas_dynamics/wing.py b/examples/gas_dynamics/wing.py index de8243249729281d783b8fb9b9b771d879543cc5..a7dd3de92e92bb3826335509bf8fc438161a0da5 100644 --- a/examples/gas_dynamics/wing.py +++ b/examples/gas_dynamics/wing.py @@ -18,8 +18,11 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy import numpy.linalg as la +from six.moves import zip @@ -80,7 +83,7 @@ def make_wingmesh(): mesh_info.set_holes([(0.5,0,0)]) mesh = build(mesh_info) - print "%d elements" % len(mesh.elements) + print("%d elements" % len(mesh.elements)) fvi2fm = mesh.face_vertex_indices_to_face_marker @@ -159,10 +162,10 @@ def main(): rhs(0, fields) if rcon.is_head_rank: - print "---------------------------------------------" - print "order %d" % order - print "---------------------------------------------" - print "#elements=", len(mesh.elements) + print("---------------------------------------------") + print("order %d" % order) + print("---------------------------------------------") + print("#elements=", len(mesh.elements)) from hedge.timestep import RK4TimeStepper stepper = RK4TimeStepper() diff --git a/examples/heat/heat.py b/examples/heat/heat.py index 6cd193f72077f417e9f4ee250412d28d761a2478..0f95d5002f569a3c7e4d5ac9e3acbd69bd1a46b8 100644 --- a/examples/heat/heat.py +++ b/examples/heat/heat.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import +from __future__ import print_function # Hedge - the Hybrid'n'Easy DG Environment # Copyright (C) 2007 Andreas Kloeckner # @@ -48,10 +50,10 @@ def main(write_output=True) : from hedge.mesh.generator import make_ball_mesh mesh = make_ball_mesh(max_volume=0.001) else: - raise RuntimeError, "bad number of dimensions" + raise RuntimeError("bad number of dimensions") if rcon.is_head_rank: - print "%d elements" % len(mesh.elements) + print("%d elements" % len(mesh.elements)) mesh_data = rcon.distribute_mesh(mesh) else: mesh_data = rcon.receive_mesh() diff --git a/examples/maxwell/analytic_solutions.py b/examples/maxwell/analytic_solutions.py index 64505c949f500177ce91203426cd75a479f27dad..86dd05ae8eb2db5aeb3f748018252fbbae50f08e 100644 --- a/examples/maxwell/analytic_solutions.py +++ b/examples/maxwell/analytic_solutions.py @@ -18,6 +18,8 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function from hedge.tools import \ cyl_bessel_j, \ cyl_bessel_j_prime @@ -25,6 +27,8 @@ from math import sqrt, pi, sin, cos, atan2, acos import numpy import numpy.linalg as la import cmath +from six.moves import range +from six.moves import zip @@ -152,8 +156,8 @@ class CylindricalCavityMode: try: from bessel_zeros import bessel_zeros except ImportError: - print "*** You need to generate the bessel root data file." - print "*** Execute generate-bessel-zeros.py at the command line." + print("*** You need to generate the bessel root data file.") + print("*** Execute generate-bessel-zeros.py at the command line.") raise assert m >= 0 and m == int(m) @@ -447,11 +451,11 @@ def check_time_harmonic_solution(discr, mode, c_sol): hr_res = curl(hr) - mode.epsilon*mode.omega*ei hi_res = curl(hi) + mode.epsilon*mode.omega*er - print "time=%f, rel l2 residual in Re[E]=%g\tIm[E]=%g\tRe[H]=%g\tIm[H]=%g" % ( + print("time=%f, rel l2 residual in Re[E]=%g\tIm[E]=%g\tRe[H]=%g\tIm[H]=%g" % ( t, rel_l2_error(er_res, er), rel_l2_error(ei_res, ei), rel_l2_error(hr_res, hr), rel_l2_error(hi_res, hi), - ) + )) diff --git a/examples/maxwell/cavities.py b/examples/maxwell/cavities.py index b1e2dfea38d85140176f484a684f492d8d91512f..a337b49ef20bbba3f4d6fe36b0a01412253fcd97 100644 --- a/examples/maxwell/cavities.py +++ b/examples/maxwell/cavities.py @@ -16,6 +16,8 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy as np import logging @@ -106,10 +108,10 @@ def main(write_output=True, allow_features=None, flux_type_arg=1, fields = get_true_field() if rcon.is_head_rank: - print "---------------------------------------------" - print "order %d" % order - print "---------------------------------------------" - print "#elements=", len(mesh.elements) + print("---------------------------------------------") + print("order %d" % order) + print("---------------------------------------------") + print("#elements=", len(mesh.elements)) from hedge.timestep.runge_kutta import LSRK4TimeStepper stepper = LSRK4TimeStepper(dtype=discr.default_scalar_type, rcon=rcon) @@ -194,8 +196,8 @@ def main(write_output=True, allow_features=None, flux_type_arg=1, discr.close() if rcon.is_head_rank: - print - print eoc_rec.pretty_print("P.Deg.", "L2 Error") + print() + print(eoc_rec.pretty_print("P.Deg.", "L2 Error")) # }}} diff --git a/examples/maxwell/dipole.py b/examples/maxwell/dipole.py index 261434c1f020f06448dd0042c4adf1b280c944e2..8b24a13d8f0afcbc96d18700b9a82d06aa9bf783 100644 --- a/examples/maxwell/dipole.py +++ b/examples/maxwell/dipole.py @@ -20,8 +20,12 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy import numpy.linalg as la +from six.moves import range +from six.moves import zip @@ -118,7 +122,7 @@ def main(write_output=True, allow_features=None): fields = op.assemble_eh(discr=discr) if rcon.is_head_rank: - print "#elements=", len(mesh.elements) + print("#elements=", len(mesh.elements)) stepper = RK4TimeStepper() diff --git a/examples/maxwell/generate-bessel-zeros.py b/examples/maxwell/generate-bessel-zeros.py index 9c3b11b64baafab78186d4ded0cdaa1589ae579e..172d491662a16a329850857af48ef5792eb2b18c 100644 --- a/examples/maxwell/generate-bessel-zeros.py +++ b/examples/maxwell/generate-bessel-zeros.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import +from six.moves import range def main(): import scipy.special diff --git a/examples/maxwell/inhom-cavity.py b/examples/maxwell/inhom-cavity.py index 70f4a8e434f73aacba6d36ebb29b1c1170aac008..a9cb908569b10408b34cd34ebd8a76f1f7675d36 100644 --- a/examples/maxwell/inhom-cavity.py +++ b/examples/maxwell/inhom-cavity.py @@ -19,6 +19,8 @@ with inhomogeneous dielectric filling""" from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy CAVITY_GEOMETRY = """ @@ -78,16 +80,16 @@ def main(write_output=True, allow_features=None, flux_type_arg=1, # should no tag raise an error or default to free space? def eps_val(x, el): - for key in materials.keys(): + for key in list(materials.keys()): if el in material_elements[key]: return materials[key][0] - raise ValueError, "Element does not belong to any material" + raise ValueError("Element does not belong to any material") def mu_val(x, el): - for key in materials.keys(): + for key in list(materials.keys()): if el in material_elements[key]: return materials[key][1] - raise ValueError, "Element does not belong to any material" + raise ValueError("Element does not belong to any material") # geometry of cavity d = 100e-3 @@ -125,7 +127,7 @@ def main(write_output=True, allow_features=None, flux_type_arg=1, # Work out which elements belong to each material material_elements = {} - for key in materials.keys(): + for key in list(materials.keys()): material_elements[key] = set(mesh_data.tag_to_elements[key]) order = 3 @@ -161,10 +163,10 @@ def main(write_output=True, allow_features=None, flux_type_arg=1, point_getter = None if rcon.is_head_rank: - print "---------------------------------------------" - print "order %d" % order - print "---------------------------------------------" - print "#elements=", len(mesh.elements) + print("---------------------------------------------") + print("order %d" % order) + print("---------------------------------------------") + print("#elements=", len(mesh.elements)) from hedge.timestep.runge_kutta import LSRK4TimeStepper stepper = LSRK4TimeStepper(dtype=discr.default_scalar_type, rcon=rcon) diff --git a/examples/maxwell/maxwell-2d.py b/examples/maxwell/maxwell-2d.py index 33681ebcf6e3649f5a0a0a94ec76b0c18203623c..736983b2e8bf1dc44804858ef91cd36a86406eff 100644 --- a/examples/maxwell/maxwell-2d.py +++ b/examples/maxwell/maxwell-2d.py @@ -18,6 +18,8 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy.linalg as la @@ -62,8 +64,8 @@ def main(write_output=True): vis = VtkVisualizer(discr, rcon, join(output_dir, "em-%d" % order)) if rcon.is_head_rank: - print "order %d" % order - print "#elements=", len(mesh.elements) + print("order %d" % order) + print("#elements=", len(mesh.elements)) from hedge.mesh import TAG_ALL, TAG_NONE from hedge.models.em import TMMaxwellOperator diff --git a/examples/maxwell/maxwell-pml.py b/examples/maxwell/maxwell-pml.py index e365d80471dd12a45ab1e0ca64ac55f8210c2ced..bc0dbee518c09059f3c5d02a2faceb05b967e64c 100644 --- a/examples/maxwell/maxwell-pml.py +++ b/examples/maxwell/maxwell-pml.py @@ -1,6 +1,8 @@ """Hedge is the Hybrid'n'Easy Discontinuous Galerkin Environment.""" from __future__ import division +from __future__ import absolute_import +from __future__ import print_function __copyright__ = "Copyright (C) 2007 Andreas Kloeckner" @@ -141,8 +143,8 @@ def main(write_output=True): stepper = LSRK4TimeStepper() if rcon.is_head_rank: - print "order %d" % order - print "#elements=", len(mesh.elements) + print("order %d" % order) + print("#elements=", len(mesh.elements)) # diagnostics setup --------------------------------------------------- from pytools.log import LogManager, add_general_quantities, \ diff --git a/examples/poisson/helmholtz.py b/examples/poisson/helmholtz.py index ac4ce519881c57bd1449947f76027aa7eb0328b2..26864bcc0745b64634a18c5b568aed2c7822b57a 100644 --- a/examples/poisson/helmholtz.py +++ b/examples/poisson/helmholtz.py @@ -18,6 +18,8 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy import numpy.linalg as la from hedge.tools import Reflection, Rotation @@ -76,10 +78,10 @@ def main(write_output=True): boundary_tagger=lambda fvi, el, fn, points: ["dirichlet"]) else: - raise RuntimeError, "bad number of dimensions" + raise RuntimeError("bad number of dimensions") if rcon.is_head_rank: - print "%d elements" % len(mesh.elements) + print("%d elements" % len(mesh.elements)) mesh_data = rcon.distribute_mesh(mesh) else: mesh_data = rcon.receive_mesh() @@ -155,12 +157,12 @@ def main(write_output=True): rhs, callback=ResidualPrinter(compute_resid), tol=1e-5) - print + print() if info != 0: raise RuntimeError("gmres reported error %d" % info) - print "finished gmres" + print("finished gmres") - print la.norm(bound_op(u)-rhs)/la.norm(rhs) + print(la.norm(bound_op(u)-rhs)/la.norm(rhs)) if write_output: from hedge.visualization import SiloVisualizer, VtkVisualizer diff --git a/examples/poisson/poisson.py b/examples/poisson/poisson.py index d521c74502bbb10b55557b467db45ffd66a483ab..a532ee694e1c19105c476c20c3246a50398458fb 100644 --- a/examples/poisson/poisson.py +++ b/examples/poisson/poisson.py @@ -18,6 +18,8 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy import numpy.linalg as la from hedge.tools import Reflection, Rotation @@ -53,10 +55,10 @@ def main(write_output=True): boundary_tagger=lambda fvi, el, fn, points: ["dirichlet"]) else: - raise RuntimeError, "bad number of dimensions" + raise RuntimeError("bad number of dimensions") if rcon.is_head_rank: - print "%d elements" % len(mesh.elements) + print("%d elements" % len(mesh.elements)) mesh_data = rcon.distribute_mesh(mesh) else: mesh_data = rcon.receive_mesh() diff --git a/examples/wave/var-propagation-speed.py b/examples/wave/var-propagation-speed.py index 48b7f910de80c258f3f8087832dca1ba81a0b116..898e05a9e8a607df281fc7e8f938926f41c8e47f 100644 --- a/examples/wave/var-propagation-speed.py +++ b/examples/wave/var-propagation-speed.py @@ -1,6 +1,9 @@ """Variable-coefficient wave propagation.""" from __future__ import division +from __future__ import absolute_import +from __future__ import print_function +from six.moves import range __copyright__ = "Copyright (C) 2009 Andreas Kloeckner" @@ -57,7 +60,7 @@ def main(write_output=True, raise RuntimeError("bad number of dimensions") if rcon.is_head_rank: - print "%d elements" % len(mesh.elements) + print("%d elements" % len(mesh.elements)) mesh_data = rcon.distribute_mesh(mesh) else: mesh_data = rcon.receive_mesh() diff --git a/examples/wave/wave-min.py b/examples/wave/wave-min.py index 2d0d91c6afbc5addef33b188b35685df9c740b83..44aa23e068fb6a36954e7fc94ebce5800e205785 100644 --- a/examples/wave/wave-min.py +++ b/examples/wave/wave-min.py @@ -1,6 +1,6 @@ -"""Minimal example of a hedge driver.""" +"""Minimal example of a grudge driver.""" -from __future__ import division +from __future__ import division, print_function __copyright__ = "Copyright (C) 2009 Andreas Kloeckner" @@ -31,26 +31,26 @@ import numpy as np def main(write_output=True): from math import sin, exp, sqrt # noqa - from hedge.mesh.generator import make_rect_mesh + from grudge.mesh.generator import make_rect_mesh mesh = make_rect_mesh(a=(-0.5, -0.5), b=(0.5, 0.5), max_area=0.008) - from hedge.backends.jit import Discretization + from grudge.backends.jit import Discretization discr = Discretization(mesh, order=4) - from hedge.visualization import VtkVisualizer + from grudge.visualization import VtkVisualizer vis = VtkVisualizer(discr, None, "fld") source_center = np.array([0.1, 0.22]) source_width = 0.05 source_omega = 3 - import hedge.optemplate as sym + import grudge.optemplate as sym sym_x = sym.nodes(2) sym_source_center_dist = sym_x - source_center - from hedge.models.wave import StrongWaveOperator - from hedge.mesh import TAG_ALL, TAG_NONE + from grudge.models.wave import StrongWaveOperator + from grudge.mesh import TAG_ALL, TAG_NONE op = StrongWaveOperator(-0.1, discr.dimensions, source_f= sym.CFunction("sin")(source_omega*sym.ScalarParameter("t")) @@ -62,17 +62,28 @@ def main(write_output=True): radiation_tag=TAG_ALL, flux_type="upwind") - from hedge.tools import join_fields + from pytools.obj_array import join_fields fields = join_fields(discr.volume_zeros(), [discr.volume_zeros() for i in range(discr.dimensions)]) - from hedge.timestep.runge_kutta import LSRK4TimeStepper - stepper = LSRK4TimeStepper() - dt = op.estimate_timestep(discr, stepper=stepper, fields=fields) + from leap.method.rk import LSRK4TimeStepper + from leap.vm.codegen import PythonCodeGenerator + + dt_method = LSRK4TimeStepper(component_id="y") + dt_stepper = PythonCodeGenerator.get_class(dt_method.generate()) + + dt = op.estimate_timestep(discr, fields=fields) + dt_stepper.set_up(t_start=0, dt_start=dt, context={"y": fields}) nsteps = int(10/dt) print "dt=%g nsteps=%d" % (dt, nsteps) + for event in interp.run(t_end=final_t): + if isinstance(event, interp.StateComputed): + assert event.component_id == component_id + values.append(event.state_component[0]) + times.append(event.t) + rhs = op.bind(discr) for step in range(nsteps): t = step*dt diff --git a/examples/wave/wave.py b/examples/wave/wave.py index 70463ece7a66737814a451139abd9c12803f7440..3c59f38c56998be4a8388186f0693ea3e1d7b23c 100644 --- a/examples/wave/wave.py +++ b/examples/wave/wave.py @@ -16,8 +16,11 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function import numpy as np from hedge.mesh import TAG_ALL, TAG_NONE +from six.moves import range def main(write_output=True, @@ -46,7 +49,7 @@ def main(write_output=True, raise RuntimeError("bad number of dimensions") if rcon.is_head_rank: - print "%d elements" % len(mesh.elements) + print("%d elements" % len(mesh.elements)) mesh_data = rcon.distribute_mesh(mesh) else: mesh_data = rcon.receive_mesh() diff --git a/examples/wave/wiggly.py b/examples/wave/wiggly.py index 22eaeb04f2bf30836b2cce9c664ddfaedd823509..d38088cbfc6aaf3f8aab7134716951a85b0c4a8c 100644 --- a/examples/wave/wiggly.py +++ b/examples/wave/wiggly.py @@ -1,6 +1,9 @@ """Wiggly geometry wave propagation.""" from __future__ import division +from __future__ import absolute_import +from __future__ import print_function +from six.moves import range __copyright__ = "Copyright (C) 2009 Andreas Kloeckner" @@ -42,7 +45,7 @@ def main(write_output=True, allow_internal_boundaries=True, force_dimension=2) - print "%d elements" % len(mesh.elements) + print("%d elements" % len(mesh.elements)) mesh_data = rcon.distribute_mesh(mesh) else: mesh_data = rcon.receive_mesh() diff --git a/grudge/models/__init__.py b/grudge/models/__init__.py index d9142d67639b349b7f2edc25deba9e18623132e7..93433eca19717a53d1c0e4da1115bbe77ee383bd 100644 --- a/grudge/models/__init__.py +++ b/grudge/models/__init__.py @@ -1,6 +1,7 @@ """Base classes for operators.""" from __future__ import division +from __future__ import absolute_import __copyright__ = "Copyright (C) 2007 Andreas Kloeckner" diff --git a/grudge/models/advection.py b/grudge/models/advection.py index e567951896d0b205ddf058308b898dbcee03ead6..337699912f4c9d2f46ede82e4badb22647bd683c 100644 --- a/grudge/models/advection.py +++ b/grudge/models/advection.py @@ -2,6 +2,7 @@ """Operators modeling advective phenomena.""" from __future__ import division +from __future__ import absolute_import __copyright__ = "Copyright (C) 2009 Andreas Kloeckner" @@ -78,7 +79,7 @@ class AdvectionOperatorBase(HyperbolicOperator): u.ext, # inflow )) else: - raise ValueError, "invalid flux type" + raise ValueError("invalid flux type") def max_eigenvalue(self, t=None, fields=None, discr=None): return la.norm(self.v) @@ -258,7 +259,7 @@ class VariableCoefficientAdvectionOperator(HyperbolicOperator): numpy.dot(normal, v.ext) * u.ext, # inflow )) else: - raise ValueError, "invalid flux type" + raise ValueError("invalid flux type") # }}} def bind_characteristic_velocity(self, discr): diff --git a/grudge/models/burgers.py b/grudge/models/burgers.py index 7c38eb5bf7a44746d0c7728ffa6f8af85e4b6aa8..d8a22c9da1b8abe1925b84251a1110c202d4a929 100644 --- a/grudge/models/burgers.py +++ b/grudge/models/burgers.py @@ -2,6 +2,7 @@ """Burgers operator.""" from __future__ import division +from __future__ import absolute_import __copyright__ = "Copyright (C) 2009 Andreas Kloeckner" diff --git a/grudge/models/diffusion.py b/grudge/models/diffusion.py index a6930f720dce8ae46e7d7c29b40d23a290ffb4ad..babdbed11d0bc5071791b7278d9fdb8108fa9490 100644 --- a/grudge/models/diffusion.py +++ b/grudge/models/diffusion.py @@ -2,6 +2,7 @@ """Operators modeling diffusive phenomena.""" from __future__ import division +from __future__ import absolute_import __copyright__ = "Copyright (C) 2009 Andreas Kloeckner" diff --git a/grudge/models/em.py b/grudge/models/em.py index 23598708a3942f40482b127c80286074f54ed734..51971cc1f8550f8add8dfa563592f673bd7b471e 100644 --- a/grudge/models/em.py +++ b/grudge/models/em.py @@ -2,6 +2,8 @@ """Hedge operators modelling electromagnetic phenomena.""" from __future__ import division +from __future__ import absolute_import +from six.moves import range __copyright__ = "Copyright (C) 2007, 2010 Andreas Kloeckner, David Powell" @@ -401,7 +403,7 @@ class MaxwellOperator(HyperbolicOperator): def default_fld(fld, comp): if fld is None: - return [zero() for i in xrange(comp)] + return [zero() for i in range(comp)] else: return fld diff --git a/grudge/models/gas_dynamics/__init__.py b/grudge/models/gas_dynamics/__init__.py index 8392a4ddc70e9bad3be744b8a6d8e50db6a13cc4..c2d8edddcf70aed18340432f0671542506afdff3 100644 --- a/grudge/models/gas_dynamics/__init__.py +++ b/grudge/models/gas_dynamics/__init__.py @@ -1,6 +1,9 @@ """Operator for compressible Navier-Stokes and Euler equations.""" from __future__ import division +from __future__ import absolute_import +import six +from six.moves import range __copyright__ = "Copyright (C) 2007 Hendrik Riedmann, Andreas Kloeckner" @@ -758,7 +761,7 @@ class GasDynamicsOperator(TimeDependentOperator): primitive_bcs_as_quad_conservative = dict( (tag, self.primitive_to_conservative(to_bdry_quad(bc))) for tag, bc in - self.get_primitive_boundary_conditions().iteritems()) + six.iteritems(self.get_primitive_boundary_conditions())) def get_bc_tuple(tag): state = self.state() diff --git a/grudge/models/gas_dynamics/lbm.py b/grudge/models/gas_dynamics/lbm.py index 84446f8b2522c7641e4cfd9e6bc793f955a58ced..45de4b61ce29783148ef77ba79a839a700aa099f 100644 --- a/grudge/models/gas_dynamics/lbm.py +++ b/grudge/models/gas_dynamics/lbm.py @@ -2,6 +2,9 @@ """Lattice-Boltzmann operator.""" from __future__ import division +from __future__ import absolute_import +from six.moves import range +from six.moves import zip __copyright__ = "Copyright (C) 2011 Andreas Kloeckner" @@ -41,12 +44,12 @@ class LBMMethodBase(object): def find_opposites(self): self.opposites = np.zeros(len(self)) - for alpha in xrange(len(self)): + for alpha in range(len(self)): if self.opposites[alpha]: continue found = False - for alpha_2 in xrange(alpha, len(self)): + for alpha_2 in range(alpha, len(self)): if la.norm( self.direction_vectors[alpha] + self.direction_vectors[alpha_2]) < 1e-12: @@ -130,7 +133,7 @@ class LatticeBoltzmannOperator(HyperbolicOperator): u.ext, # inflow )) else: - raise ValueError, "invalid flux type" + raise ValueError("invalid flux type") def get_advection_op(self, q, velocity): from hedge.optemplate import ( diff --git a/grudge/models/nd_calculus.py b/grudge/models/nd_calculus.py index 5674fc9fdfdcbcaf35ac78da4de4e850e5a477a3..138b282dd0352b1c971d13b0b6f0688dd71d9991 100644 --- a/grudge/models/nd_calculus.py +++ b/grudge/models/nd_calculus.py @@ -2,6 +2,7 @@ """Canned operators for multivariable calculus.""" from __future__ import division +from __future__ import absolute_import __copyright__ = "Copyright (C) 2009 Andreas Kloeckner" diff --git a/grudge/models/pml.py b/grudge/models/pml.py index b8cb6216bf728bde9bfa301c5d10021a5cb6ef5b..6cf1949cb91f4ca28d016a0ef8ab195aa920fb00 100644 --- a/grudge/models/pml.py +++ b/grudge/models/pml.py @@ -2,6 +2,9 @@ """Models describing absorbing boundary layers.""" from __future__ import division +from __future__ import absolute_import +from six.moves import range +from six.moves import zip __copyright__ = "Copyright (C) 2007 Andreas Kloeckner" @@ -159,7 +162,7 @@ class AbarbanelGottliebPMLMaxwellOperator(MaxwellOperator): def default_fld(fld, comp): if fld is None: - return [zero() for i in xrange(comp)] + return [zero() for i in range(comp)] else: return fld @@ -249,11 +252,11 @@ class AbarbanelGottliebPMLMaxwellOperator(MaxwellOperator): if dtype is not None: nodes = nodes.astype(dtype) - sigma, sigma_prime, tau = zip(*[self._construct_scalar_coefficients( + sigma, sigma_prime, tau = list(zip(*[self._construct_scalar_coefficients( discr, nodes[:,i], i_min[i], i_max[i], o_min[i], o_max[i], exponent) - for i in range(discr.dimensions)]) + for i in range(discr.dimensions)])) def conv(f): return discr.convert_volume(f, kind=discr.compute_kind, diff --git a/grudge/models/poisson.py b/grudge/models/poisson.py index f60091d5edb7259c8203fb5d5625b1b02020c5d9..6135f8183f4efb97a9bf34f46e7d3bc663fb66f6 100644 --- a/grudge/models/poisson.py +++ b/grudge/models/poisson.py @@ -2,6 +2,7 @@ """Operators for Poisson problems.""" from __future__ import division +from __future__ import absolute_import __copyright__ = "Copyright (C) 2007 Andreas Kloeckner" diff --git a/grudge/models/wave.py b/grudge/models/wave.py index 400a489d84851a0adb3cd2d1717eade172cfa393..8f45e6b46403125d7c47fc151b3a38726258678d 100644 --- a/grudge/models/wave.py +++ b/grudge/models/wave.py @@ -2,6 +2,7 @@ """Wave equation operators.""" from __future__ import division +from __future__ import absolute_import __copyright__ = "Copyright (C) 2009 Andreas Kloeckner" diff --git a/grudge/symbolic/__init__.py b/grudge/symbolic/__init__.py index a72aa713d2cf9c9184d870f1ddde57c778e08e16..b2a58094e2360055a7c5cd258b30b0e7a67cace1 100644 --- a/grudge/symbolic/__init__.py +++ b/grudge/symbolic/__init__.py @@ -1,6 +1,7 @@ """Building blocks and mappers for operator expression trees.""" from __future__ import division +from __future__ import absolute_import __copyright__ = "Copyright (C) 2008 Andreas Kloeckner" diff --git a/grudge/symbolic/compiler.py b/grudge/symbolic/compiler.py index 58619e48d78138fe71d989b605ec68e1adec4783..56734a1a81345b8bd15c79b065af27fc0070cbbb 100644 --- a/grudge/symbolic/compiler.py +++ b/grudge/symbolic/compiler.py @@ -1,6 +1,11 @@ """Compiler to turn operator expression tree into (imperative) bytecode.""" from __future__ import division +from __future__ import absolute_import +from __future__ import print_function +import six +from six.moves import zip +from functools import reduce __copyright__ = "Copyright (C) 2008 Andreas Kloeckner" @@ -433,7 +438,7 @@ class Code(object): if insn is None: try: insn, discardable_vars = self.get_next_step( - frozenset(context.keys()), + frozenset(list(context.keys())), frozenset(done_insns)) except self.NoInstructionAvailable: @@ -467,9 +472,9 @@ class Code(object): next_future_id += 1 if len(done_insns) < len(self.instructions): - print "Unreachable instructions:" + print("Unreachable instructions:") for insn in set(self.instructions) - done_insns: - print " ", insn + print(" ", insn) raise RuntimeError("not all instructions are reachable" "--did you forget to pass a value for a placeholder?") @@ -635,7 +640,7 @@ class OperatorCompilerBase(IdentityMapper): batches_by_repr_op.get(fr.repr_op, set()) \ | set([fr.flux_expr]) - for repr_op, batch in batches_by_repr_op.iteritems(): + for repr_op, batch in six.iteritems(batches_by_repr_op): self.flux_batches.append( self.FluxBatch( repr_op=repr_op, @@ -1048,7 +1053,7 @@ class OperatorCompilerBase(IdentityMapper): def schedule_and_finalize_assignment(ass): dep_mapper = self.dep_mapper_factory() - names_exprs = zip(ass.names, ass.exprs) + names_exprs = list(zip(ass.names, ass.exprs)) my_assignees = set(name for name, expr in names_exprs) names_exprs_deps = [ diff --git a/grudge/symbolic/operators.py b/grudge/symbolic/operators.py index 4c7bafdf0b29514f3405636995992dfbcd15a531..e67a80e7a51a1480c1c4e9057d308e9ec7389063 100644 --- a/grudge/symbolic/operators.py +++ b/grudge/symbolic/operators.py @@ -1,6 +1,7 @@ """Building blocks and mappers for operator expression trees.""" from __future__ import division +from __future__ import absolute_import __copyright__ = "Copyright (C) 2008 Andreas Kloeckner" diff --git a/grudge/symbolic/primitives.py b/grudge/symbolic/primitives.py index af1f359388559494712bc9887ea7cc8a919b99f9..221f8e6c03d6e552461d5940c0e95b3bb5635218 100644 --- a/grudge/symbolic/primitives.py +++ b/grudge/symbolic/primitives.py @@ -1,6 +1,8 @@ """Operator template language: primitives.""" from __future__ import division +from __future__ import absolute_import +from six.moves import range __copyright__ = "Copyright (C) 2008 Andreas Kloeckner" diff --git a/grudge/symbolic/tools.py b/grudge/symbolic/tools.py index c13fe7051a3265f85cec7b5cf4282cfca448196b..b404d280b5b70241463a63b54db6ebf2d5d28125 100644 --- a/grudge/symbolic/tools.py +++ b/grudge/symbolic/tools.py @@ -1,6 +1,9 @@ """Operator templates: extra bits of functionality.""" from __future__ import division +from __future__ import absolute_import +from six.moves import range +from functools import reduce __copyright__ = "Copyright (C) 2008 Andreas Kloeckner" @@ -239,7 +242,7 @@ def ptwise_dot(logdims1, logdims2, a1, a2): for a2_i in indices_in_shape(a2_log_shape[1:]): result[a1_i+a2_i] = sum( a1[a1_i+(k,)] * a2[(k,)+a2_i] - for k in xrange(len_k) + for k in range(len_k) ) if result.shape == (): diff --git a/setup.cfg b/setup.cfg index 6faef2e65abe138f9ab22c94452c43be0e52c075..1342753d6ef45af0637241cdedd837380ca52496 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,3 +1,3 @@ [flake8] -ignore = E126,E127,E128,E123,E226,E241,E242,E265 +ignore = E126,E127,E128,E123,E226,E241,E242,E265,W503 max-line-length=85 diff --git a/setup.py b/setup.py index 23614a76e5f798beda96cf17e2449155fcbd4cf1..712e1fe2b65e316e661ea672ba96b099ed585501 100644 --- a/setup.py +++ b/setup.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import #!/usr/bin/env python # -*- coding: utf-8 -*- @@ -52,6 +53,7 @@ def main(): "loo.py>=2013.1beta", "sumpy>=2013.1", "cgen>=2013.1.2", + "leap>=2015.1", "six", ])