mirror of
https://github.com/vale981/poetry2nix
synced 2025-03-04 16:51:40 -05:00
Pass attrs from mkPoetryPackage through to buildPythonApplication
This commit is contained in:
parent
642768eb65
commit
0f50d8bb3b
3 changed files with 34 additions and 17 deletions
44
default.nix
44
default.nix
|
@ -21,18 +21,28 @@ let
|
|||
pyproject ? src + "/pyproject.toml",
|
||||
poetrylock ? src + "/poetry.lock",
|
||||
overrides ? defaultPoetryOverrides,
|
||||
}: let
|
||||
buildInputs ? [ ],
|
||||
checkInputs ? [ ],
|
||||
propagatedBuildInputs ? [ ],
|
||||
...
|
||||
}@attrs: let
|
||||
pyProject = importTOML pyproject;
|
||||
poetryLock = importTOML poetrylock;
|
||||
|
||||
specialAttrs = [
|
||||
"pyproject"
|
||||
"poetrylock"
|
||||
"overrides"
|
||||
];
|
||||
passedAttrs = builtins.removeAttrs attrs specialAttrs;
|
||||
|
||||
# Create an overriden version of pythonPackages
|
||||
#
|
||||
# We need to avoid mixing multiple versions of pythonPackages in the same
|
||||
# closure as python can only ever have one version of a dependency
|
||||
pythonPackages = (python.override {
|
||||
packageOverrides = self: super:
|
||||
packageOverrides = self: super: let
|
||||
|
||||
let
|
||||
mkPoetryDep = pkgMeta: self.buildPythonPackage {
|
||||
pname = pkgMeta.name;
|
||||
version = pkgMeta.version;
|
||||
|
@ -60,10 +70,16 @@ let
|
|||
override =
|
||||
if builtins.hasAttr pkgMeta.name overrides
|
||||
then overrides."${pkgMeta.name}"
|
||||
else _: drv: drv;
|
||||
in override self drv;
|
||||
else _: _: drv: drv;
|
||||
in override self super drv;
|
||||
}) poetryLock.package;
|
||||
in builtins.listToAttrs lockPkgs;
|
||||
|
||||
in {
|
||||
# TODO: Figure out why install check fails with overridden version
|
||||
pytest_xdist = super.pytest_xdist.overrideAttrs(old: {
|
||||
doInstallCheck = false;
|
||||
});
|
||||
} // builtins.listToAttrs lockPkgs;
|
||||
|
||||
}).pkgs;
|
||||
|
||||
|
@ -71,27 +87,27 @@ let
|
|||
depAttrs = builtins.attrNames deps;
|
||||
in builtins.map (dep: pythonPackages."${dep}") depAttrs;
|
||||
|
||||
in pythonPackages.buildPythonApplication {
|
||||
in pythonPackages.buildPythonApplication (passedAttrs // {
|
||||
pname = pyProject.tool.poetry.name;
|
||||
version = pyProject.tool.poetry.version;
|
||||
|
||||
inherit src;
|
||||
|
||||
format = "pyproject";
|
||||
|
||||
doCheck = false;
|
||||
buildInputs = [ pythonPackages.poetry ]
|
||||
++ buildInputs;
|
||||
|
||||
buildInputs = [ pythonPackages.poetry ];
|
||||
propagatedBuildInputs = getDeps pyProject.tool.poetry.dependencies
|
||||
++ propagatedBuildInputs;
|
||||
|
||||
propagatedBuildInputs = getDeps pyProject.tool.poetry.dependencies;
|
||||
checkInputs = []; # getDeps pyProject.tool.poetry.dev-dependencies;
|
||||
checkInputs = getDeps pyProject.tool.poetry.dev-dependencies
|
||||
++ checkInputs;
|
||||
|
||||
meta = {
|
||||
description = pyProject.tool.poetry.description;
|
||||
licenses = [ pyProject.tool.poetry.license ];
|
||||
};
|
||||
|
||||
};
|
||||
});
|
||||
|
||||
in {
|
||||
inherit mkPoetryPackage defaultPoetryOverrides;
|
||||
|
|
|
@ -2,4 +2,5 @@ with import ../. { };
|
|||
|
||||
mkPoetryPackage {
|
||||
src = ./.;
|
||||
doCheck = false;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
let
|
||||
addSetupTools = self: drv: drv.overrideAttrs(old: {
|
||||
addSetupTools = self: super: drv: drv.overrideAttrs(old: {
|
||||
buildInputs = old.buildInputs ++ [
|
||||
self.setuptools_scm
|
||||
];
|
||||
|
@ -15,7 +15,7 @@ in {
|
|||
|
||||
zipp = addSetupTools;
|
||||
|
||||
importlib-metadata = (self: drv: drv.overrideAttrs(old: {
|
||||
importlib-metadata = self: super: drv: drv.overrideAttrs(old: {
|
||||
src = self.fetchPypi {
|
||||
pname = "importlib_metadata";
|
||||
version = old.version;
|
||||
|
@ -25,7 +25,7 @@ in {
|
|||
buildInputs = old.buildInputs ++ [
|
||||
self.setuptools_scm
|
||||
];
|
||||
}));
|
||||
});
|
||||
|
||||
pluggy = addSetupTools;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue