From 95a7ed2d4013e500afb0a46e23dccdd78199fa5e Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Sat, 25 Apr 2026 13:47:24 -0400 Subject: [PATCH 1/4] src/sage/symbolic: remove symengine.py This file contains only two doctests, and they test functionality of the symengine python wrapper: https://github.com/symengine/symengine.py (That is, they do not test anything in Sage itself). There are already similar tests upstream in the file symengine/tests/test_sage.py, making these redundant. --- src/sage/symbolic/meson.build | 1 - src/sage/symbolic/symengine.py | 18 ------------------ 2 files changed, 19 deletions(-) delete mode 100644 src/sage/symbolic/symengine.py diff --git a/src/sage/symbolic/meson.build b/src/sage/symbolic/meson.build index f967826d0b3..9889c188cbc 100644 --- a/src/sage/symbolic/meson.build +++ b/src/sage/symbolic/meson.build @@ -37,7 +37,6 @@ py.install_sources( 'series_impl.pyi', 'subring.py', 'symbols.py', - 'symengine.py', 'tests.py', 'units.py', subdir: 'sage/symbolic', diff --git a/src/sage/symbolic/symengine.py b/src/sage/symbolic/symengine.py deleted file mode 100644 index 5c3a46eb8b0..00000000000 --- a/src/sage/symbolic/symengine.py +++ /dev/null @@ -1,18 +0,0 @@ -r""" -EXAMPLES:: - - sage: # optional - symengine_py - sage: import symengine - sage: x, y = symengine.var("x y") - sage: expr = (x + symengine.GoldenRatio * symengine.exp(y))**2 - sage: SR(expr) - (golden_ratio*e^y + x)^2 - - sage: # optional - symengine_py - sage: f = symengine.Lambdify([x, y], expr) - sage: f(3, 5) - array(59115.86131768) - sage: g = fast_callable(SR(expr), vars=[SR(x),SR(y)], domain=RDF) - sage: g(3, 5) - 59115.86131767523 -""" From aacfaab0a747f7f3d1903bb5440f52b99da059f9 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Sat, 25 Apr 2026 13:50:27 -0400 Subject: [PATCH 2/4] src/sage/features/symengine_py.py: remove unused feature The only two tests that required this feature have been removed because the functionality exists and is tested upstream. --- src/sage/features/symengine_py.py | 44 ------------------------------- 1 file changed, 44 deletions(-) delete mode 100644 src/sage/features/symengine_py.py diff --git a/src/sage/features/symengine_py.py b/src/sage/features/symengine_py.py deleted file mode 100644 index f9450ae484d..00000000000 --- a/src/sage/features/symengine_py.py +++ /dev/null @@ -1,44 +0,0 @@ -r""" -Check for symengine_py -""" - -# **************************************************************************** -# Copyright (C) 2023 Dima Pasechnik -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# https://www.gnu.org/licenses/ -# **************************************************************************** - -from . import PythonModule -from .join_feature import JoinFeature - - -class symengine_py(JoinFeature): - r""" - A :class:`sage.features.Feature` describing the presence of the - Python package :ref:`symengine_py `. - - EXAMPLES:: - - sage: from sage.features.symengine_py import symengine_py - sage: symengine_py().is_present() # optional - symengine_py - FeatureTestResult('symengine_py', True) - """ - def __init__(self): - r""" - TESTS:: - - sage: from sage.features.symengine_py import symengine_py - sage: isinstance(symengine_py(), symengine_py) - True - """ - JoinFeature.__init__(self, 'symengine_py', - [PythonModule('symengine', spkg='symengine_py', - url='https://pypi.org/project/symengine')]) - - -def all_features(): - return [symengine_py()] From d9c6ecd7cf9ad4d6776597cb8d81b7e927b8e78c Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Sat, 25 Apr 2026 13:54:27 -0400 Subject: [PATCH 3/4] pyproject.toml: remove symengine from optional-dependencies The Sage library does not have any support for this whatsoever, it is the other way around. --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 77f4893fe49..5963b6e394a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -89,7 +89,6 @@ extra = [ 'pycosat >=0.6.3', 'pynormaliz >=2.18; platform_machine != "aarch64" and platform_machine != "arm64"', # Not yet available for Linux aarch64 'sage_numerical_backends_coin', - 'symengine >= 0.6.1', # Only used in tests ] test = ["pytest-xdist"] #giac = ['sagemath_giac'] # Not yet available on PyPI (https://github.com/sagemath/sagemath-giac/issues/3) From 1ea2e5f54b81a66a308ab36839e77819e817c1c5 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Sat, 25 Apr 2026 13:56:21 -0400 Subject: [PATCH 4/4] tools/update-conda.py: remove obsolete symengine entry This package has been dropped from pyproject.toml, because it isn't really a dependency of Sage -- it's the other way around. --- tools/update-conda.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/update-conda.py b/tools/update-conda.py index 366d62e2dba..3fba1f0a9a8 100755 --- a/tools/update-conda.py +++ b/tools/update-conda.py @@ -166,7 +166,6 @@ def get_dependencies(pyproject_toml: Path, python: str, platform: str) -> set[st all_requirements = { # Following can be removed once https://github.com/regro/cf-scripts/pull/2176 is used in grayskull req.replace("lrcalc", "python-lrcalc") - .replace("symengine", "python-symengine") .replace("memory_allocator", "memory-allocator") .replace("pkg:generic/r-lattice", "r-lattice") .replace("pkg:generic/latexmk", "latexmk")