mirror of
https://github.com/vale981/poetry2nix
synced 2025-03-06 09:41:39 -05:00
35 lines
1,014 B
Nix
35 lines
1,014 B
Nix
{ lib, poetry2nix, python3, pkgs, runCommand }:
|
|
let
|
|
wheelImports = {
|
|
bokeh = "bokeh";
|
|
panel = "panel";
|
|
pillow = "PIL";
|
|
};
|
|
wheelPackages = builtins.attrNames wheelImports;
|
|
env = poetry2nix.mkPoetryEnv {
|
|
python = python3;
|
|
pyproject = ./pyproject.toml;
|
|
poetrylock = ./poetry.lock;
|
|
overrides = poetry2nix.overrides.withDefaults (
|
|
_self: super: {
|
|
bokeh = super.bokeh.override {
|
|
preferWheel = true;
|
|
};
|
|
|
|
panel = super.panel.override {
|
|
preferWheel = true;
|
|
};
|
|
|
|
pillow = super.pillow.override {
|
|
preferWheel = true;
|
|
};
|
|
}
|
|
);
|
|
};
|
|
areWheels = map (name: env.python.pkgs.${name}.src.isWheel) wheelPackages;
|
|
mkImportCall = pkg: "${env}/bin/python -c 'import ${pkg}; print(${pkg}.__version__)' > $out/${pkg}";
|
|
in
|
|
assert builtins.all lib.id areWheels; runCommand "panel-wheels" { } ''
|
|
mkdir -p "$out"
|
|
${lib.concatStringsSep "\n" (map (pkg: mkImportCall wheelImports.${pkg}) wheelPackages)}
|
|
''
|