diff --git a/pymbolic/algorithm.py b/pymbolic/algorithm.py index e27532d4e44ebc33a1e6a414cff980418d42c985..a77b383ff774100d3a6c4ecae581181b7c5cbb32 100644 --- a/pymbolic/algorithm.py +++ b/pymbolic/algorithm.py @@ -20,8 +20,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ -import six -from six.moves import reduce import cmath from pytools import memoize @@ -97,6 +95,7 @@ def gcd_many(*args): elif len(args) == 1: return args[0] else: + from functools import reduce return reduce(gcd, args) diff --git a/pymbolic/compiler.py b/pymbolic/compiler.py index f1be217130a7b76f160bf09ac3e3c0c9c0a4dc3f..f553c0d0d4327cd44072b09e689e4cedfe21182b 100644 --- a/pymbolic/compiler.py +++ b/pymbolic/compiler.py @@ -22,7 +22,8 @@ THE SOFTWARE. import math import pymbolic -from pymbolic.mapper.stringifier import (StringifyMapper, PREC_NONE, +from pymbolic.mapper.stringifier import ( + StringifyMapper, PREC_NONE, PREC_SUM, PREC_POWER) diff --git a/pymbolic/cse.py b/pymbolic/cse.py index 3e0bce45e9b181ff1e23785c72eae1ee03646ccb..10f6869276ca3ced637fc66760c0e0028dc21e6d 100644 --- a/pymbolic/cse.py +++ b/pymbolic/cse.py @@ -1,5 +1,3 @@ -import six - __copyright__ = "Copyright (C) 2009-2013 Andreas Kloeckner" __license__ = """ diff --git a/pymbolic/geometric_algebra/__init__.py b/pymbolic/geometric_algebra/__init__.py index d6cfb3f7b0ac77d9d23a6fbf2bd6eafa4e7fc432..32a3cdca7c84dd09b3e5ced622dee703e0cbc10e 100644 --- a/pymbolic/geometric_algebra/__init__.py +++ b/pymbolic/geometric_algebra/__init__.py @@ -20,8 +20,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ -import six - from pytools import memoize, memoize_method import numpy as np diff --git a/pymbolic/geometric_algebra/mapper.py b/pymbolic/geometric_algebra/mapper.py index 3eb3f3252115a0f8c15680f8d2f1e3c6a4de1c9a..9443de226edc05aaf4f77a7b0ac6eafaeeb91a98 100644 --- a/pymbolic/geometric_algebra/mapper.py +++ b/pymbolic/geometric_algebra/mapper.py @@ -99,11 +99,9 @@ class StringifyMapper(StringifyMapperBase): AXES = {0: "x", 1: "y", 2: "z"} def map_nabla(self, expr, enclosing_prec): - import sys return "∇[%s]" % expr.nabla_id def map_nabla_component(self, expr, enclosing_prec): - import sys return "∇{}[{}]".format( self.AXES.get(expr.ambient_axis, expr.ambient_axis), expr.nabla_id) diff --git a/pymbolic/imperative/statement.py b/pymbolic/imperative/statement.py index 6ef4a6abf6e36dabe94494cee683a48d6d228fa9..176180cfbd4a0ace73eb6407ec6f0f4e65ed7810 100644 --- a/pymbolic/imperative/statement.py +++ b/pymbolic/imperative/statement.py @@ -22,9 +22,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ - -import six - +from sys import intern from pytools import RecordWithoutPickling @@ -49,7 +47,7 @@ class Statement(RecordWithoutPickling): def __init__(self, **kwargs): id = kwargs.pop("id", None) if id is not None: - id = six.moves.intern(id) + id = intern(id) depends_on = frozenset(kwargs.pop("depends_on", [])) super().__init__( diff --git a/pymbolic/imperative/utils.py b/pymbolic/imperative/utils.py index 18cbfef75d90200211b934555f9ae02dd0b9ece8..fd34f4b7aab5846667822eebb963336e6fc81670 100644 --- a/pymbolic/imperative/utils.py +++ b/pymbolic/imperative/utils.py @@ -23,10 +23,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ - -import six import logging - logger = logging.getLogger(__name__) diff --git a/pymbolic/interop/maxima.py b/pymbolic/interop/maxima.py index f5e892abf273ac8ab6ca69438920aec6ee1a98f7..12ac92d9742bbb1be401c236daa0b7381a094e68 100644 --- a/pymbolic/interop/maxima.py +++ b/pymbolic/interop/maxima.py @@ -34,12 +34,11 @@ __doc__ = """ # Inspired by similar code in Sage at: # http://trac.sagemath.org/sage_trac/browser/sage/interfaces/maxima.py -import six -from six.moves import intern import re import pytools import numpy as np +from sys import intern from pymbolic.mapper.stringifier import StringifyMapper from pymbolic.parser import Parser as ParserBase, FinalizedTuple diff --git a/pymbolic/mapper/__init__.py b/pymbolic/mapper/__init__.py index ba992e7342559f5746efbb01757447f55379ebd5..a9f54c676d848c694b97d55dc4109a44eb7b5d59 100644 --- a/pymbolic/mapper/__init__.py +++ b/pymbolic/mapper/__init__.py @@ -1,6 +1,3 @@ -import six -from functools import reduce - __copyright__ = "Copyright (C) 2009-2013 Andreas Kloeckner" __license__ = """ @@ -336,6 +333,7 @@ class Collector(CombineMapper): def combine(self, values): import operator + from functools import reduce return reduce(operator.or_, values, set()) def map_constant(self, expr): diff --git a/pymbolic/mapper/coefficient.py b/pymbolic/mapper/coefficient.py index 32c9f38238e4496d09ae6c0a99be1af412f1ed9b..73276ed229a6cddfa545672ed9e4e28191eeb79e 100644 --- a/pymbolic/mapper/coefficient.py +++ b/pymbolic/mapper/coefficient.py @@ -1,5 +1,3 @@ -import six - __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" __license__ = """ @@ -22,7 +20,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ - from pymbolic.mapper import Mapper diff --git a/pymbolic/mapper/collector.py b/pymbolic/mapper/collector.py index f73c53782861b5d9ac3a3f3d8f3ab42e40be99c3..85cb3c69544d19bd1bc3660799d5bf092bc931d1 100644 --- a/pymbolic/mapper/collector.py +++ b/pymbolic/mapper/collector.py @@ -1,5 +1,3 @@ -import six - __copyright__ = "Copyright (C) 2009-2013 Andreas Kloeckner" __license__ = """ diff --git a/pymbolic/mapper/constant_folder.py b/pymbolic/mapper/constant_folder.py index 5799efa76fabcfae11fd8a5a2c6e6b6698538576..724c77004a5fe4861d7022b5417e4515b9d3815d 100644 --- a/pymbolic/mapper/constant_folder.py +++ b/pymbolic/mapper/constant_folder.py @@ -20,10 +20,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ -from six.moves import reduce -from pymbolic.mapper import \ - IdentityMapper, \ - CSECachingMapperMixin +from pymbolic.mapper import ( + IdentityMapper, + CSECachingMapperMixin, + ) class ConstantFoldingMapperBase: @@ -60,6 +60,7 @@ class ConstantFoldingMapperBase: nonconstants.append(child) if constants: + from functools import reduce constant = reduce(op, constants) return constructor(tuple([constant]+nonconstants)) else: diff --git a/pymbolic/mapper/evaluator.py b/pymbolic/mapper/evaluator.py index 6b54ea74d9bab0afe23206aa53f9f420c7738e68..889bc90b29021905bd719927405f76537809b5f2 100644 --- a/pymbolic/mapper/evaluator.py +++ b/pymbolic/mapper/evaluator.py @@ -23,7 +23,7 @@ THE SOFTWARE. from pymbolic.mapper import RecursiveMapper, CSECachingMapperMixin import operator as op -from six.moves import reduce +from functools import reduce class UnknownVariableError(Exception): diff --git a/pymbolic/mapper/unifier.py b/pymbolic/mapper/unifier.py index eca76b4780fc5bf855ef18798ee97ffa38578202..cfaa0713aa55a91796341c3755a2fd3c5f4fc7b9 100644 --- a/pymbolic/mapper/unifier.py +++ b/pymbolic/mapper/unifier.py @@ -1,5 +1,3 @@ -import six - __copyright__ = "Copyright (C) 2009-2013 Andreas Kloeckner" __license__ = """ diff --git a/pymbolic/parser.py b/pymbolic/parser.py index ea9f580e59df80764fc47b3b8473917fb61f2bb4..b846193d6dfb312c6c249d6f95ca5af5b638b20e 100644 --- a/pymbolic/parser.py +++ b/pymbolic/parser.py @@ -21,7 +21,7 @@ THE SOFTWARE. """ import pytools.lex -from six.moves import intern +from sys import intern _imaginary = intern("imaginary") _float = intern("float") diff --git a/pymbolic/polynomial.py b/pymbolic/polynomial.py index f4b83dd1fcbca565e3ea705a47c9586a07d12474..774f2fbd23e6c729749e6d6e6b90330388eb0035 100644 --- a/pymbolic/polynomial.py +++ b/pymbolic/polynomial.py @@ -1,5 +1,3 @@ -from six.moves import intern - __copyright__ = "Copyright (C) 2009-2013 Andreas Kloeckner" __license__ = """ @@ -22,14 +20,14 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ +from sys import intern + import pymbolic from pymbolic.primitives import Expression import pymbolic.algorithm as algorithm from pymbolic.traits import traits, EuclideanRingTraits, FieldTraits - - def _sort_uniq(data): def sortkey(xxx_todo_changeme): (exp, coeff) = xxx_todo_changeme; return exp data.sort(key=sortkey) @@ -51,15 +49,11 @@ def _sort_uniq(data): return uniq_result - - def _get_dependencies(expr): from pymbolic.mapper.dependency import DependencyMapper return DependencyMapper()(expr) - - class LexicalMonomialOrder: def __call__(self, a, b): from pymbolic.primitives import Variable @@ -74,9 +68,6 @@ class LexicalMonomialOrder: return "LexicalMonomialOrder()" - - - class Polynomial(Expression): def __init__(self, base, data=None, unit=1, var_less=LexicalMonomialOrder()): self.Base = base @@ -299,8 +290,6 @@ class Polynomial(Expression): return 0 - - def differentiate(poly): return Polynomial( poly.base, @@ -309,7 +298,6 @@ def differentiate(poly): if not exp == 0)) - def integrate(poly): return Polynomial( poly.base, @@ -317,8 +305,6 @@ def integrate(poly): for exp, coeff in poly.data)) - - def integrate_definite(poly, a, b): antideriv = integrate(poly) a_bound = pymbolic.substitute(antideriv, {poly.base: a}) @@ -328,21 +314,15 @@ def integrate_definite(poly, a, b): return Sum((b_bound, -a_bound)) - - def leading_coefficient(poly): return poly.data[-1][1] - - def general_polynomial(base, coefflist, degree): return Polynomial(base, ((i, coefflist[i]) for i in range(degree+1))) - - class PolynomialTraits(EuclideanRingTraits): @staticmethod def norm(x): @@ -354,8 +334,6 @@ class PolynomialTraits(EuclideanRingTraits): return traits(lc).get_unit(lc) - - if __name__ == "__main__": x = Polynomial(pymbolic.var("x")) y = Polynomial(pymbolic.var("y")) diff --git a/pymbolic/primitives.py b/pymbolic/primitives.py index f1f3d7ca4124ebb48c4fb2051a2104f62981c700..52393830fba9354e6b02ad4f050b272402c28786 100644 --- a/pymbolic/primitives.py +++ b/pymbolic/primitives.py @@ -20,10 +20,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ +from sys import intern import pymbolic.traits as traits -import six -from six.moves import intern __doc__ = """ Expression base class @@ -1596,9 +1595,6 @@ def quotient(numerator, denominator): global VALID_CONSTANT_CLASSES global VALID_OPERANDS VALID_CONSTANT_CLASSES = (int, float, complex) -if six.PY2: - VALID_CONSTANT_CLASSES += (long,) # noqa pylint:disable=undefined-variable - VALID_OPERANDS = (Expression,) try: diff --git a/pymbolic/rational.py b/pymbolic/rational.py index 90d1b307581932253e2a13ba6b0a17df854bbcc6..b150a54bc0cf4747631cd189284613b0413bff54 100644 --- a/pymbolic/rational.py +++ b/pymbolic/rational.py @@ -20,7 +20,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ -from six.moves import intern +from sys import intern import pymbolic.primitives as primitives import pymbolic.traits as traits diff --git a/pymbolic/traits.py b/pymbolic/traits.py index c9e7e5b6295b47d1bf61307b7640c4a6109a7d38..4e47628d065e75f895e00ef64d59bb7383365b52 100644 --- a/pymbolic/traits.py +++ b/pymbolic/traits.py @@ -1,6 +1,3 @@ -import six -from functools import reduce - __copyright__ = "Copyright (C) 2009-2013 Andreas Kloeckner" __license__ = """ @@ -23,6 +20,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ +from functools import reduce from . import algorithm