1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 hatch-vcs,
6 hatchling,
7 pytestCheckHook,
8 attrs,
9 importlib-resources,
10 jinja2,
11 looseversion,
12 matplotlib,
13 nibabel,
14 nilearn,
15 nipype,
16 nitransforms,
17 numpy,
18 packaging,
19 pandas,
20 pybids,
21 pyyaml,
22 scikit-image,
23 scipy,
24 seaborn,
25 svgutils,
26 templateflow,
27 traits,
28 transforms3d,
29}:
30
31buildPythonPackage rec {
32 pname = "niworkflows";
33 version = "1.10.2";
34 pyproject = true;
35
36 src = fetchFromGitHub {
37 owner = "nipreps";
38 repo = "niworkflows";
39 rev = "refs/tags/${version}";
40 hash = "sha256-29ZxLuKrvgCIOMMCUpi0HHhlNlgqUrUrSCiikwecmKw=";
41 };
42
43 pythonRelaxDeps = [ "traits" ];
44
45 build-system = [
46 hatch-vcs
47 hatchling
48 ];
49
50 dependencies = [
51 attrs
52 importlib-resources
53 jinja2
54 looseversion
55 matplotlib
56 nibabel
57 nilearn
58 nipype
59 nitransforms
60 numpy
61 packaging
62 pandas
63 pybids
64 pyyaml
65 scikit-image
66 scipy
67 seaborn
68 svgutils
69 templateflow
70 traits
71 transforms3d
72 ];
73
74 env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
75
76 nativeCheckInputs = [ pytestCheckHook ];
77 preCheck = ''export HOME=$(mktemp -d)'';
78 pytestFlagsArray = [ "niworkflows" ];
79 # try to download data:
80 disabledTests = [
81 "test_GenerateCifti"
82 "ROIsPlot"
83 "ROIsPlot2"
84 "test_SimpleShowMaskRPT"
85 "test_cifti_surfaces_plot"
86 "niworkflows.utils.misc.get_template_specs"
87 "niworkflows.interfaces.cifti._prepare_cifti"
88 ];
89 disabledTestPaths = [ "niworkflows/tests/test_registration.py" ];
90
91 pythonImportsCheck = [ "niworkflows" ];
92
93 meta = with lib; {
94 description = "Common workflows for MRI (anatomical, functional, diffusion, etc.)";
95 mainProgram = "niworkflows-boldref";
96 homepage = "https://github.com/nipreps/niworkflows";
97 changelog = "https://github.com/nipreps/niworkflows/blob/${src.rev}/CHANGES.rst";
98 license = licenses.asl20;
99 maintainers = with maintainers; [ bcdarwin ];
100 };
101}