python312Packages.{gdcm,dicom2nifti}: unbreak (#354294)

This commit is contained in:
Peder Bergebakken Sundt
2024-11-08 14:29:14 +01:00
committed by GitHub
3 changed files with 22 additions and 6 deletions
+10 -1
View File
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
"-DGDCM_USE_VTK=ON"
] ++ lib.optionals enablePython [
"-DGDCM_WRAP_PYTHON:BOOL=ON"
"-DGDCM_INSTALL_PYTHONMODULE_DIR=${placeholder "out"}/${python.sitePackages}"
"-DGDCM_INSTALL_PYTHONMODULE_DIR=${placeholder "out"}/${python.sitePackages}/python_gdcm"
];
nativeBuildInputs = [
@@ -66,6 +66,13 @@ stdenv.mkDerivation rec {
libiconv
] ++ lib.optionals enablePython [ swig python ];
postInstall = lib.optionalString enablePython ''
substitute \
${./python_gdcm.egg-info} \
$out/${python.sitePackages}/python_gdcm-${version}.egg-info \
--subst-var-by GDCM_VER "${version}"
'';
disabledTests = [
# require networking:
"TestEcho"
@@ -77,6 +84,8 @@ stdenv.mkDerivation rec {
"TestSCUValidation"
# errors because 3 classes not wrapped:
"TestWrapPython"
# AttributeError: module 'gdcm' has no attribute 'UIDGenerator_SetRoot'; maybe a wrapping regression:
"TestUIDGeneratorPython"
] ++ lib.optionals (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux) [
"TestRescaler2"
];
@@ -0,0 +1,5 @@
Metadata-Version: 2.1
Name: python-gdcm
Version: @GDCM_VER@
Summary: C++ library for DICOM medical files wrapped for Python using SWIG
Platform: UNKNOWN
@@ -8,6 +8,8 @@
nibabel,
numpy,
pydicom,
pylibjpeg,
pylibjpeg-libjpeg,
scipy,
setuptools,
}:
@@ -37,16 +39,16 @@ buildPythonPackage rec {
scipy
];
# python-gdcm just builds the python interface provided by the "gdcm" package, so
# we should be able to replace "python-gdcm" with "gdcm" but this doesn't work
# (similar to https://github.com/NixOS/nixpkgs/issues/84774)
postPatch = ''
substituteInPlace setup.py --replace-fail "python-gdcm" ""
substituteInPlace tests/test_generic.py --replace-fail "from common" "from dicom2nifti.common"
substituteInPlace tests/test_ge.py --replace-fail "import convert_generic" "import dicom2nifti.convert_generic as convert_generic"
'';
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytestCheckHook
pylibjpeg
pylibjpeg-libjpeg
];
pythonImportsCheck = [ "dicom2nifti" ];