1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6 meson-python,
7 packaging,
8 cython,
9 numpy,
10 scipy,
11 h5py,
12 nibabel,
13 tqdm,
14 trx-python,
15}:
16
17buildPythonPackage rec {
18 pname = "dipy";
19 version = "1.9.0";
20 pyproject = true;
21
22 disabled = pythonOlder "3.6";
23
24 src = fetchFromGitHub {
25 owner = "dipy";
26 repo = "dipy";
27 tag = version;
28 hash = "sha256-6cpxuk2PL43kjQ+6UGiUHUXC7pC9OlW9kZvGOdEXyzw=";
29 };
30
31 postPatch = ''
32 substituteInPlace pyproject.toml \
33 --replace-fail "numpy==" "numpy>="
34 '';
35
36 build-system = [
37 cython
38 meson-python
39 numpy
40 packaging
41 ];
42
43 dependencies = [
44 numpy
45 scipy
46 h5py
47 nibabel
48 packaging
49 tqdm
50 trx-python
51 ];
52
53 # disable tests for now due to:
54 # - some tests require data download (see dipy/dipy/issues/2092);
55 # - running the tests manually causes a multiprocessing hang;
56 # - import weirdness when running the tests
57 doCheck = false;
58
59 pythonImportsCheck = [
60 "dipy"
61 "dipy.core"
62 "dipy.direction"
63 "dipy.tracking"
64 "dipy.reconst"
65 "dipy.io"
66 "dipy.viz"
67 "dipy.data"
68 "dipy.utils"
69 "dipy.segment"
70 "dipy.sims"
71 "dipy.stats"
72 "dipy.denoise"
73 "dipy.workflows"
74 "dipy.nn"
75 ];
76
77 meta = with lib; {
78 homepage = "https://dipy.org/";
79 description = "Diffusion imaging toolkit for Python";
80 changelog = "https://github.com/dipy/dipy/blob/${version}/Changelog";
81 license = licenses.bsd3;
82 maintainers = with maintainers; [ bcdarwin ];
83 };
84}