1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 cython,
8 meson-python,
9 ninja,
10 setuptools,
11
12 # dependencies
13 numpy,
14 scipy,
15 nibabel,
16 sympy,
17 transforms3d,
18
19 # optional-dependencies
20 matplotlib,
21
22 # tests
23 pytestCheckHook,
24}:
25
26buildPythonPackage rec {
27 version = "0.6.1";
28 pname = "nipy";
29 pyproject = true;
30
31 src = fetchFromGitHub {
32 owner = "nipy";
33 repo = "nipy";
34 tag = version;
35 hash = "sha256-KGMGu0/0n1CzN++ri3Ig1AJjeZfkl4KzNgm6jdwXB7o=";
36 };
37
38 postPatch = ''
39 patchShebangs nipy/_build_utils/cythoner.py
40 '';
41
42 build-system = [
43 cython
44 meson-python
45 setuptools
46 ninja
47 numpy
48 ];
49
50 dependencies = [
51 nibabel
52 numpy
53 scipy
54 sympy
55 transforms3d
56 ];
57
58 optional-dependencies.optional = [ matplotlib ];
59
60 nativeCheckInputs = [ pytestCheckHook ] ++ optional-dependencies.optional;
61
62 doCheck = false; # partial imports … circular dependencies. needs more time to figure out.
63
64 pythonImportsCheck = [
65 "nipy"
66 "nipy.testing"
67 "nipy.algorithms"
68 ];
69
70 meta = with lib; {
71 homepage = "https://nipy.org/nipy";
72 description = "Software for structural and functional neuroimaging analysis";
73 downloadPage = "https://github.com/nipy/nipy";
74 license = licenses.bsd3;
75 };
76}