1{ stdenv
2, lib
3, buildPythonPackage
4, cons
5, cython
6, etuples
7, fetchFromGitHub
8, filelock
9, jax
10, jaxlib
11, logical-unification
12, minikanren
13, numba
14, numba-scipy
15, numpy
16, pytestCheckHook
17, pythonOlder
18, scipy
19, typing-extensions
20}:
21
22buildPythonPackage rec {
23 pname = "aesara";
24 version = "2.8.9";
25 format = "setuptools";
26
27 disabled = pythonOlder "3.7";
28
29 src = fetchFromGitHub {
30 owner = "aesara-devs";
31 repo = "aesara";
32 rev = "refs/tags/rel-${version}";
33 hash = "sha256-xHh7u0NDMjQiu0TdjmiHQebfpXJkuAF7dUAAtXrmrPo=";
34 };
35
36 nativeBuildInputs = [
37 cython
38 ];
39
40 propagatedBuildInputs = [
41 cons
42 etuples
43 filelock
44 logical-unification
45 minikanren
46 numpy
47 scipy
48 typing-extensions
49 ];
50
51 checkInputs = [
52 jax
53 jaxlib
54 numba
55 numba-scipy
56 pytestCheckHook
57 ];
58
59 postPatch = ''
60 substituteInPlace setup.cfg \
61 --replace "--durations=50" ""
62 '';
63
64 preBuild = ''
65 export HOME=$(mktemp -d)
66 '';
67
68 pythonImportsCheck = [
69 "aesara"
70 ];
71
72 disabledTestPaths = [
73 # Don't run the most compute-intense tests
74 "tests/scan/"
75 "tests/tensor/"
76 "tests/sandbox/"
77 "tests/sparse/sandbox/"
78 ];
79
80 meta = with lib; {
81 description = "Python library to define, optimize, and efficiently evaluate mathematical expressions involving multi-dimensional arrays";
82 homepage = "https://github.com/aesara-devs/aesara";
83 changelog = "https://github.com/aesara-devs/aesara/releases";
84 license = licenses.bsd3;
85 maintainers = with maintainers; [ Etjean ];
86 broken = (stdenv.isLinux && stdenv.isAarch64);
87 };
88}