summaryrefslogtreecommitdiff
path: root/gnu/packages/python-science.scm
diff options
context:
space:
mode:
authorVinicius Monego <monego@posteo.net>2023-05-20 19:02:10 -0300
committerVinicius Monego <monego@posteo.net>2023-06-25 10:48:05 -0300
commitcbcab52fd1ba7d5e1fc2367acdbb08de8a7864f4 (patch)
tree1ecb5dba5ab27bd21e06ec812885c4dc3b871115 /gnu/packages/python-science.scm
parent4d9d673a863b51416c852705f5e232168c946723 (diff)
gnu: Add python-pytensor.
* gnu/packages/python-science.scm (python-pytensor): New variable.
Diffstat (limited to 'gnu/packages/python-science.scm')
-rw-r--r--gnu/packages/python-science.scm77
1 files changed, 77 insertions, 0 deletions
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 81cd17693e..5e058b1495 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -754,6 +754,83 @@ and visualization with these data structures.")
functions and around einops with an API and features adapted to xarray.")
(license license:asl2.0)))
+(define-public python-pytensor
+ (package
+ (name "python-pytensor")
+ (version "2.12.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pymc-devs/pytensor")
+ (commit (string-append "rel-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1445fwbmzkdbndkq9hxiagdkfclgrnmpfzad40zqn6m5ry8192x8"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #: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/")))))))
+ (native-inputs (list python-cython python-pytest python-versioneer))
+ (propagated-inputs (list python-cons
+ python-etuples
+ python-filelock
+ python-logical-unification
+ python-minikanren
+ python-numba
+ python-numpy
+ python-scipy
+ python-typing-extensions))
+ (home-page "https://pytensor.readthedocs.io/en/latest/")
+ (synopsis
+ "Library for mathematical expressions in multi-dimensional arrays")
+ (description
+ "PyTensor is a Python library that allows one to define, optimize, and
+efficiently evaluate mathematical expressions involving multi-dimensional
+arrays. It is a fork of the Aesara library.")
+ (license license:bsd-3)))
+
(define-public python-msgpack-numpy
(package
(name "python-msgpack-numpy")