2024-11-13 11:35:39 -05:00
|
|
|
{
|
|
|
|
description = "Valentin (hiro) Boettcher's plotting and metadata utitilies.";
|
|
|
|
|
|
|
|
inputs = {
|
|
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small";
|
|
|
|
poetry2nix = {
|
|
|
|
url = "github:nix-community/poetry2nix";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
outputs = { self, nixpkgs, flake-utils, poetry2nix }:
|
|
|
|
flake-utils.lib.eachDefaultSystem (system:
|
|
|
|
let
|
|
|
|
# see https://github.com/nix-community/poetry2nix/tree/master#api for more functions and examples.
|
2024-11-13 12:12:40 -05:00
|
|
|
hiroplotutils = { poetry2nix, lib }: poetry2nix.mkPoetryApplication {
|
2024-11-13 11:35:39 -05:00
|
|
|
projectDir = self;
|
|
|
|
overrides = poetry2nix.overrides.withDefaults (final: super:
|
|
|
|
lib.mapAttrs
|
|
|
|
(attr: systems: super.${attr}.overridePythonAttrs
|
|
|
|
(old: {
|
|
|
|
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ map (a: final.${a}) systems;
|
|
|
|
}))
|
|
|
|
{
|
|
|
|
# https://github.com/nix-community/poetry2nix/blob/master/docs/edgecases.md#modulenotfounderror-no-module-named-packagename
|
|
|
|
# package = [ "setuptools" ];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
pkgs = import nixpkgs {
|
|
|
|
inherit system;
|
|
|
|
overlays = [
|
|
|
|
poetry2nix.overlays.default
|
|
|
|
(final: _: {
|
2024-11-13 12:12:40 -05:00
|
|
|
hiroplotutils = final.callPackage hiroplotutils { };
|
2024-11-13 11:35:39 -05:00
|
|
|
})
|
|
|
|
];
|
|
|
|
};
|
|
|
|
in
|
|
|
|
{
|
2024-11-13 12:12:40 -05:00
|
|
|
packages.default = pkgs.hiroplotutils;
|
2024-11-13 11:35:39 -05:00
|
|
|
devShells = {
|
|
|
|
# Shell for app dependencies.
|
|
|
|
#
|
|
|
|
# nix develop
|
|
|
|
#
|
|
|
|
# Use this shell for developing your app.
|
|
|
|
default = pkgs.mkShell {
|
|
|
|
inputsFrom = [ pkgs.hiroplotutils ];
|
|
|
|
};
|
|
|
|
|
|
|
|
# Shell for poetry.
|
|
|
|
#
|
|
|
|
# nix develop .#poetry
|
|
|
|
#
|
|
|
|
# Use this shell for changes to pyproject.toml and poetry.lock.
|
|
|
|
poetry = pkgs.mkShell {
|
|
|
|
packages = [ pkgs.poetry ];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
legacyPackages = pkgs;
|
|
|
|
}
|
|
|
|
);
|
|
|
|
}
|