{ inputs = { nixpkgs.url = "github:Infinidoge/nixpkgs/feat/disnake"; flake-parts.url = "github:hercules-ci/flake-parts"; devshell.url = "github:numtide/devshell"; pyproject-nix.url = "github:nix-community/pyproject.nix"; flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs"; devshell.inputs.nixpkgs.follows = "nixpkgs"; pyproject-nix.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" ]; imports = with inputs; [ devshell.flakeModule ]; perSystem = { config, pkgs, ... }: let project = inputs.pyproject-nix.lib.project.loadPyproject { projectRoot = ./.; }; python = pkgs.python3; in { packages.default = (python.pkgs.buildPythonPackage ( project.renderers.buildPythonPackage { inherit python; } )).overrideAttrs { allowSubstitutes = false; preferLocalBuild = true; }; devshells.default = let env = python.withPackages ( project.renderers.withPackages { inherit python; extraPackages = p: with p; [ python-lsp-server python-lsp-ruff pylsp-rope isort black ]; } ); in { devshell = { name = "nomen"; motd = ""; packages = [ env ]; }; env = [ { name = "PYTHONPATH"; prefix = "${env}/${env.sitePackages}"; } ]; }; }; }; }