From cce0f3f3006853f9182c893df2e3b04a262aece2 Mon Sep 17 00:00:00 2001 From: Yueh-Shun Li Date: Fri, 20 Dec 2024 00:30:50 +0800 Subject: [PATCH] buildPython*: bring back buildPython*.override Fix `makeOverridablePythonPackage` in python-package-base.nix and unshadow `buildPython*.override`. This makes it possible to override the dependencies of buildPython*. E.g., `buildPythonPackage.override { unzip = unzip-custom; }` returns a derived version of `buildPythonPackage` with the `unzip` package overridden with `unzip-custom`. --- .../interpreters/python/python-packages-base.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/development/interpreters/python/python-packages-base.nix b/pkgs/development/interpreters/python/python-packages-base.nix index 66a7c823fecc..ca4e4fd89741 100644 --- a/pkgs/development/interpreters/python/python-packages-base.nix +++ b/pkgs/development/interpreters/python/python-packages-base.nix @@ -38,7 +38,12 @@ let } else result - ); + ) + // lib.optionalAttrs (f ? override) { + # Support overriding `f` itself, e.g. `buildPythonPackage.override { }`. + # Ensure `makeOverridablePythonPackage` is applied to the result. + override = lib.mirrorFunctionArgs f.override (fdrv: makeOverridablePythonPackage (f.override fdrv)); + }; mkPythonDerivation = if python.isPy3k then ./mk-python-derivation.nix else ./python2/mk-python-derivation.nix;