diff --git a/pkgs/development/python-modules/heudiconv/default.nix b/pkgs/development/python-modules/heudiconv/default.nix new file mode 100644 index 000000000000..29a29a3b6522 --- /dev/null +++ b/pkgs/development/python-modules/heudiconv/default.nix @@ -0,0 +1,49 @@ +{ stdenv +, buildPythonPackage +, fetchPypi +, isPy27 +, pytest +, mock +, dcm2niix +, nibabel +, pydicom +, nipype +, dcmstack +, etelemetry +, filelock +}: + +buildPythonPackage rec { + version = "0.8.0"; + pname = "heudiconv"; + + disabled = isPy27; + + src = fetchPypi { + inherit pname version; + #sha256 = "0gzqqa4pzhywdbvks2qjniwhr89sgipl5k7h9hcjs7cagmy9gb05"; + sha256 = "1r6y93125mc84c09970ifps5xysp8ffp62rwlzili3q2k1m3fh4v"; + }; + + postPatch = '' + # doesn't exist as a separate package with Python 3: + substituteInPlace heudiconv/info.py --replace "'pathlib'," "" + ''; + + propagatedBuildInputs = [ + dcm2niix nibabel pydicom nipype dcmstack etelemetry filelock + ]; + + checkInputs = [ dcm2niix pytest mock ]; + + # test_monitor and test_dlad require 'inotify' and 'datalad' respectively, + # and these aren't in Nixpkgs + checkPhase = "pytest -k 'not test_dlad and not test_monitor' heudiconv/tests"; + + meta = with stdenv.lib; { + homepage = "https://heudiconv.readthedocs.io"; + description = "Flexible DICOM converter for organizing imaging data"; + license = licenses.asl20; + maintainers = with maintainers; [ bcdarwin ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 6f07d73493f9..f51df792754f 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2921,6 +2921,8 @@ in { helpdev = callPackage ../development/python-modules/helpdev { }; + heudiconv = callPackage ../development/python-modules/heudiconv { }; + hickle = callPackage ../development/python-modules/hickle { }; hiro = callPackage ../development/python-modules/hiro {};