pythonPackages: Add aliases 🎉
This commit is contained in:
parent
9d6f7c1080
commit
0197f1dc41
|
@ -73,13 +73,14 @@ with pkgs;
|
||||||
optionalExtensions = cond: as: if cond then as else [];
|
optionalExtensions = cond: as: if cond then as else [];
|
||||||
python2Extension = import ../../../top-level/python2-packages.nix;
|
python2Extension = import ../../../top-level/python2-packages.nix;
|
||||||
extensions = lib.composeManyExtensions ((optionalExtensions (!self.isPy3k) [python2Extension]) ++ [ overrides ]);
|
extensions = lib.composeManyExtensions ((optionalExtensions (!self.isPy3k) [python2Extension]) ++ [ overrides ]);
|
||||||
|
aliases = self: super: lib.optionalAttrs (config.allowAliases or true) (import ../../../top-level/python-aliases.nix lib self super);
|
||||||
in lib.makeScopeWithSplicing
|
in lib.makeScopeWithSplicing
|
||||||
pkgs.splicePackages
|
pkgs.splicePackages
|
||||||
pkgs.newScope
|
pkgs.newScope
|
||||||
otherSplices
|
otherSplices
|
||||||
keep
|
keep
|
||||||
extra
|
extra
|
||||||
(lib.extends extensions pythonPackagesFun))
|
(lib.extends (lib.composeExtensions aliases extensions) pythonPackagesFun))
|
||||||
{
|
{
|
||||||
overrides = packageOverrides;
|
overrides = packageOverrides;
|
||||||
};
|
};
|
||||||
|
|
37
pkgs/top-level/python-aliases.nix
Normal file
37
pkgs/top-level/python-aliases.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
lib: self: super:
|
||||||
|
|
||||||
|
with self;
|
||||||
|
|
||||||
|
let
|
||||||
|
# Removing recurseForDerivation prevents derivations of aliased attribute
|
||||||
|
# set to appear while listing all the packages available.
|
||||||
|
removeRecurseForDerivations = alias: with lib;
|
||||||
|
if alias.recurseForDerivations or false then
|
||||||
|
removeAttrs alias ["recurseForDerivations"]
|
||||||
|
else alias;
|
||||||
|
|
||||||
|
# Disabling distribution prevents top-level aliases for non-recursed package
|
||||||
|
# sets from building on Hydra.
|
||||||
|
removeDistribute = alias: with lib;
|
||||||
|
if isDerivation alias then
|
||||||
|
dontDistribute alias
|
||||||
|
else alias;
|
||||||
|
|
||||||
|
# Make sure that we are not shadowing something from
|
||||||
|
# python-packages.nix.
|
||||||
|
checkInPkgs = n: alias: if builtins.hasAttr n super
|
||||||
|
then throw "Alias ${n} is still in python-packages.nix"
|
||||||
|
else alias;
|
||||||
|
|
||||||
|
mapAliases = aliases:
|
||||||
|
lib.mapAttrs (n: alias: removeDistribute
|
||||||
|
(removeRecurseForDerivations
|
||||||
|
(checkInPkgs n alias)))
|
||||||
|
aliases;
|
||||||
|
in
|
||||||
|
|
||||||
|
### Deprecated aliases - for backward compatibility
|
||||||
|
|
||||||
|
mapAliases ({
|
||||||
|
smart_open = smart-open; # added 2021-03-14
|
||||||
|
})
|
Loading…
Reference in a new issue