1{ lib 2, buildPythonPackage 3, fetchFromGitHub 4, pythonOlder 5, pytestCheckHook 6, numpy 7, pykwalify 8, pywavelets 9, setuptools 10, simpleitk 11, six 12, versioneer 13}: 14 15buildPythonPackage rec { 16 pname = "pyradiomics"; 17 version = "3.1.0"; 18 format = "pyproject"; 19 20 disabled = pythonOlder "3.6"; 21 22 src = fetchFromGitHub { 23 owner = "AIM-Harvard"; 24 repo = "pyradiomics"; 25 rev = "refs/tags/v${version}"; 26 hash = "sha256-/qFNN63Bbq4DUZDPmwUGj1z5pY3ujsbqFJpVXbO+b8E="; 27 name = "pyradiomics"; 28 }; 29 30 nativeBuildInputs = [ setuptools versioneer ]; 31 32 propagatedBuildInputs = [ 33 numpy 34 pykwalify 35 pywavelets 36 simpleitk 37 six 38 ]; 39 40 nativeCheckInputs = [ pytestCheckHook ]; 41 preCheck = '' 42 rm -rf radiomics 43 ''; 44 # tries to access network at collection time: 45 disabledTestPaths = [ "tests/test_wavelet.py" ]; 46 # various urllib download errors and (probably related) missing feature errors: 47 disabledTests = [ 48 "brain1_shape2D-original_shape2D" 49 "brain2_shape2D-original_shape2D" 50 "breast1_shape2D-original_shape2D" 51 "lung1_shape2D-original_shape2D" 52 "lung2_shape2D-original_shape2D" 53 ]; 54 # note the above elements of disabledTests are patterns, not exact tests, 55 # so simply setting `disabledTests` does not suffice: 56 pytestFlagsArray = [ 57 "-k '${toString (lib.intersperse "and" (lib.forEach disabledTests (t: "not ${t}")))}'" 58 ]; 59 60 pythonImportsCheck = [ 61 "radiomics" 62 ]; 63 64 meta = with lib; { 65 homepage = "https://pyradiomics.readthedocs.io"; 66 description = "Extraction of Radiomics features from 2D and 3D images and binary masks"; 67 changelog = "https://github.com/AIM-Harvard/pyradiomics/releases/tag/v${version}"; 68 license = licenses.bsd3; 69 maintainers = with maintainers; [ bcdarwin ]; 70 }; 71}