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 [];
|
||||
python2Extension = import ../../../top-level/python2-packages.nix;
|
||||
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
|
||||
pkgs.splicePackages
|
||||
pkgs.newScope
|
||||
otherSplices
|
||||
keep
|
||||
extra
|
||||
(lib.extends extensions pythonPackagesFun))
|
||||
(lib.extends (lib.composeExtensions aliases extensions) pythonPackagesFun))
|
||||
{
|
||||
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 New Issue
Block a user