switch to uv and stuff
This commit is contained in:
parent
1f3eb16391
commit
bb1b8eecb9
6 changed files with 133 additions and 56 deletions
61
flake.lock
generated
61
flake.lock
generated
|
|
@ -1,43 +1,58 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"nixpkgs": {
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1760164275,
|
"lastModified": 1731533236,
|
||||||
"narHash": "sha256-gKl2Gtro/LNf8P+4L3S2RsZ0G390ccd5MyXYrTdMCFE=",
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
"owner": "NixOS",
|
"owner": "numtide",
|
||||||
"repo": "nixpkgs",
|
"repo": "flake-utils",
|
||||||
"rev": "362791944032cb532aabbeed7887a441496d5e6e",
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"owner": "numtide",
|
||||||
"type": "indirect"
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pyproject-nix": {
|
"nixpkgs": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759739877,
|
"lastModified": 1760284886,
|
||||||
"narHash": "sha256-XfcxM4nzSuuRmFGiy/MhGwYf9EennQ2+0jjR2aJqtKE=",
|
"narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=",
|
||||||
"owner": "pyproject-nix",
|
"owner": "nixos",
|
||||||
"repo": "pyproject.nix",
|
"repo": "nixpkgs",
|
||||||
"rev": "966e0961f9670f847439ba90dc25ffaa112d8803",
|
"rev": "cf3f5c4def3c7b5f1fc012b3d839575dbe552d43",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "pyproject-nix",
|
"owner": "nixos",
|
||||||
"repo": "pyproject.nix",
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs",
|
"flake-utils": "flake-utils",
|
||||||
"pyproject-nix": "pyproject-nix"
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
113
flake.nix
113
flake.nix
|
|
@ -1,41 +1,90 @@
|
||||||
{
|
{
|
||||||
description = "Flake using pyproject.toml metadata";
|
description = "Flake using pyproject.toml metadata";
|
||||||
|
|
||||||
inputs.pyproject-nix.url = "github:pyproject-nix/pyproject.nix";
|
inputs = {
|
||||||
inputs.pyproject-nix.inputs.nixpkgs.follows = "nixpkgs";
|
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 =
|
outputs = {
|
||||||
{ nixpkgs, pyproject-nix, ... }:
|
self,
|
||||||
let
|
nixpkgs,
|
||||||
inherit (nixpkgs) lib;
|
flake-utils,
|
||||||
forAllSystems = lib.genAttrs lib.systems.flakeExposed;
|
...
|
||||||
|
}:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system: let
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
|
||||||
project = pyproject-nix.lib.project.loadPyproject {
|
pyproject = builtins.fromTOML (builtins.readFile ./pyproject.toml);
|
||||||
projectRoot = ./.;
|
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";
|
editablePackage = pkgs.python3.pkgs.mkPythonEditablePackage {
|
||||||
in
|
pname = project.name;
|
||||||
{
|
inherit (project) scripts version;
|
||||||
devShells = forAllSystems (system: {
|
root = "$PWD";
|
||||||
default =
|
};
|
||||||
let
|
in {
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
devShells = {
|
||||||
python = pkgs.${pythonAttr};
|
default = pkgs.mkShell {
|
||||||
pythonEnv = python.withPackages (project.renderers.withPackages { inherit python; });
|
inputsFrom = [
|
||||||
in
|
package
|
||||||
pkgs.mkShell { packages = [ pythonEnv ]; };
|
];
|
||||||
});
|
|
||||||
|
|
||||||
packages = forAllSystems (
|
buildInputs = [
|
||||||
system:
|
# our package
|
||||||
let
|
editablePackage
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
|
||||||
python = pkgs.${pythonAttr};
|
#################
|
||||||
in
|
# VARIOUS TOOLS #
|
||||||
{
|
#################
|
||||||
default = python.pkgs.buildPythonPackage (project.renderers.buildPythonPackage { inherit python; });
|
|
||||||
}
|
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};
|
||||||
|
};
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,15 @@
|
||||||
[project]
|
[project]
|
||||||
name = "hello-python"
|
name = "protestswap"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
license-files = ["LICEN[CS]E*"]
|
||||||
description = "A minimal pyproject.toml"
|
description = "A minimal pyproject.toml"
|
||||||
authors = [ ]
|
authors = [ ]
|
||||||
requires-python = ">=3.13"
|
requires-python = ">=3.13"
|
||||||
dependencies = [ "insightface", "opencv-python", "matplotlib" ]
|
dependencies = [ "insightface", "opencv-python", "matplotlib" ]
|
||||||
|
|
||||||
|
[project.scripts]
|
||||||
|
protestswap-cli = "protestswap.cli:main"
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["uv_build >= 0.8.17, <0.9.0"]
|
||||||
|
build-backend = "uv_build"
|
||||||
|
|
|
||||||
0
src/protestswap/__init__.py
Normal file
0
src/protestswap/__init__.py
Normal file
7
src/protestswap/cli.py
Normal file
7
src/protestswap/cli.py
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
import protestswap
|
||||||
|
|
||||||
|
def main():
|
||||||
|
print("hello protest")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Loading…
Add table
Add a link
Reference in a new issue