Loading pkgs/development/interpreters/python/python-packages-base.nix +20 −15 Original line number Diff line number Diff line Loading @@ -38,25 +38,30 @@ let // { # 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)); override = lib.mirrorFunctionArgs f.override ( newArgs: makeOverridablePythonPackage (f.override newArgs) ); }; overrideStdenvCompat = f: lib.setFunctionArgs ( lib.fix ( f': lib.mirrorFunctionArgs f ( args: if !(lib.isFunction args) && (args ? stdenv) then lib.warnIf (lib.oldestSupportedReleaseIsAtLeast 2511) '' Passing `stdenv` directly to `buildPythonPackage` or `buildPythonApplication` is deprecated. You should use their `.override` function instead, e.g: buildPythonPackage.override { stdenv = customStdenv; } { } '' (f.override { stdenv = args.stdenv; } args) '' (f'.override { inherit (args) stdenv; } (removeAttrs args [ "stdenv" ])) else f args ) (removeAttrs (lib.functionArgs f) [ "stdenv" ]) ) // { # Intentionally drop the effect of overrideStdenvCompat when calling `buildPython*.override`. inherit (f) override; }; # Preserve the effect of overrideStdenvCompat when calling `buildPython*.override`. override = lib.mirrorFunctionArgs f.override (newArgs: overrideStdenvCompat (f.override newArgs)); } ); mkPythonDerivation = if python.isPy3k then ./mk-python-derivation.nix else ./python2/mk-python-derivation.nix; Loading pkgs/test/overriding.nix +7 −0 Original line number Diff line number Diff line Loading @@ -453,6 +453,13 @@ let })).stdenv; expected = pkgs.clangStdenv; }; overridePythonAttrs-override-clangStdenv-deprecated-nested = { expr = (package-stub-gcc.overridePythonAttrs { stdenv = pkgs.clangStdenv; }).stdenv; expected = pkgs.clangStdenv; }; overridePythonAttrs = { expr = (applyOverridePythonAttrs package-stub).overridePythonAttrsFlag; Loading Loading
pkgs/development/interpreters/python/python-packages-base.nix +20 −15 Original line number Diff line number Diff line Loading @@ -38,25 +38,30 @@ let // { # 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)); override = lib.mirrorFunctionArgs f.override ( newArgs: makeOverridablePythonPackage (f.override newArgs) ); }; overrideStdenvCompat = f: lib.setFunctionArgs ( lib.fix ( f': lib.mirrorFunctionArgs f ( args: if !(lib.isFunction args) && (args ? stdenv) then lib.warnIf (lib.oldestSupportedReleaseIsAtLeast 2511) '' Passing `stdenv` directly to `buildPythonPackage` or `buildPythonApplication` is deprecated. You should use their `.override` function instead, e.g: buildPythonPackage.override { stdenv = customStdenv; } { } '' (f.override { stdenv = args.stdenv; } args) '' (f'.override { inherit (args) stdenv; } (removeAttrs args [ "stdenv" ])) else f args ) (removeAttrs (lib.functionArgs f) [ "stdenv" ]) ) // { # Intentionally drop the effect of overrideStdenvCompat when calling `buildPython*.override`. inherit (f) override; }; # Preserve the effect of overrideStdenvCompat when calling `buildPython*.override`. override = lib.mirrorFunctionArgs f.override (newArgs: overrideStdenvCompat (f.override newArgs)); } ); mkPythonDerivation = if python.isPy3k then ./mk-python-derivation.nix else ./python2/mk-python-derivation.nix; Loading
pkgs/test/overriding.nix +7 −0 Original line number Diff line number Diff line Loading @@ -453,6 +453,13 @@ let })).stdenv; expected = pkgs.clangStdenv; }; overridePythonAttrs-override-clangStdenv-deprecated-nested = { expr = (package-stub-gcc.overridePythonAttrs { stdenv = pkgs.clangStdenv; }).stdenv; expected = pkgs.clangStdenv; }; overridePythonAttrs = { expr = (applyOverridePythonAttrs package-stub).overridePythonAttrsFlag; Loading