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 google_api_python_client = google-api-python-client; # added 2021-03-19 googleapis_common_protos = googleapis-common-protos; # added 2021-03-19 MechanicalSoup = mechanicalsoup; # added 2021-06-01 setuptools_scm = setuptools-scm; # added 2021-06-03 })