1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 pythonOlder, 6 pytestCheckHook, 7 numpy, 8 pillow, 9 pillow-jpls, 10 pydicom, 11 pylibjpeg, 12 pylibjpeg-libjpeg, 13}: 14 15let 16 test_data = fetchFromGitHub { 17 owner = "pydicom"; 18 repo = "pydicom-data"; 19 rev = "cbb9b2148bccf0f550e3758c07aca3d0e328e768"; 20 hash = "sha256-nF/j7pfcEpWHjjsqqTtIkW8hCEbuQ3J4IxpRk0qc1CQ="; 21 }; 22in 23buildPythonPackage rec { 24 pname = "highdicom"; 25 version = "0.22.0"; 26 pyproject = true; 27 28 disabled = pythonOlder "3.6"; 29 30 src = fetchFromGitHub { 31 owner = "MGHComputationalPathology"; 32 repo = "highdicom"; 33 rev = "refs/tags/v${version}"; 34 hash = "sha256-KHSJWEnm8u0xHkeeLF/U7MY4FfiWb6Q0GQQy2w1mnKw="; 35 }; 36 37 propagatedBuildInputs = [ 38 numpy 39 pillow 40 pillow-jpls 41 pydicom 42 ]; 43 44 passthru.optional-dependencies = { 45 libjpeg = [ 46 pylibjpeg 47 pylibjpeg-libjpeg 48 #pylibjpeg-openjpeg # not in nixpkgs yet 49 ]; 50 }; 51 52 nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.libjpeg; 53 preCheck = '' 54 export HOME=$TMP/test-home 55 mkdir -p $HOME/.pydicom/ 56 ln -s ${test_data}/data_store/data $HOME/.pydicom/data 57 ''; 58 59 pythonImportsCheck = [ 60 "highdicom" 61 "highdicom.legacy" 62 "highdicom.ann" 63 "highdicom.ko" 64 "highdicom.pm" 65 "highdicom.pr" 66 "highdicom.seg" 67 "highdicom.sr" 68 "highdicom.sc" 69 ]; 70 71 meta = with lib; { 72 description = "High-level DICOM abstractions for Python"; 73 homepage = "https://highdicom.readthedocs.io"; 74 changelog = "https://github.com/ImagingDataCommons/highdicom/releases/tag/v${version}"; 75 license = licenses.mit; 76 maintainers = with maintainers; [ bcdarwin ]; 77 }; 78}