1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 pythonOlder,
6 pytestCheckHook,
7 matplotlib,
8 nibabel,
9 numpy,
10 pydicom,
11 pymedio,
12 scikit-fuzzy,
13 scikit-image,
14 scikit-learn,
15 scipy,
16 simpleitk,
17 statsmodels,
18}:
19
20buildPythonPackage rec {
21 pname = "intensity-normalization";
22 version = "2.2.4";
23 format = "setuptools";
24
25 disabled = pythonOlder "3.6";
26
27 src = fetchPypi {
28 pname = "intensity_normalization";
29 inherit version;
30 hash = "sha256-s/trDIRoqLFj3NO+iv3E+AEB4grBAHDlEL6+TCdsgmg=";
31 };
32
33 postPatch = ''
34 substituteInPlace setup.cfg --replace "!=3.10.*," "" --replace "!=3.11.*" ""
35 substituteInPlace setup.cfg --replace "pytest-runner" ""
36 '';
37
38 pythonRelaxDeps = [ "nibabel" ];
39
40 propagatedBuildInputs = [
41 matplotlib
42 nibabel
43 numpy
44 pydicom
45 pymedio
46 scikit-fuzzy
47 scikit-image
48 scikit-learn
49 scipy
50 simpleitk
51 statsmodels
52 ];
53
54 nativeCheckInputs = [ pytestCheckHook ];
55 pytestFlagsArray = [ "tests" ];
56
57 pythonImportsCheck = [
58 "intensity_normalization"
59 "intensity_normalization.normalize"
60 "intensity_normalization.plot"
61 "intensity_normalization.util"
62 ];
63
64 meta = with lib; {
65 homepage = "https://github.com/jcreinhold/intensity-normalization";
66 description = "MRI intensity normalization tools";
67 maintainers = with maintainers; [ bcdarwin ];
68 license = licenses.asl20;
69 };
70}