diff --git a/pkgs/development/python-modules/mmcv/default.nix b/pkgs/development/python-modules/mmcv/default.nix index 3f7b5f9f4ce9..cc9efa952bf3 100644 --- a/pkgs/development/python-modules/mmcv/default.nix +++ b/pkgs/development/python-modules/mmcv/default.nix @@ -48,10 +48,17 @@ buildPythonPackage rec { hash = "sha256-NNF9sLJWV1q6uBE73LUW4UWwYm4TBMTBJjJkFArBmsc="; }; - postPatch = '' - substituteInPlace setup.py \ - --replace-fail "cpu_use = 4" "cpu_use = $NIX_BUILD_CORES" - ''; + postPatch = + # Fails in python >= 3.13 + # exec(compile(f.read(), version_file, "exec")) does not populate the locals() namesp + # In python 3.13, the locals() dictionary in a function does not automatically update with + # changes made by exec(). + # https://peps.python.org/pep-0558/ + '' + substituteInPlace setup.py \ + --replace-fail "cpu_use = 4" "cpu_use = $NIX_BUILD_CORES" \ + --replace-fail "return locals()['__version__']" "return '${version}'" + ''; nativeBuildInputs = [ ninja diff --git a/pkgs/development/python-modules/mmengine/default.nix b/pkgs/development/python-modules/mmengine/default.nix index ecedb608e878..816b042cf7bf 100644 --- a/pkgs/development/python-modules/mmengine/default.nix +++ b/pkgs/development/python-modules/mmengine/default.nix @@ -52,6 +52,23 @@ buildPythonPackage rec { }) ]; + postPatch = + # Fails in python >= 3.13 + # exec(compile(f.read(), version_file, "exec")) does not populate the locals() namesp + # In python 3.13, the locals() dictionary in a function does not automatically update with + # changes made by exec(). + # https://peps.python.org/pep-0558/ + '' + substituteInPlace setup.py \ + --replace-fail \ + "return locals()['__version__']" \ + "return '${version}'" + '' + + '' + substituteInPlace tests/test_config/test_lazy.py \ + --replace-fail "import numpy.compat" "" + ''; + build-system = [ setuptools ]; dependencies = [