feat(pip): add option ignoredDependencies, to ignore dependencies like wheel

also add unzip to native build inputs to allow .zip sdist files
This commit is contained in:
DavHau 2023-08-22 12:49:02 +02:00
parent 919cd21990
commit b58cc53fac
2 changed files with 28 additions and 6 deletions

View File

@ -9,6 +9,20 @@
python = config.deps.python; python = config.deps.python;
metadata = config.lock.content.fetchPipMetadata; metadata = config.lock.content.fetchPipMetadata;
ignored = l.genAttrs cfg.ignoredDependencies (name: true);
filterTarget = target:
l.filterAttrs (name: target: ! ignored ? ${name}) target;
# filter out ignored dependencies
targets = l.flip l.mapAttrs metadata.targets (
targetName: target:
l.flip l.mapAttrs (filterTarget target) (
packageName: deps:
l.filter (dep: ! ignored ? ${dep}) deps
)
);
writers = import ../../../pkgs/writers { writers = import ../../../pkgs/writers {
inherit lib; inherit lib;
inherit inherit
@ -64,6 +78,7 @@
gawk gawk
path path
stdenv stdenv
unzip
writeScript writeScript
writeScriptBin writeScriptBin
; ;
@ -129,9 +144,9 @@ in {
if targets.default ? ${config.name} if targets.default ? ${config.name}
then then
throw '' throw ''
Top-level package ${config.name} is listed in the lockfile. Top-level package ${config.name} is listed in the lockfile.
Set `pip.flattenDependencies` to false to use only the top-level dependencies. Set `pip.flattenDependencies` to false to use only the top-level dependencies.
'' ''
else let else let
topLevelDepNames = l.attrNames (targets.default); topLevelDepNames = l.attrNames (targets.default);
in in
@ -139,9 +154,9 @@ in {
else if ! targets.default ? ${config.name} else if ! targets.default ? ${config.name}
then then
throw '' throw ''
Top-level package ${config.name} is not listed in the lockfile. Top-level package ${config.name} is not listed in the lockfile.
Set `pip.flattenDependencies` to true to use all dependencies for the top-level package. Set `pip.flattenDependencies` to true to use all dependencies for the top-level package.
'' ''
else []; else [];
}; };
}; };

View File

@ -16,6 +16,13 @@ in {
''; '';
default = false; default = false;
}; };
ignoredDependencies = l.mkOption {
type = t.listOf t.str;
description = ''
list of dependencies to ignore
'';
default = ["wheel"];
};
pypiSnapshotDate = l.mkOption { pypiSnapshotDate = l.mkOption {
type = t.str; type = t.str;
description = '' description = ''