1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 cython,
6 cmake,
7 symengine,
8 pytest,
9 sympy,
10 python,
11 setuptools,
12}:
13
14buildPythonPackage rec {
15 pname = "symengine";
16 version = "0.14.1";
17
18 build-system = [ setuptools ];
19 pyproject = true;
20
21 src = fetchFromGitHub {
22 owner = "symengine";
23 repo = "symengine.py";
24 tag = "v${version}";
25 hash = "sha256-adzODm7gAqwAf7qzfRQ1AG8mC3auiXM4OsV/0h+ZmUg=";
26 };
27
28 env = {
29 SymEngine_DIR = "${symengine}";
30 };
31
32 postPatch = ''
33 substituteInPlace setup.py \
34 --replace-fail "'cython>=0.29.24'" "'cython'"
35 '';
36
37 dontUseCmakeConfigure = true;
38 nativeBuildInputs = [
39 cmake
40 cython
41 ];
42
43 nativeCheckInputs = [
44 pytest
45 sympy
46 ];
47
48 checkPhase = ''
49 runHook preCheck
50 mkdir empty && cd empty
51 ${python.interpreter} ../bin/test_python.py
52 runHook postCheck
53 '';
54
55 meta = with lib; {
56 description = "Python library providing wrappers to SymEngine";
57 homepage = "https://github.com/symengine/symengine.py";
58 license = licenses.mit;
59 maintainers = [ ];
60 };
61}