1{
2 lib,
3 buildPythonPackage,
4 colorama,
5 fetchFromGitHub,
6 networkx,
7 numpy,
8 pytest-lazy-fixture,
9 pytestCheckHook,
10 pythonOlder,
11 setuptools,
12 typeguard,
13 versioneer,
14}:
15
16buildPythonPackage rec {
17 pname = "monai-deploy";
18 version = "3.0.0";
19 pyproject = true;
20
21 disabled = pythonOlder "3.7";
22
23 src = fetchFromGitHub {
24 owner = "Project-MONAI";
25 repo = "monai-deploy-app-sdk";
26 tag = version;
27 hash = "sha256-W2GXVd4gWgfGLjXR+8m/Ztm52Agj4FGWtEFrh4mjYk0=";
28 };
29
30 postPatch = ''
31 # Asked in https://github.com/Project-MONAI/monai-deploy-app-sdk/issues/450
32 # if this patch can be incorporated upstream.
33 substituteInPlace pyproject.toml \
34 --replace-fail 'versioneer-518' 'versioneer'
35 '';
36
37 build-system = [
38 versioneer
39 setuptools
40 ];
41
42 dependencies = [
43 numpy
44 networkx
45 colorama
46 typeguard
47 ];
48
49 nativeCheckInputs = [
50 pytestCheckHook
51 pytest-lazy-fixture
52 ];
53
54 disabledTests = [
55 # requires Docker daemon:
56 "test_packager"
57 ];
58
59 pythonImportsCheck = [
60 "monai.deploy"
61 "monai.deploy.core"
62 # "monai.deploy.operators" should be imported as well but
63 # requires some "optional" dependencies
64 # like highdicom and pydicom
65 ];
66
67 meta = with lib; {
68 description = "Framework and tools to design, develop and verify AI applications in healthcare imaging";
69 mainProgram = "monai-deploy";
70 homepage = "https://monai.io/deploy.html";
71 changelog = "https://github.com/Project-MONAI/monai-deploy-app-sdk/blob/main/docs/source/release_notes/${src.tag}.md";
72 license = licenses.asl20;
73 maintainers = with maintainers; [ bcdarwin ];
74 };
75}