64 lines
1.7 KiB
Nix
64 lines
1.7 KiB
Nix
{
|
|
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}"; }
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|