diff --git a/pymbolic/interop/sympy.py b/pymbolic/interop/sympy.py index 016733872ef55c41f6273cb75df0f1c0837b03e2..034fb9c5aea314998ff33fb9e17c219c4b11591e 100644 --- a/pymbolic/interop/sympy.py +++ b/pymbolic/interop/sympy.py @@ -85,6 +85,10 @@ class SympyToPymbolicMapper(SympyMapper): def map_ImaginaryUnit(self, expr): # noqa return 1j + # only called for Py2 + def map_long(self, expr): + return long(expr) # noqa + def map_Float(self, expr): # noqa return float(expr) diff --git a/test/test_pymbolic.py b/test/test_pymbolic.py index 98364588c7a9367cf9129726d12f16eeab29160c..95182c741f8479884d7b9af9b5d70bf9bd6783be 100644 --- a/test/test_pymbolic.py +++ b/test/test_pymbolic.py @@ -480,6 +480,13 @@ def test_unifier(): assert match_found(recs, set([(a, b), (b, c), (c, d)])) +def test_long_sympy_mapping(): + from pymbolic.interop.sympy import SympyToPymbolicMapper + import sympy as sp + SympyToPymbolicMapper()(sp.sympify(int(10**20))) + SympyToPymbolicMapper()(sp.sympify(int(10))) + + if __name__ == "__main__": import sys if len(sys.argv) > 1: