From d6ec5dd39e669f6325bacb2fb779ca1c48e8bd42 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 26 May 2024 23:44:08 -0700 Subject: [PATCH 01/16] build/pkgs/mathics: Reduce to pip package, remove dependencies --- build/pkgs/mathics/checksums.ini | 4 ---- build/pkgs/mathics/dependencies | 2 +- build/pkgs/mathics/package-version.txt | 1 - ...rsion_requirements.txt => requirements.txt} | 0 build/pkgs/mathics/spkg-install.in | 2 -- build/pkgs/mathics_scanner/SPKG.rst | 18 ------------------ build/pkgs/mathics_scanner/checksums.ini | 4 ---- build/pkgs/mathics_scanner/dependencies | 4 ---- build/pkgs/mathics_scanner/math | 0 build/pkgs/mathics_scanner/package-version.txt | 1 - build/pkgs/mathics_scanner/spkg-configure.m4 | 1 - build/pkgs/mathics_scanner/spkg-install.in | 2 -- build/pkgs/mathics_scanner/type | 1 - .../mathics_scanner/version_requirements.txt | 1 - build/pkgs/palettable/SPKG.rst | 16 ---------------- build/pkgs/palettable/checksums.ini | 4 ---- build/pkgs/palettable/dependencies | 4 ---- build/pkgs/palettable/distros/conda.txt | 1 - build/pkgs/palettable/package-version.txt | 1 - build/pkgs/palettable/spkg-configure.m4 | 1 - build/pkgs/palettable/spkg-install.in | 2 -- build/pkgs/palettable/type | 1 - build/pkgs/palettable/version_requirements.txt | 1 - build/pkgs/pint/SPKG.rst | 18 ------------------ build/pkgs/pint/checksums.ini | 4 ---- build/pkgs/pint/dependencies | 4 ---- build/pkgs/pint/distros/conda.txt | 1 - build/pkgs/pint/package-version.txt | 1 - build/pkgs/pint/spkg-configure.m4 | 1 - build/pkgs/pint/spkg-install.in | 2 -- build/pkgs/pint/type | 1 - build/pkgs/pint/version_requirements.txt | 1 - 32 files changed, 1 insertion(+), 104 deletions(-) delete mode 100644 build/pkgs/mathics/checksums.ini delete mode 100644 build/pkgs/mathics/package-version.txt rename build/pkgs/mathics/{version_requirements.txt => requirements.txt} (100%) delete mode 100644 build/pkgs/mathics/spkg-install.in delete mode 100644 build/pkgs/mathics_scanner/SPKG.rst delete mode 100644 build/pkgs/mathics_scanner/checksums.ini delete mode 100644 build/pkgs/mathics_scanner/dependencies delete mode 100644 build/pkgs/mathics_scanner/math delete mode 100644 build/pkgs/mathics_scanner/package-version.txt delete mode 100644 build/pkgs/mathics_scanner/spkg-configure.m4 delete mode 100644 build/pkgs/mathics_scanner/spkg-install.in delete mode 100644 build/pkgs/mathics_scanner/type delete mode 100644 build/pkgs/mathics_scanner/version_requirements.txt delete mode 100644 build/pkgs/palettable/SPKG.rst delete mode 100644 build/pkgs/palettable/checksums.ini delete mode 100644 build/pkgs/palettable/dependencies delete mode 100644 build/pkgs/palettable/distros/conda.txt delete mode 100644 build/pkgs/palettable/package-version.txt delete mode 100644 build/pkgs/palettable/spkg-configure.m4 delete mode 100644 build/pkgs/palettable/spkg-install.in delete mode 100644 build/pkgs/palettable/type delete mode 100644 build/pkgs/palettable/version_requirements.txt delete mode 100644 build/pkgs/pint/SPKG.rst delete mode 100644 build/pkgs/pint/checksums.ini delete mode 100644 build/pkgs/pint/dependencies delete mode 100644 build/pkgs/pint/distros/conda.txt delete mode 100644 build/pkgs/pint/package-version.txt delete mode 100644 build/pkgs/pint/spkg-configure.m4 delete mode 100644 build/pkgs/pint/spkg-install.in delete mode 100644 build/pkgs/pint/type delete mode 100644 build/pkgs/pint/version_requirements.txt diff --git a/build/pkgs/mathics/checksums.ini b/build/pkgs/mathics/checksums.ini deleted file mode 100644 index d43327d515d..00000000000 --- a/build/pkgs/mathics/checksums.ini +++ /dev/null @@ -1,4 +0,0 @@ -tarball=Mathics3-VERSION.tar.gz -sha1=a72550d3df97dd4055cf903a9f012683ca2adf35 -sha256=d50ee5ad07db845609078c99af789253337a45f50bef6f8b09262f48dca8da7c -upstream_url=https://pypi.io/packages/source/M/Mathics3/Mathics3-VERSION.tar.gz diff --git a/build/pkgs/mathics/dependencies b/build/pkgs/mathics/dependencies index 11d5626d8c7..47296a7bace 100644 --- a/build/pkgs/mathics/dependencies +++ b/build/pkgs/mathics/dependencies @@ -1,4 +1,4 @@ - | $(PYTHON_TOOLCHAIN) pint palettable mathics_scanner $(PYTHON) + | $(PYTHON_TOOLCHAIN) $(PYTHON) ---------- All lines of this file are ignored except the first. diff --git a/build/pkgs/mathics/package-version.txt b/build/pkgs/mathics/package-version.txt deleted file mode 100644 index fcdb2e109f6..00000000000 --- a/build/pkgs/mathics/package-version.txt +++ /dev/null @@ -1 +0,0 @@ -4.0.0 diff --git a/build/pkgs/mathics/version_requirements.txt b/build/pkgs/mathics/requirements.txt similarity index 100% rename from build/pkgs/mathics/version_requirements.txt rename to build/pkgs/mathics/requirements.txt diff --git a/build/pkgs/mathics/spkg-install.in b/build/pkgs/mathics/spkg-install.in deleted file mode 100644 index 37ac1a53437..00000000000 --- a/build/pkgs/mathics/spkg-install.in +++ /dev/null @@ -1,2 +0,0 @@ -cd src -sdh_pip_install . diff --git a/build/pkgs/mathics_scanner/SPKG.rst b/build/pkgs/mathics_scanner/SPKG.rst deleted file mode 100644 index f5b5fb463d8..00000000000 --- a/build/pkgs/mathics_scanner/SPKG.rst +++ /dev/null @@ -1,18 +0,0 @@ -mathics_scanner: Character Tables and Tokenizer for Mathics and the Wolfram Language -==================================================================================== - -Description ------------ - -Character Tables and Tokenizer for Mathics and the Wolfram Language - -License -------- - -GPL-3.0-only - -Upstream Contact ----------------- - -https://pypi.org/project/Mathics-Scanner/ - diff --git a/build/pkgs/mathics_scanner/checksums.ini b/build/pkgs/mathics_scanner/checksums.ini deleted file mode 100644 index 9d04979b6bd..00000000000 --- a/build/pkgs/mathics_scanner/checksums.ini +++ /dev/null @@ -1,4 +0,0 @@ -tarball=Mathics_Scanner-VERSION.tar.gz -sha1=c89bb997c1da04c1cfe945d16be96bdb0c6ae9a8 -sha256=7b05939751aacea42f3fc4e7eb1ab111f9fe32bae827e89f46a50e04907b19ef -upstream_url=https://pypi.io/packages/source/m/mathics_scanner/Mathics_Scanner-VERSION.tar.gz diff --git a/build/pkgs/mathics_scanner/dependencies b/build/pkgs/mathics_scanner/dependencies deleted file mode 100644 index 47296a7bace..00000000000 --- a/build/pkgs/mathics_scanner/dependencies +++ /dev/null @@ -1,4 +0,0 @@ - | $(PYTHON_TOOLCHAIN) $(PYTHON) - ----------- -All lines of this file are ignored except the first. diff --git a/build/pkgs/mathics_scanner/math b/build/pkgs/mathics_scanner/math deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/build/pkgs/mathics_scanner/package-version.txt b/build/pkgs/mathics_scanner/package-version.txt deleted file mode 100644 index e8ea05db814..00000000000 --- a/build/pkgs/mathics_scanner/package-version.txt +++ /dev/null @@ -1 +0,0 @@ -1.2.4 diff --git a/build/pkgs/mathics_scanner/spkg-configure.m4 b/build/pkgs/mathics_scanner/spkg-configure.m4 deleted file mode 100644 index 09917819a0f..00000000000 --- a/build/pkgs/mathics_scanner/spkg-configure.m4 +++ /dev/null @@ -1 +0,0 @@ -SAGE_SPKG_CONFIGURE([mathics_scanner], [SAGE_PYTHON_PACKAGE_CHECK([mathics_scanner])]) diff --git a/build/pkgs/mathics_scanner/spkg-install.in b/build/pkgs/mathics_scanner/spkg-install.in deleted file mode 100644 index 37ac1a53437..00000000000 --- a/build/pkgs/mathics_scanner/spkg-install.in +++ /dev/null @@ -1,2 +0,0 @@ -cd src -sdh_pip_install . diff --git a/build/pkgs/mathics_scanner/type b/build/pkgs/mathics_scanner/type deleted file mode 100644 index 134d9bc32d5..00000000000 --- a/build/pkgs/mathics_scanner/type +++ /dev/null @@ -1 +0,0 @@ -optional diff --git a/build/pkgs/mathics_scanner/version_requirements.txt b/build/pkgs/mathics_scanner/version_requirements.txt deleted file mode 100644 index 53e09a35113..00000000000 --- a/build/pkgs/mathics_scanner/version_requirements.txt +++ /dev/null @@ -1 +0,0 @@ -Mathics-Scanner diff --git a/build/pkgs/palettable/SPKG.rst b/build/pkgs/palettable/SPKG.rst deleted file mode 100644 index b0557d6c128..00000000000 --- a/build/pkgs/palettable/SPKG.rst +++ /dev/null @@ -1,16 +0,0 @@ -palettable: Color palettes for Python -===================================== - -Description ------------ - -Color palettes for Python - -License -------- - -Upstream Contact ----------------- - -https://pypi.org/project/palettable/ - diff --git a/build/pkgs/palettable/checksums.ini b/build/pkgs/palettable/checksums.ini deleted file mode 100644 index 1ec683df7d8..00000000000 --- a/build/pkgs/palettable/checksums.ini +++ /dev/null @@ -1,4 +0,0 @@ -tarball=palettable-VERSION.tar.gz -sha1=4bdbbeae7f20bc71ce8246cb5269da2c3046ad62 -sha256=72feca71cf7d79830cd6d9181b02edf227b867d503bec953cf9fa91bf44896bd -upstream_url=https://pypi.io/packages/source/p/palettable/palettable-VERSION.tar.gz diff --git a/build/pkgs/palettable/dependencies b/build/pkgs/palettable/dependencies deleted file mode 100644 index 47296a7bace..00000000000 --- a/build/pkgs/palettable/dependencies +++ /dev/null @@ -1,4 +0,0 @@ - | $(PYTHON_TOOLCHAIN) $(PYTHON) - ----------- -All lines of this file are ignored except the first. diff --git a/build/pkgs/palettable/distros/conda.txt b/build/pkgs/palettable/distros/conda.txt deleted file mode 100644 index 646dd7426bb..00000000000 --- a/build/pkgs/palettable/distros/conda.txt +++ /dev/null @@ -1 +0,0 @@ -palettable diff --git a/build/pkgs/palettable/package-version.txt b/build/pkgs/palettable/package-version.txt deleted file mode 100644 index 15a27998172..00000000000 --- a/build/pkgs/palettable/package-version.txt +++ /dev/null @@ -1 +0,0 @@ -3.3.0 diff --git a/build/pkgs/palettable/spkg-configure.m4 b/build/pkgs/palettable/spkg-configure.m4 deleted file mode 100644 index 76d3715e9fd..00000000000 --- a/build/pkgs/palettable/spkg-configure.m4 +++ /dev/null @@ -1 +0,0 @@ -SAGE_SPKG_CONFIGURE([palettable], [SAGE_PYTHON_PACKAGE_CHECK([palettable])]) diff --git a/build/pkgs/palettable/spkg-install.in b/build/pkgs/palettable/spkg-install.in deleted file mode 100644 index 37ac1a53437..00000000000 --- a/build/pkgs/palettable/spkg-install.in +++ /dev/null @@ -1,2 +0,0 @@ -cd src -sdh_pip_install . diff --git a/build/pkgs/palettable/type b/build/pkgs/palettable/type deleted file mode 100644 index 134d9bc32d5..00000000000 --- a/build/pkgs/palettable/type +++ /dev/null @@ -1 +0,0 @@ -optional diff --git a/build/pkgs/palettable/version_requirements.txt b/build/pkgs/palettable/version_requirements.txt deleted file mode 100644 index 646dd7426bb..00000000000 --- a/build/pkgs/palettable/version_requirements.txt +++ /dev/null @@ -1 +0,0 @@ -palettable diff --git a/build/pkgs/pint/SPKG.rst b/build/pkgs/pint/SPKG.rst deleted file mode 100644 index 05ee603025c..00000000000 --- a/build/pkgs/pint/SPKG.rst +++ /dev/null @@ -1,18 +0,0 @@ -pint: Physical quantities module -================================ - -Description ------------ - -Physical quantities module - -License -------- - -BSD - -Upstream Contact ----------------- - -https://pypi.org/project/Pint/ - diff --git a/build/pkgs/pint/checksums.ini b/build/pkgs/pint/checksums.ini deleted file mode 100644 index 7e883f32e55..00000000000 --- a/build/pkgs/pint/checksums.ini +++ /dev/null @@ -1,4 +0,0 @@ -tarball=Pint-VERSION.tar.gz -sha1=c14ac08ca2d5a68d79ea7cd2252dc7e2a572c56a -sha256=387cf04078dc7dfe4a708033baad54ab61d82ab06c4ee3d4922b1e45d5626067 -upstream_url=https://pypi.io/packages/source/p/pint/Pint-VERSION.tar.gz diff --git a/build/pkgs/pint/dependencies b/build/pkgs/pint/dependencies deleted file mode 100644 index 47296a7bace..00000000000 --- a/build/pkgs/pint/dependencies +++ /dev/null @@ -1,4 +0,0 @@ - | $(PYTHON_TOOLCHAIN) $(PYTHON) - ----------- -All lines of this file are ignored except the first. diff --git a/build/pkgs/pint/distros/conda.txt b/build/pkgs/pint/distros/conda.txt deleted file mode 100644 index 45f523a5a6e..00000000000 --- a/build/pkgs/pint/distros/conda.txt +++ /dev/null @@ -1 +0,0 @@ -pint diff --git a/build/pkgs/pint/package-version.txt b/build/pkgs/pint/package-version.txt deleted file mode 100644 index 847e9aef6d1..00000000000 --- a/build/pkgs/pint/package-version.txt +++ /dev/null @@ -1 +0,0 @@ -0.20.1 diff --git a/build/pkgs/pint/spkg-configure.m4 b/build/pkgs/pint/spkg-configure.m4 deleted file mode 100644 index bfa78b5f327..00000000000 --- a/build/pkgs/pint/spkg-configure.m4 +++ /dev/null @@ -1 +0,0 @@ -SAGE_SPKG_CONFIGURE([pint], [SAGE_PYTHON_PACKAGE_CHECK([pint])]) diff --git a/build/pkgs/pint/spkg-install.in b/build/pkgs/pint/spkg-install.in deleted file mode 100644 index 37ac1a53437..00000000000 --- a/build/pkgs/pint/spkg-install.in +++ /dev/null @@ -1,2 +0,0 @@ -cd src -sdh_pip_install . diff --git a/build/pkgs/pint/type b/build/pkgs/pint/type deleted file mode 100644 index 134d9bc32d5..00000000000 --- a/build/pkgs/pint/type +++ /dev/null @@ -1 +0,0 @@ -optional diff --git a/build/pkgs/pint/version_requirements.txt b/build/pkgs/pint/version_requirements.txt deleted file mode 100644 index a3031611162..00000000000 --- a/build/pkgs/pint/version_requirements.txt +++ /dev/null @@ -1 +0,0 @@ -Pint From 6be1dd602107b6dc994d8190db685202be02ae26 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 27 May 2024 00:01:14 -0700 Subject: [PATCH 02/16] build/pkgs/mathics: Force use of our numpy --- build/pkgs/mathics/dependencies | 2 +- build/pkgs/mathics/requirements.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/build/pkgs/mathics/dependencies b/build/pkgs/mathics/dependencies index 47296a7bace..cb5e642ed7a 100644 --- a/build/pkgs/mathics/dependencies +++ b/build/pkgs/mathics/dependencies @@ -1,4 +1,4 @@ - | $(PYTHON_TOOLCHAIN) $(PYTHON) +numpy | $(PYTHON_TOOLCHAIN) $(PYTHON) ---------- All lines of this file are ignored except the first. diff --git a/build/pkgs/mathics/requirements.txt b/build/pkgs/mathics/requirements.txt index e0924d3dace..d853c123b4a 100644 --- a/build/pkgs/mathics/requirements.txt +++ b/build/pkgs/mathics/requirements.txt @@ -1 +1,2 @@ Mathics3 +-c ${SAGE_VENV}/var/lib/sage/scripts/numpy/spkg-requirements.txt From e2e9dd570ee91edcf8d7b352ec603146b0fbe01d Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 27 May 2024 00:07:29 -0700 Subject: [PATCH 03/16] build/pkgs/mathics: Add more dependencies --- build/pkgs/mathics/dependencies | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/mathics/dependencies b/build/pkgs/mathics/dependencies index cb5e642ed7a..fad887c5546 100644 --- a/build/pkgs/mathics/dependencies +++ b/build/pkgs/mathics/dependencies @@ -1,4 +1,4 @@ -numpy | $(PYTHON_TOOLCHAIN) $(PYTHON) +numpy pillow mpmath dateutil requests sympy pyyaml charset_normalizer typing_extensions | $(PYTHON_TOOLCHAIN) $(PYTHON) ---------- All lines of this file are ignored except the first. From c00b6c36be80162e7a7b24e9dd562a735628c57a Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 27 May 2024 00:19:36 -0700 Subject: [PATCH 04/16] build/pkgs/mathics: Switch to git version --- build/pkgs/mathics/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/mathics/requirements.txt b/build/pkgs/mathics/requirements.txt index d853c123b4a..e3e21e46ab5 100644 --- a/build/pkgs/mathics/requirements.txt +++ b/build/pkgs/mathics/requirements.txt @@ -1,2 +1,2 @@ -Mathics3 +Mathics3 @ git+https://github.com/Mathics3/mathics-core@c3c1791e2eff66c6d7883b4265019c35e4959df6 -c ${SAGE_VENV}/var/lib/sage/scripts/numpy/spkg-requirements.txt From c560ce7039193d739371cefcc6c05bda0d732101 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 27 May 2024 12:36:29 -0700 Subject: [PATCH 05/16] build/pkgs/mathics/requirements.txt: Use https://github.com/Mathics3/mathics-core/pull/1034 --- build/pkgs/mathics/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/mathics/requirements.txt b/build/pkgs/mathics/requirements.txt index e3e21e46ab5..6a5180d0b4c 100644 --- a/build/pkgs/mathics/requirements.txt +++ b/build/pkgs/mathics/requirements.txt @@ -1,2 +1,2 @@ -Mathics3 @ git+https://github.com/Mathics3/mathics-core@c3c1791e2eff66c6d7883b4265019c35e4959df6 +Mathics3 @ git+https://github.com/mkoeppe/mathics-core@99536fd39869a72155ca71e2f45b63f68931169a -c ${SAGE_VENV}/var/lib/sage/scripts/numpy/spkg-requirements.txt From 240c06cb9f0513910ece11c7103f5d7a62806b1c Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 27 May 2024 12:36:45 -0700 Subject: [PATCH 06/16] src/sage/features/interfaces.py (Mathics): New --- src/sage/features/interfaces.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/sage/features/interfaces.py b/src/sage/features/interfaces.py index 6d5249ab443..7bb061270fc 100644 --- a/src/sage/features/interfaces.py +++ b/src/sage/features/interfaces.py @@ -91,6 +91,23 @@ def _is_present(self): reason=f"Interface {interface} is not functional: {exception}") +class Mathics(InterfaceFeature): + r""" + A :class:`~sage.features.Feature` describing whether :class:`sage.interfaces.mathics.Mathics` + is present and functional. + + EXAMPLES:: + + sage: from sage.features.interfaces import Mathics + sage: Mathics().is_present() # not tested + FeatureTestResult('mathics', False) + """ + + @staticmethod + def __classcall__(cls): + return InterfaceFeature.__classcall__(cls, 'mathics', 'sage.interfaces.mathics') + + # The following are provided by external software only (no SPKG) class Magma(InterfaceFeature): @@ -223,6 +240,7 @@ def all_features(): [Feature('magma'), Feature('matlab'), Feature('mathematica'), + Feature('mathics'), Feature('maple'), Feature('macaulay2'), Feature('octave'), @@ -231,6 +249,7 @@ def all_features(): return [Magma(), Matlab(), Mathematica(), + Mathics(), Maple(), Macaulay2(), Octave(), From 282e5120ba56f4ca86070e62939a7a39200026ab Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 29 May 2024 11:27:16 -0700 Subject: [PATCH 07/16] build/pkgs/mathics/requirements.txt: Back to Mathics3/mathics-core --- build/pkgs/mathics/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/mathics/requirements.txt b/build/pkgs/mathics/requirements.txt index 6a5180d0b4c..10ce8e62632 100644 --- a/build/pkgs/mathics/requirements.txt +++ b/build/pkgs/mathics/requirements.txt @@ -1,2 +1,2 @@ -Mathics3 @ git+https://github.com/mkoeppe/mathics-core@99536fd39869a72155ca71e2f45b63f68931169a +Mathics3 @ git+https://github.com/Mathics3/mathics-core@af5fa42841c237a0537c1d8a3741b12567fbc1de -c ${SAGE_VENV}/var/lib/sage/scripts/numpy/spkg-requirements.txt From 6d4c5f8a2eb3df4d9678f386d2a21dfc145f6cfc Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 29 May 2024 11:27:47 -0700 Subject: [PATCH 08/16] build/pkgs/mathics/requirements.txt: Unpin, just use master branch HEAD --- build/pkgs/mathics/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/mathics/requirements.txt b/build/pkgs/mathics/requirements.txt index 10ce8e62632..5335f5690e1 100644 --- a/build/pkgs/mathics/requirements.txt +++ b/build/pkgs/mathics/requirements.txt @@ -1,2 +1,2 @@ -Mathics3 @ git+https://github.com/Mathics3/mathics-core@af5fa42841c237a0537c1d8a3741b12567fbc1de +Mathics3 @ git+https://github.com/Mathics3/mathics-core -c ${SAGE_VENV}/var/lib/sage/scripts/numpy/spkg-requirements.txt From f78b3a1edd153b4de9aaff2ddfafcd50dc0960ac Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 29 May 2024 12:48:51 -0700 Subject: [PATCH 09/16] src/sage/interfaces/mathics.py: Call mathics.core.load_builtin.import_and_load_builtins as suggested --- src/sage/interfaces/mathics.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/sage/interfaces/mathics.py b/src/sage/interfaces/mathics.py index b6ffbd3d4f2..24b564f8f6a 100644 --- a/src/sage/interfaces/mathics.py +++ b/src/sage/interfaces/mathics.py @@ -512,6 +512,8 @@ def _start(self): """ if not self._session: from mathics.session import MathicsSession + from mathics.core.load_builtin import import_and_load_builtins + import_and_load_builtins() self._session = MathicsSession() from sage.interfaces.sympy import sympy_init sympy_init() From 4c521a1a8cf657bf8e5cf3a81ee2ac4f5d28f63e Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 3 Jun 2024 11:01:25 -0700 Subject: [PATCH 10/16] src/sage/doctest/external.py: Update doctest output --- src/sage/doctest/external.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sage/doctest/external.py b/src/sage/doctest/external.py index e1f00d0e740..ceec70230d0 100644 --- a/src/sage/doctest/external.py +++ b/src/sage/doctest/external.py @@ -398,6 +398,7 @@ class AvailableSoftware(): 'magma', 'maple', 'mathematica', + 'mathics', 'matlab', 'octave', 'pdflatex', From 9f475223645477cddb2bc526274c74e208b6486b Mon Sep 17 00:00:00 2001 From: Juan Mauricio Matera Date: Tue, 4 Jun 2024 14:20:44 -0300 Subject: [PATCH 11/16] add __round__ to the customized mpmath lib (#43) --- src/sage/libs/mpmath/ext_main.pyx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sage/libs/mpmath/ext_main.pyx b/src/sage/libs/mpmath/ext_main.pyx index 29d524536ea..99a0c782423 100644 --- a/src/sage/libs/mpmath/ext_main.pyx +++ b/src/sage/libs/mpmath/ext_main.pyx @@ -1815,7 +1815,7 @@ cdef class mpf_base(mpnumber): sage: X().to_fixed(30) 3489660928 """ - return libmp.to_fixed(self._mpf_, prec) + return libmp.to_fixed(self._mpf_, prec) def __getstate__(self): return libmp.to_pickable(self._mpf_) @@ -2135,6 +2135,9 @@ cdef class mpf(mpf_base): MPF_sqrt(&r.value, &s.value, global_opts) return r + def __round__(self, *args): + return round(float(self), *args) + def __richcmp__(self, other, int op): """ Compares numbers :: From 4bf041bc0c7daf28948183c975f5f437dec2c78e Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 23 Jun 2024 09:18:50 -0700 Subject: [PATCH 12/16] src/sage/doctest/external.py: mathics is not external --- src/sage/doctest/external.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/sage/doctest/external.py b/src/sage/doctest/external.py index ceec70230d0..aa158c76671 100644 --- a/src/sage/doctest/external.py +++ b/src/sage/doctest/external.py @@ -356,7 +356,9 @@ def external_features(): import sage.features.ffmpeg yield from sage.features.ffmpeg.all_features() import sage.features.interfaces - yield from sage.features.interfaces.all_features() + for feature in sage.features.interfaces.all_features(): + if feature.name != 'mathics': + yield feature from sage.features.mip_backends import CPLEX, Gurobi yield CPLEX() yield Gurobi() @@ -398,7 +400,6 @@ class AvailableSoftware(): 'magma', 'maple', 'mathematica', - 'mathics', 'matlab', 'octave', 'pdflatex', From 52a15229cc9f3f891bcd69536601e9ed55d9cc50 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 23 Jun 2024 09:20:41 -0700 Subject: [PATCH 13/16] build/pkgs/mathics/requirements.txt: Use mathics-scanner from git --- build/pkgs/mathics/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/build/pkgs/mathics/requirements.txt b/build/pkgs/mathics/requirements.txt index 5335f5690e1..88f2f65c22c 100644 --- a/build/pkgs/mathics/requirements.txt +++ b/build/pkgs/mathics/requirements.txt @@ -1,2 +1,3 @@ Mathics3 @ git+https://github.com/Mathics3/mathics-core +mathics-scanner @ git+https://github.com/Mathics3/mathics-scanner -c ${SAGE_VENV}/var/lib/sage/scripts/numpy/spkg-requirements.txt From 2a0874e8fc6df8dce06e97a359b2e1ec31899d57 Mon Sep 17 00:00:00 2001 From: Sebastian Oehms <47305845+soehms@users.noreply.github.com> Date: Mon, 24 Jun 2024 19:58:35 +0200 Subject: [PATCH 14/16] 37395: Adjust doctests of Mathics interface (#45) --- src/sage/interfaces/mathics.py | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/src/sage/interfaces/mathics.py b/src/sage/interfaces/mathics.py index 24b564f8f6a..473bb9dae71 100644 --- a/src/sage/interfaces/mathics.py +++ b/src/sage/interfaces/mathics.py @@ -341,7 +341,7 @@ :: sage: mathics('10.^80') # optional - mathics - 1.*^80 + 1.×10^80 sage: mathics('10.^80').sage() # optional - mathics 1.00000000000000e80 @@ -483,6 +483,7 @@ def __init__(self, self._seed = seed self._initialized = False # done lazily self._session = None + os.environ['MATHICS_CHARACTER_ENCODING'] = 'ASCII' # see :issue:`37395` def _lazy_init(self): r""" @@ -603,7 +604,7 @@ def get(self, var): sage: mathics.set('u', '2*x +E') # optional - mathics sage: mathics.get('u') # optional - mathics - 'E + 2 x' + '2 x + E' """ return self.eval(var) @@ -719,9 +720,9 @@ def _exponent_symbol(self): sage: bignum = mathics('10.^80') # optional - mathics sage: repr(bignum) # optional - mathics - '1.*^80' + '1.×10^80' sage: repr(bignum).replace(mathics._exponent_symbol(), 'e').strip() # optional - mathics - '1.e80' + '1.×10^80' """ return '*^' @@ -774,34 +775,25 @@ def help(self, cmd, long=False): EXAMPLES:: sage: mathics.help('Sin') # optional - mathics - "\n 'Sin[z]'\n returns the sine of z.\n" + 'sine function\n' sage: print(_) # optional - mathics - - 'Sin[z]' - returns the sine of z. + sine function sage: print(mathics.help('Sin', long=True)) # optional - mathics - - 'Sin[z]' - returns the sine of z. + sine function Attributes[Sin] = {Listable, NumericFunction, Protected} sage: print(mathics.Factorial.__doc__) # optional - mathics - - 'Factorial[n]' - 'n!' - computes the factorial of n. + factorial sage: u = mathics('Pi') # optional - mathics sage: print(u.Cos.__doc__) # optional - mathics - - 'Cos[z]' - returns the cosine of z. + cosine function """ if long: @@ -854,7 +846,7 @@ class MathicsElement(ExtraTabCompletion, InterfaceElement): sage: expr = res.last_eval; expr sage: type(expr) - + Applying Mathics methods:: @@ -865,8 +857,6 @@ class MathicsElement(ExtraTabCompletion, InterfaceElement): 'System`E' sage: me.is_inexact() False - sage: me.is_symbol() - True Conversion to Sage:: From d468207107aa9ad5c9a31a7e5492324d1562c7bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20K=C3=B6ppe?= Date: Wed, 26 Jun 2024 23:57:03 -0700 Subject: [PATCH 15/16] Apply suggestions from code review Co-authored-by: Sebastian Oehms <47305845+soehms@users.noreply.github.com> --- src/sage/libs/mpmath/ext_main.pyx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/sage/libs/mpmath/ext_main.pyx b/src/sage/libs/mpmath/ext_main.pyx index 99a0c782423..a3ec1ba5e8e 100644 --- a/src/sage/libs/mpmath/ext_main.pyx +++ b/src/sage/libs/mpmath/ext_main.pyx @@ -1815,7 +1815,7 @@ cdef class mpf_base(mpnumber): sage: X().to_fixed(30) 3489660928 """ - return libmp.to_fixed(self._mpf_, prec) + return libmp.to_fixed(self._mpf_, prec) def __getstate__(self): return libmp.to_pickable(self._mpf_) @@ -2137,7 +2137,6 @@ cdef class mpf(mpf_base): def __round__(self, *args): return round(float(self), *args) - def __richcmp__(self, other, int op): """ Compares numbers :: From 5ba18eac27019fa5dc4f9ae2672b0b384e745aab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20K=C3=B6ppe?= Date: Thu, 27 Jun 2024 10:00:19 -0700 Subject: [PATCH 16/16] Update src/sage/libs/mpmath/ext_main.pyx Co-authored-by: Sebastian Oehms <47305845+soehms@users.noreply.github.com> --- src/sage/libs/mpmath/ext_main.pyx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sage/libs/mpmath/ext_main.pyx b/src/sage/libs/mpmath/ext_main.pyx index a3ec1ba5e8e..d4ffc5fa5c0 100644 --- a/src/sage/libs/mpmath/ext_main.pyx +++ b/src/sage/libs/mpmath/ext_main.pyx @@ -2137,6 +2137,7 @@ cdef class mpf(mpf_base): def __round__(self, *args): return round(float(self), *args) + def __richcmp__(self, other, int op): """ Compares numbers ::