switch to uv and stuff
This commit is contained in:
parent
1f3eb16391
commit
bb1b8eecb9
6 changed files with 133 additions and 56 deletions
113
flake.nix
113
flake.nix
|
|
@ -1,41 +1,90 @@
|
|||
{
|
||||
description = "Flake using pyproject.toml metadata";
|
||||
|
||||
inputs.pyproject-nix.url = "github:pyproject-nix/pyproject.nix";
|
||||
inputs.pyproject-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
# pyproject-nix.url = "github:pyproject-nix/pyproject.nix";
|
||||
# pyproject-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{ nixpkgs, pyproject-nix, ... }:
|
||||
let
|
||||
inherit (nixpkgs) lib;
|
||||
forAllSystems = lib.genAttrs lib.systems.flakeExposed;
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
...
|
||||
}:
|
||||
flake-utils.lib.eachDefaultSystem (system: let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
|
||||
project = pyproject-nix.lib.project.loadPyproject {
|
||||
projectRoot = ./.;
|
||||
pyproject = builtins.fromTOML (builtins.readFile ./pyproject.toml);
|
||||
project = pyproject.project;
|
||||
package = pkgs.python3Packages.buildPythonPackage {
|
||||
pname = project.name;
|
||||
inherit (project) version;
|
||||
format = "pyproject";
|
||||
|
||||
src = ./.;
|
||||
|
||||
build-system = with pkgs.python3Packages; [
|
||||
uv-build
|
||||
];
|
||||
|
||||
# # test dependencies
|
||||
nativeCheckInputs = with pkgs; [
|
||||
# python3Packages.mypy
|
||||
# python3Packages.pytest
|
||||
taplo
|
||||
];
|
||||
|
||||
# checkPhase = '''';
|
||||
|
||||
propagatedBuildInputs = with pkgs; [
|
||||
python3Packages.click
|
||||
] ++ builtins.map (dep: pkgs.python3Packages.${dep}) project.dependencies;
|
||||
};
|
||||
|
||||
pythonAttr = "python3";
|
||||
in
|
||||
{
|
||||
devShells = forAllSystems (system: {
|
||||
default =
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
python = pkgs.${pythonAttr};
|
||||
pythonEnv = python.withPackages (project.renderers.withPackages { inherit python; });
|
||||
in
|
||||
pkgs.mkShell { packages = [ pythonEnv ]; };
|
||||
});
|
||||
editablePackage = pkgs.python3.pkgs.mkPythonEditablePackage {
|
||||
pname = project.name;
|
||||
inherit (project) scripts version;
|
||||
root = "$PWD";
|
||||
};
|
||||
in {
|
||||
devShells = {
|
||||
default = pkgs.mkShell {
|
||||
inputsFrom = [
|
||||
package
|
||||
];
|
||||
|
||||
packages = forAllSystems (
|
||||
system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
python = pkgs.${pythonAttr};
|
||||
in
|
||||
{
|
||||
default = python.pkgs.buildPythonPackage (project.renderers.buildPythonPackage { inherit python; });
|
||||
}
|
||||
);
|
||||
};
|
||||
buildInputs = [
|
||||
# our package
|
||||
editablePackage
|
||||
|
||||
#################
|
||||
# VARIOUS TOOLS #
|
||||
#################
|
||||
|
||||
pkgs.python3Packages.build
|
||||
pkgs.python3Packages.ipython
|
||||
|
||||
####################
|
||||
# EDITOR/LSP TOOLS #
|
||||
####################
|
||||
|
||||
# LSP server:
|
||||
pkgs.python3Packages.python-lsp-server
|
||||
|
||||
# LSP server plugins of interest:
|
||||
pkgs.python3Packages.pylsp-mypy
|
||||
pkgs.python3Packages.pylsp-rope
|
||||
pkgs.python3Packages.python-lsp-ruff
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
packages = {
|
||||
"${project.name}" = package;
|
||||
default = self.packages.${system}.${project.name};
|
||||
};
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue