{ description = "A basic flake using pyproject.toml project metadata"; inputs = { pyproject-nix = { url = "github:nix-community/pyproject.nix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { nixpkgs, pyproject-nix, ... }: let inherit (nixpkgs) lib; project = pyproject-nix.lib.project.loadPyproject { # Read & unmarshal pyproject.toml relative to this project root. # projectRoot is also used to set `src` for renderers such as buildPythonPackage. projectRoot = ./.; }; # This example is only using x86_64-linux pkgs = nixpkgs.legacyPackages.x86_64-linux; python = pkgs.python3; # Returns an attribute set that can be passed to `buildPythonPackage`. attrs = project.renderers.buildPythonPackage { inherit python; }; pkg = python.pkgs.buildPythonPackage (attrs // { meta = { description = "Blog backend for blog.node5.net"; homepage = "https://blog.node5.net/Blog%20meta/"; changelog = "https://git.node5.net/blog/blog.node5.net_flask/log/"; mainProgram = "blog-node5"; }; propagatedBuildInputs = (attrs.propagatedBuildInputs or []) ++ [ pkgs.git ]; # Make git binary available }); in { packages.x86_64-linux.default = pkg; pythonPath = "${python.pkgs.makePythonPath attrs.dependencies}:${pkg}/${python.sitePackages}"; }; }