{ description = "Application packaged using poetry2nix"; inputs.flake-utils.url = "github:numtide/flake-utils"; inputs.nixpkgs.url = "github:NixOS/nixpkgs"; inputs.poetry2nix.url = "github:nix-community/poetry2nix"; outputs = { self, nixpkgs, flake-utils, poetry2nix }: { # Nixpkgs overlay providing the application overlay = nixpkgs.lib.composeManyExtensions [ poetry2nix.overlay (final: prev: { # The application nancy = prev.poetry2nix.mkPoetryApplication { projectDir = ./.; }; }) ]; } // (flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; overlays = [ self.overlay ]; }; python = pkgs.python310; in { defaultPackage = pkgs.nancy; devShell = let e = pkgs.poetry2nix.mkPoetryEnv { inherit python; projectDir = ./.; editablePackageSources = { nancy = ./src; }; }; in e.env.overrideAttrs (oldAttrs: { buildInputs = with pkgs; with python.pkgs; [ nixpkgs-fmt black poetry pkgs.pre-commit sqlite mypy # additional python interpreters for use with tox #pkgs.python37 #pkgs.python37Packages.virtualenv pkgs.python38 pkgs.python38Packages.virtualenv pkgs.python39 pkgs.python39Packages.virtualenv tox ]; }); })); }