pythonPackages: use fixed-point combinator
Use a fixed-point combinator for the Python package set to allow easier overriding of its contents. Earlier implementations were proposed in #16784 and #17428. This commit is by comparison much smaller and changes only what is needed.
This commit is contained in:
parent
374ac13a6e
commit
8dadb44196
@ -9897,37 +9897,30 @@ in
|
|||||||
# regardless.
|
# regardless.
|
||||||
python26Packages = callPackage ./python-packages.nix {
|
python26Packages = callPackage ./python-packages.nix {
|
||||||
python = python26;
|
python = python26;
|
||||||
self = python26Packages;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
python27Packages = lib.hiPrioSet (recurseIntoAttrs (callPackage ./python-packages.nix {
|
python27Packages = lib.hiPrioSet (recurseIntoAttrs (callPackage ./python-packages.nix {
|
||||||
python = python27;
|
python = python27;
|
||||||
self = python27Packages;
|
|
||||||
}));
|
}));
|
||||||
|
|
||||||
python33Packages = callPackage ./python-packages.nix {
|
python33Packages = callPackage ./python-packages.nix {
|
||||||
python = python33;
|
python = python33;
|
||||||
self = python33Packages;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
python34Packages = callPackage ./python-packages.nix {
|
python34Packages = callPackage ./python-packages.nix {
|
||||||
python = python34;
|
python = python34;
|
||||||
self = python34Packages;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
python35Packages = recurseIntoAttrs (callPackage ./python-packages.nix {
|
python35Packages = recurseIntoAttrs (callPackage ./python-packages.nix {
|
||||||
python = python35;
|
python = python35;
|
||||||
self = python35Packages;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
python36Packages = (callPackage ./python-packages.nix {
|
python36Packages = (callPackage ./python-packages.nix {
|
||||||
python = python36;
|
python = python36;
|
||||||
self = python36Packages;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
pypyPackages = callPackage ./python-packages.nix {
|
pypyPackages = callPackage ./python-packages.nix {
|
||||||
python = pypy;
|
python = pypy;
|
||||||
self = pypyPackages;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
### DEVELOPMENT / R MODULES
|
### DEVELOPMENT / R MODULES
|
||||||
|
@ -1,7 +1,14 @@
|
|||||||
{ pkgs, stdenv, python, self }:
|
{ pkgs
|
||||||
|
, stdenv
|
||||||
|
, python
|
||||||
|
, overrides ? (self: super: {})
|
||||||
|
}:
|
||||||
|
|
||||||
with pkgs.lib;
|
with pkgs.lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
packages = ( self:
|
||||||
|
|
||||||
let
|
let
|
||||||
pythonAtLeast = versionAtLeast python.pythonVersion;
|
pythonAtLeast = versionAtLeast python.pythonVersion;
|
||||||
pythonOlder = versionOlder python.pythonVersion;
|
pythonOlder = versionOlder python.pythonVersion;
|
||||||
@ -31323,4 +31330,7 @@ in {
|
|||||||
zeitgeist = if isPy3k then throw "zeitgeist not supported for interpreter ${python.executable}" else
|
zeitgeist = if isPy3k then throw "zeitgeist not supported for interpreter ${python.executable}" else
|
||||||
(pkgs.zeitgeist.override{python2Packages=self;}).py;
|
(pkgs.zeitgeist.override{python2Packages=self;}).py;
|
||||||
|
|
||||||
}
|
|
||||||
|
});
|
||||||
|
|
||||||
|
in fix' (extends overrides packages)
|
||||||
|
Loading…
Reference in New Issue
Block a user