nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6 ninja,
7 numpy,
8 packaging,
9 pybind11,
10 torch,
11 which,
12}:
13
14buildPythonPackage rec {
15 pname = "monai";
16 version = "1.5.1";
17 pyproject = true;
18
19 src = fetchFromGitHub {
20 owner = "Project-MONAI";
21 repo = "MONAI";
22 tag = version;
23 hash = "sha256-GhyUOp/iLpuKKQAwQsA6D7IiW8ym8QTC4OmRxEKydVA=";
24 # fix source non-reproducibility due to versioneer + git-archive, as with Numba, Pytensor etc. derivations:
25 postFetch = ''
26 sed -i 's/git_refnames = "[^"]*"/git_refnames = " (tag: ${src.tag})"/' $out/monai/_version.py
27 '';
28 };
29
30 preBuild = ''
31 export MAX_JOBS=$NIX_BUILD_CORES;
32 '';
33
34 build-system = [
35 ninja
36 which
37 ];
38
39 buildInputs = [ pybind11 ];
40
41 dependencies = [
42 numpy
43 packaging
44 torch
45 ];
46
47 env.BUILD_MONAI = 1;
48
49 doCheck = false; # takes too long; tries to download data
50
51 pythonImportsCheck = [
52 "monai"
53 "monai.apps"
54 "monai.data"
55 "monai.engines"
56 "monai.handlers"
57 "monai.inferers"
58 "monai.losses"
59 "monai.metrics"
60 "monai.optimizers"
61 "monai.networks"
62 "monai.transforms"
63 "monai.utils"
64 "monai.visualize"
65 ];
66
67 meta = {
68 description = "Pytorch framework (based on Ignite) for deep learning in medical imaging";
69 homepage = "https://github.com/Project-MONAI/MONAI";
70 changelog = "https://github.com/Project-MONAI/MONAI/releases/tag/${version}";
71 license = lib.licenses.asl20;
72 maintainers = [ lib.maintainers.bcdarwin ];
73 };
74}