summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/python-science.scm85
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