From e8302431efb34fe0694a8bbc8f8f84abca456618 Mon Sep 17 00:00:00 2001 From: Yueh-Shun Li Date: Thu, 23 Oct 2025 18:36:31 +0800 Subject: [PATCH] makeOverridablePythonPackage: simplify implementation Attach overridePythonAttrs by attribute set update instead of `stdenv.mkDerivation`'s `passthru`. Co-authored-by: Matt Sturgeon --- .../python/python-packages-base.nix | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/pkgs/development/interpreters/python/python-packages-base.nix b/pkgs/development/interpreters/python/python-packages-base.nix index e3a92bef52f3..22c829bf736c 100644 --- a/pkgs/development/interpreters/python/python-packages-base.nix +++ b/pkgs/development/interpreters/python/python-packages-base.nix @@ -19,22 +19,13 @@ let lib.mirrorFunctionArgs f ( origArgs: let - args = lib.fix ( - lib.extends (_: previousAttrs: { - passthru = (previousAttrs.passthru or { }) // { - overridePythonAttrs = newArgs: makeOverridablePythonPackage f (overrideWith newArgs); - }; - }) (_: origArgs) - ); - result = f args; - overrideWith = newArgs: args // (if pkgs.lib.isFunction newArgs then newArgs args else newArgs); + result = f origArgs; + overrideWith = newArgs: origArgs // lib.toFunction newArgs origArgs; in - if builtins.isAttrs result then + if lib.isAttrs result then result - else if builtins.isFunction result then - { + // { overridePythonAttrs = newArgs: makeOverridablePythonPackage f (overrideWith newArgs); - __functor = self: result; } else result