poetry2nix/tests/panel-wheels/default.nix
2023-10-26 12:28:09 +13:00

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)}
''