diff options
author | Nicolas Graves <ngraves@ngraves.fr> | 2025-04-04 21:16:40 +0200 |
---|---|---|
committer | Andreas Enge <andreas@enge.fr> | 2025-04-16 11:46:26 +0200 |
commit | 58ca499bff25f07def8467c754362e67326cce08 (patch) | |
tree | e79a2e425264ad340d6ce86a13299811f498f49d | |
parent | 2d30f21fb9edfa0cf83d3cb1e51e7caa6db25ae7 (diff) |
gnu: python-pytensor: Update to 2.28.3.
* gnu/packages/python-science.scm (python-pytensor): Update to 2.28.3.
[arguments]{test-flags}: Use field.
{phases}: Remove 'check phase replacement. Simplify 'versioneer. Add
phase 'pre-check.
Co-authored-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Change-Id: I8f324863438356ebc1ad3d62e86b5b17c416cd02
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
-rw-r--r-- | gnu/packages/python-science.scm | 85 |
1 files changed, 49 insertions, 36 deletions
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index 4de2b78af7..44bf4a6b44 100644 --- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -2479,7 +2479,7 @@ objects.") (define-public python-pytensor (package (name "python-pytensor") - (version "2.18.1") + (version "2.28.3") ; the minimal version supporting SciPy 1.12.0 (source (origin (method git-fetch) (uri (git-reference @@ -2488,52 +2488,65 @@ objects.") (file-name (git-file-name name version)) (sha256 (base32 - "0qa0y13xfm6w7ry7gp0lv84c8blyg34a9ns7ynwqyhf9majq08s5")))) + "1yz1yslms6kdmy4sgnvbnghhclcpkc80z3vaw9c2y3b3j1fs9b4v")))) (build-system pyproject-build-system) (arguments (list + #:test-flags + ;; XXX: Full test suite takes about 20-30min to complete in single + ;; thread, attempt to run tests in parallel with pytest-xdist fails even + ;; so upstream provides a support for that, try to figure out how to + ;; improve it. + ;; + ;; Upstream implements a script, showing slow tests which may be used to + ;; exclude even more hanging/slow ones, see + ;; <scripts/slowest_tests/extract-slow-tests.py>. + ;; + ;; Skip computationally intensive tests. + #~(list "--ignore" "tests/scan/" + "--ignore" "tests/tensor/" + "--ignore" "tests/sandbox/" + "--ignore" "tests/sparse/sandbox/" + ;; Tests hang while running from these files. + "--ignore" "tests/compile/test_compilelock.py" + "--ignore" "tests/link/jax/test_tensor_basic.py" + ;; XXX: Tests finish with error in these files, check why. + "--ignore" "tests/compile/function/test_types.py" + "--ignore" "tests/link/numba/test_basic.py" + "--ignore" "tests/link/numba/test_blockwise.py" + "--ignore" "tests/link/numba/test_elemwise.py" + "-k" (string-join + ;; Skip benchmark tests. + (list "not test_elemwise_speed" + "test_logsumexp_benchmark" + "test_fused_elemwise_benchmark" + "test_scan_multiple_output" + "test_vector_taps_benchmark" + "test_cython_performance" + ;; Assertion fails in tests. + "test_choose_signature" + "test_fgraph_to_python_names") + " and not ") + ;; Tests collection selects pytensor, which does not contain + ;; tests and fails to pass; manually provide a test directory + ;; instead. + "tests") #:phases #~(modify-phases %standard-phases ;; Replace version manually because pytensor uses ;; versioneer, which requires git metadata. (add-after 'unpack 'versioneer (lambda _ - (with-output-to-file "setup.cfg" - (lambda () - (display "\ -[versioneer] -VCS = git -style = pep440 -versionfile_source = pytensor/_version.py -versionfile_build = pytensor/_version.py -tag_prefix = -parentdir_prefix = pytensor- -"))) (invoke "versioneer" "install") (substitute* "setup.py" - (("versioneer.get_version\\(\\)") - (string-append "\"" #$version "\""))))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (setenv "HOME" "/tmp") ; required for most tests - ;; Test discovery fails, have to call pytest by hand. - ;; test_tensor_basic.py file requires JAX. - (invoke "python" "-m" "pytest" "-vv" - "--ignore" "tests/link/jax/test_tensor_basic.py" - ;; Skip benchmark tests. - "-k" (string-append - "not test_elemwise_speed" - " and not test_logsumexp_benchmark" - " and not test_fused_elemwise_benchmark" - " and not test_scan_multiple_output" - " and not test_vector_taps_benchmark" - " and not test_cython_performance") - ;; Skip computationally intensive tests. - "--ignore" "tests/scan/" - "--ignore" "tests/tensor/" - "--ignore" "tests/sandbox/" - "--ignore" "tests/sparse/sandbox/"))))))) + (("version=versioneer.get_version\\(),") + (format #f "version=~s," #$version))))) + (add-before 'check 'pre-check + (lambda _ + ;; It is required for most tests. + (setenv "HOME" "/tmp") + ;; Cython extensions have to be built before running the tests. + (invoke "python" "setup.py" "build_ext" "--inplace")))))) (native-inputs (list python-cython python-pytest python-pytest-mock |