diff --git a/pkgs/development/python-modules/highdicom/default.nix b/pkgs/development/python-modules/highdicom/default.nix new file mode 100644 index 000000000000..b4420e6de9d4 --- /dev/null +++ b/pkgs/development/python-modules/highdicom/default.nix @@ -0,0 +1,79 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pythonOlder +, pytestCheckHook +, numpy +, pillow +, pillow-jpls +, pydicom +, pylibjpeg +, pylibjpeg-libjpeg +}: + +let + test_data = fetchFromGitHub { + owner = "pydicom"; + repo = "pydicom-data"; + rev = "cbb9b2148bccf0f550e3758c07aca3d0e328e768"; + hash = "sha256-nF/j7pfcEpWHjjsqqTtIkW8hCEbuQ3J4IxpRk0qc1CQ="; + }; +in +buildPythonPackage rec { + pname = "highdicom"; + version = "0.22.0"; + pyproject = true; + + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "MGHComputationalPathology"; + repo = "highdicom"; + rev = "refs/tags/v${version}"; + hash = "sha256-KHSJWEnm8u0xHkeeLF/U7MY4FfiWb6Q0GQQy2w1mnKw="; + }; + + propagatedBuildInputs = [ + numpy + pillow + pillow-jpls + pydicom + ]; + + passthru.optional-dependencies = { + libjpeg = [ + pylibjpeg + pylibjpeg-libjpeg + #pylibjpeg-openjpeg # not in nixpkgs yet + ]; + }; + + nativeCheckInputs = [ + pytestCheckHook + ] ++ passthru.optional-dependencies.libjpeg; + preCheck = '' + export HOME=$TMP/test-home + mkdir -p $HOME/.pydicom/ + ln -s ${test_data}/data_store/data $HOME/.pydicom/data + ''; + + pythonImportsCheck = [ + "highdicom" + "highdicom.legacy" + "highdicom.ann" + "highdicom.ko" + "highdicom.pm" + "highdicom.pr" + "highdicom.seg" + "highdicom.sr" + "highdicom.sc" + ]; + + meta = with lib; { + description = "High-level DICOM abstractions for Python"; + homepage = "https://highdicom.readthedocs.io"; + changelog = "https://github.com/ImagingDataCommons/highdicom/releases/tag/v${version}"; + license = licenses.mit; + maintainers = with maintainers; [ bcdarwin ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e0770a070f22..5c1433702c0e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5110,6 +5110,8 @@ self: super: with self; { hickle = callPackage ../development/python-modules/hickle { }; + highdicom = callPackage ../development/python-modules/highdicom { }; + hid = callPackage ../development/python-modules/hid { inherit (pkgs) hidapi; };