gnu: python-mathics-core: Update to 9.0.0.

* gnu/packages/maths.scm (python-mathics-core)[arguments]<#:tests?>: Enable.
<#:phases>{patch-bugs}: Modify.
{set-home}: New phase.

Change-Id: I4b892e4475f63478ea6c52bed69f593259a4d618
This commit is contained in:
Danny Milosavljevic 2026-01-20 04:06:05 +01:00
parent 1b6da830d2
commit 9e64eecf6b
No known key found for this signature in database
GPG key ID: E71A35542C30BAA5

View file

@ -11272,7 +11272,7 @@ the Wolfram language.")
(define-public python-mathics-core
(package
(name "python-mathics-core")
(version "8.0.1")
(version "9.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -11281,18 +11281,15 @@ the Wolfram language.")
(file-name (git-file-name name version))
(sha256
(base32
"1ikgw3w3silxisih92g1wgcwb37k7qkwfmdv5r6yy4ki74qvyk5q"))))
"19232vs3sxg1nq32cas8hwsiwvp6nzpnz4jzjjahpvrv1bl62prs"))))
(arguments
`(;; <https://github.com/pytest-dev/pytest/pull/10173> is missing .closed
#:tests? #f ;TODO: update package
#:test-flags '("-s")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-bugs
(lambda _
(substitute* "pyproject.toml"
(("\"data/*.json\",")
"\"data/*.json\", \"data/operator-tables.json\",")
(("\"autoload/\\*.m\",")
;; They forgot to install autoload/rules/*.m
"\"autoload/*.m\", \"autoload/rules/*.m\","))
@ -11300,9 +11297,33 @@ the Wolfram language.")
(substitute* "mathics/builtin/files_io/files.py"
(("https://raw.githubusercontent.com/Mathics3/mathics-core/master/README.rst")
(string-append (getcwd) "/README.rst")))
;; setup.py has some weird acrobatics that cannot work right.
(invoke "mathics3-generate-operator-json-table" "-o"
"mathics/data/operator-tables.json")))
;; llvmlite 0.45+ auto-initializes LLVM; calling initialize()
;; now raises RuntimeError.
;; <https://llvmlite.readthedocs.io/en/v0.45.0/user-guide/binding/initialization-finalization.html>
(substitute* "mathics/compile/compile.py"
(("llvm\\.initialize\\(\\)") "pass"))
;; The JSON operator tables (op-tables.json, operator-tables.json)
;; are pre-generated in the PyPI tarball but not in git.
;; The Makefile runs admin-tools/make-JSON-tables.sh before
;; 'make dist', but that script also writes to the scanner's
;; default location which is read-only in the store. Run the
;; needed commands directly. setup.py has fallback generation
;; code but it's buggy: it writes operator-tables.json to the
;; wrong path and op-tables.json is missing
;; --field=operator-to-amslatex. Creating the files first
;; makes setup.py's 'if not os.path.exists' checks pass and
;; the buggy code is skipped.
(with-directory-excursion "mathics/data"
(invoke "mathics3-generate-json-table"
"--field=ascii-operator-to-symbol"
"--field=ascii-operator-to-unicode"
"--field=ascii-operator-to-wl-unicode"
"--field=operator-to-ascii"
"--field=operator-to-amslatex"
"--field=operator-to-unicode"
"-o" "op-tables.json")
(invoke "mathics3-generate-operator-json-table"
"-o" "operator-tables.json"))))
(add-before 'check 'prepare-check
(lambda* (#:key inputs outputs #:allow-other-keys)
;(copy-file "operator-tables.json" "mathics/data/operator-tables.json")
@ -11312,7 +11333,12 @@ the Wolfram language.")
(lambda _
;; Otherwise 210 tests fail because the real output would use
;; unicode arrow characters. With this, only 18 (symbolic) tests fail.
(setenv "MATHICS_CHARACTER_ENCODING" "ASCII"))))))
(setenv "MATHICS_CHARACTER_ENCODING" "ASCII")))
(add-before 'sanity-check 'set-home
(lambda _
;; The sanity check imports mathics which tries to create a
;; config directory in HOME. Set HOME to a writable location.
(setenv "HOME" "/tmp"))))))
(build-system pyproject-build-system)
(native-inputs (list python-pytest python-setuptools python-wheel))
(inputs (list llvm))