forked from mirrors/nixpkgs
Python: rewrite requiredPythonModules. Add requiredPythonModules attribute to derivation
This commit is contained in:
parent
87317bab0a
commit
a334930490
|
@ -7,7 +7,7 @@
|
|||
, setuptools
|
||||
, unzip
|
||||
, ensureNewerSourcesHook
|
||||
, pythonModule
|
||||
, toPythonModule
|
||||
, namePrefix
|
||||
, bootstrapped-pip
|
||||
, flit
|
||||
|
@ -19,7 +19,7 @@ let
|
|||
wheel-specific = import ./build-python-package-wheel.nix { };
|
||||
common = import ./build-python-package-common.nix { inherit python bootstrapped-pip; };
|
||||
mkPythonDerivation = import ./mk-python-derivation.nix {
|
||||
inherit lib python wrapPython setuptools unzip ensureNewerSourcesHook pythonModule namePrefix;
|
||||
inherit lib python wrapPython setuptools unzip ensureNewerSourcesHook toPythonModule namePrefix;
|
||||
};
|
||||
in
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
, unzip
|
||||
, ensureNewerSourcesHook
|
||||
# Whether the derivation provides a Python module or not.
|
||||
, pythonModule
|
||||
, toPythonModule
|
||||
, namePrefix
|
||||
}:
|
||||
|
||||
|
@ -54,7 +54,7 @@ if disabled
|
|||
then throw "${name} not supported for interpreter ${python.executable}"
|
||||
else
|
||||
|
||||
python.stdenv.mkDerivation (builtins.removeAttrs attrs [
|
||||
toPythonModule (python.stdenv.mkDerivation (builtins.removeAttrs attrs [
|
||||
"disabled" "checkInputs" "doCheck" "doInstallCheck" "dontWrapPythonPrograms" "catchConflicts"
|
||||
] // {
|
||||
|
||||
|
@ -84,14 +84,9 @@ python.stdenv.mkDerivation (builtins.removeAttrs attrs [
|
|||
${python.interpreter} ${./catch_conflicts}/catch_conflicts.py
|
||||
'' + attrs.postFixup or '''';
|
||||
|
||||
passthru = {
|
||||
inherit python; # The python interpreter
|
||||
inherit pythonModule;
|
||||
} // passthru;
|
||||
|
||||
meta = {
|
||||
# default to python's platforms
|
||||
platforms = python.meta.platforms;
|
||||
isBuildPythonPackage = python.meta.platforms;
|
||||
} // meta;
|
||||
})
|
||||
}))
|
||||
|
|
|
@ -56,14 +56,14 @@ let
|
|||
flit = self.flit;
|
||||
# We want Python libraries to be named like e.g. "python3.6-${name}"
|
||||
inherit namePrefix;
|
||||
pythonModule = python;
|
||||
inherit toPythonModule;
|
||||
}));
|
||||
|
||||
buildPythonApplication = makeOverridablePythonPackage ( makeOverridable (callPackage ../development/interpreters/python/build-python-package.nix {
|
||||
inherit bootstrapped-pip;
|
||||
flit = self.flit;
|
||||
namePrefix = "";
|
||||
pythonModule = false;
|
||||
toPythonModule = x: x; # Application does not provide modules.
|
||||
}));
|
||||
|
||||
graphiteVersion = "1.0.2";
|
||||
|
@ -91,11 +91,9 @@ let
|
|||
|
||||
# Get list of required Python modules given a list of derivations.
|
||||
requiredPythonModules = drvs: let
|
||||
filterNull = list: filter (x: !isNull x) list;
|
||||
conditionalGetRecurse = attr: condition: drv: let f = conditionalGetRecurse attr condition; in
|
||||
(if (condition drv) then unique [drv]++(concatMap f (filterNull(getAttr attr drv))) else []);
|
||||
_required = drv: conditionalGetRecurse "propagatedBuildInputs" hasPythonModule drv;
|
||||
in [python] ++ (unique (concatMap _required (filterNull drvs)));
|
||||
removeNull = list: filter (x: !isNull x) list;
|
||||
modules = filter hasPythonModule (removeNull drvs);
|
||||
in unique ([python] ++ modules ++ concatLists (catAttrs "requiredPythonModules" modules));
|
||||
|
||||
# Create a PYTHONPATH from a list of derivations. This function recurses into the items to find derivations
|
||||
# providing Python modules.
|
||||
|
@ -106,9 +104,9 @@ let
|
|||
drv.overrideAttrs( oldAttrs: {
|
||||
# Use passthru in order to prevent rebuilds when possible.
|
||||
passthru = (oldAttrs.passthru or {})// {
|
||||
name = namePrefix + oldAttrs.name;
|
||||
pythonModule = python;
|
||||
pythonPath = [ ]; # Deprecated, for compatibility.
|
||||
requiredPythonModules = requiredPythonModules drv.propagatedBuildInputs;
|
||||
};
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in a new issue