too lazy to write but it works

This commit is contained in:
alsaiduq-lab 2025-03-22 22:33:01 -06:00
parent 4b536b9b11
commit 3a7ec9f943
6 changed files with 145 additions and 90 deletions

18
flake.lock generated
View file

@ -25,11 +25,11 @@
]
},
"locked": {
"lastModified": 1741955947,
"narHash": "sha256-2lbURKclgKqBNm7hVRtWh0A7NrdsibD0EaWhahUVhhY=",
"lastModified": 1742670145,
"narHash": "sha256-xQ2F9f+ICAGBp/nNv3ddD2U4ZvzuLOci0u/5lyMXPvk=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "4e12151c9e014e2449e0beca2c0e9534b96a26b4",
"rev": "63e77d09a133ac641a0c204e7cfb0c97e133706d",
"type": "github"
},
"original": {
@ -44,11 +44,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1742089599,
"narHash": "sha256-1yBAFE5yEGEjSWZ8BuPt9Yknq+cFwzW6Q86gs5rMkGI=",
"lastModified": 1742607855,
"narHash": "sha256-lUF/tpSON29qNIqhECX/Ue4qVmI3FOvMaW4iUnK49C4=",
"owner": "fufexan",
"repo": "nix-gaming",
"rev": "bbf6f68ec16cead3c29d5ba33d5c52956dfaefdf",
"rev": "9818734e2117dac703767585d48b805fad3e7a5e",
"type": "github"
},
"original": {
@ -90,11 +90,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1741862977,
"narHash": "sha256-prZ0M8vE/ghRGGZcflvxCu40ObKaB+ikn74/xQoNrGQ=",
"lastModified": 1742512142,
"narHash": "sha256-8XfURTDxOm6+33swQJu/hx6xw1Tznl8vJJN5HwVqckg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "cdd2ef009676ac92b715ff26630164bb88fec4e0",
"rev": "7105ae3957700a9646cc4b766f5815b23ed0c682",
"type": "github"
},
"original": {

View file

@ -1,13 +1,21 @@
{
config,
pkgs,
lib,
...
}: let
{ config, pkgs, lib, ... }:
let
customPkgs = import ../pkgs { inherit pkgs lib; };
in {
imports = [
../modules/python.nix
];
python.enable = true;
environment.systemPackages = with pkgs; [
# Applications
(python311.withPackages (pyPkgs: with pyPkgs; [
requests
pip
virtualenv
ipython
]))
python3Packages.pip
black
ruff
brave # TODO: make a module to save browser stuff
vesktop
git
@ -89,4 +97,7 @@ in {
nodePackages.pnpm
zlib.dev
];
environment.shellAliases = {
python = "python3.11";
};
}

View file

@ -1,49 +1,49 @@
{
config,
pkgs,
lib,
...
}:
let
customPkgs = import ../pkgs { inherit pkgs lib; };
in {
options.custom.python = {
enable = lib.mkEnableOption "System Python Env";
};
{ config, pkgs, lib, ... }:
config = lib.mkIf config.custom.python.enable {
let
customPkgs = pkgs.callPackage ../pkgs { inherit pkgs lib; };
in {
options.python = {
enable = lib.mkEnableOption "System Python Environment";
};
config = lib.mkIf config.python.enable {
environment.systemPackages = with pkgs; [
(python311.withPackages (ps: with ps; [
virtualenv
(torch.override { cudaSupport = true; })
torchvision
torchaudio
ipython
(python311.withPackages (pyPkgs: with pyPkgs; [
numpy
python-pymatting
python-opencv-headless
python-rembg
i3ipc
xlib
pandas
matplotlib
scipy
requests
pip
virtualenv
ipython
six
psutil
pynvml
pyqtgraph
pyqt6
numpy
pandas
matplotlib
scipy
requests
click
typer
rich
pyyaml
pytz
onnxruntime
pillow
timm
] ++ [ customPkgs.python-rembg ]))
]))
python3Packages.pip
uv
ruff
black
ruff
uv
];
environment.variables = {
PIP_PREFIX = "$HOME/.local";
PYTHONPATH = "$HOME/.local/lib/python3.11/site-packages";
};
environment.shellAliases = {
python = "python3.11";
};
};
}

View file

@ -1,29 +1,44 @@
{
pkgs ? import <nixpkgs> {},
lib ? pkgs.lib,
}: let
python-opencv-headless = pkgs.callPackage ./python-opencv-headless {
inherit (pkgs) lib fetchurl;
python311Packages = pkgs.python311.pkgs;
};
python-pymatting = pkgs.callPackage ./python-pymatting {
inherit (pkgs) lib fetchPypi;
python311Packages = pkgs.python311.pkgs;
};
python-rembg = pkgs.callPackage ./python-rembg {
inherit (pkgs) lib fetchPypi;
inherit python-pymatting python-opencv-headless;
python311Packages = pkgs.python311.pkgs;
};
in {
}: {
fish-rust = pkgs.callPackage ./fish-rust {};
python-pymatting = python-pymatting;
python-opencv-headless = python-opencv-headless;
python-rembg = python-rembg;
python-pymatting = pkgs.callPackage ./python-pymatting {
inherit lib;
fetchPypi = pkgs.fetchPypi;
python311Packages = pkgs.python311Packages;
};
python-opencv-headless = pkgs.callPackage ./python-opencv-headless {
inherit lib;
fetchPypi = pkgs.fetchPypi;
cmake = pkgs.cmake;
pkg-config = pkgs.pkg-config;
stdenv = pkgs.stdenv;
makeWrapper = pkgs.makeWrapper;
python311Packages = pkgs.python311Packages;
};
python-rembg = pkgs.callPackage ./python-rembg {
inherit lib;
fetchPypi = pkgs.fetchPypi;
python-pymatting = pkgs.callPackage ./python-pymatting {
inherit lib;
fetchPypi = pkgs.fetchPypi;
python311Packages = pkgs.python311Packages;
};
python-opencv-headless = pkgs.callPackage ./python-opencv-headless {
inherit lib;
fetchPypi = pkgs.fetchPypi;
cmake = pkgs.cmake;
pkg-config = pkgs.pkg-config;
stdenv = pkgs.stdenv;
makeWrapper = pkgs.makeWrapper;
python311Packages = pkgs.python311Packages;
};
python311Packages = pkgs.python311Packages;
};
vivid-icons = pkgs.callPackage ./vivid-icons {
inherit (pkgs) lib stdenv fetchFromGitHub;
inherit lib;
stdenv = pkgs.stdenv;
fetchFromGitHub = pkgs.fetchFromGitHub;
};
}

View file

@ -1,23 +1,52 @@
{lib, python311Packages, fetchurl}:
{ lib
, python311Packages
, fetchPypi
, stdenv
, makeWrapper
, cmake
, pkg-config
}:
python311Packages.buildPythonPackage rec {
pname = "opencv-python-headless";
version = "4.9.0.80";
format = "wheel";
version = "4.11.0.86";
format = "setuptools";
src = fetchurl {
url = "https://files.pythonhosted.org/packages/71/19/3c65483a80a1d062d46ae20faf5404712d25cb1dfdcaf371efbd67c38544/opencv_python_headless-4.9.0.80-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
sha256 = "976656362d68d9f40a5c66f83901430538002465f7db59142784f3893918f3df";
src = fetchPypi {
pname = "opencv-python-headless";
inherit version;
format = "setuptools";
sha256 = "mW6ygspLQ+xqOXJBTeDiMx9dnNorQQkaSXOcGfuEN5g=";
};
nativeBuildInputs = with python311Packages; [
cmake
pkg-config
makeWrapper
scikit-build
];
buildInputs = with python311Packages; [
scikit-build
];
propagatedBuildInputs = with python311Packages; [
numpy
setuptools
];
dontUseCmakeConfigure = true;
doCheck = false;
pythonImportsCheck = [ "cv2" ];
postFixup = ''
wrapPythonProgramsIn "$out/lib/python3.11/site-packages" "${stdenv.cc.cc.lib}"
'';
meta = with lib; {
description = "Wrapper package for OpenCV python bindings";
description = "Wrapper package for OpenCV python bindings (headless)";
homepage = "https://github.com/opencv/opencv-python";
license = licenses.mit;
platforms = platforms.linux;

View file

@ -1,39 +1,39 @@
{ lib,
python311Packages,
fetchPypi,
python-pymatting,
python-opencv-headless
{ lib
, python311Packages
, fetchPypi
, python-pymatting
, python-opencv-headless
}:
python311Packages.buildPythonPackage rec {
pname = "rembg";
version = "2.0.50";
format = "pyproject";
src = fetchPypi {
inherit pname version;
hash = "sha256-bMt/GbplRawFZUqoXq37zAq1dribnu/ZlIYTuUIS+DU=";
sha256 = "bMt/GbplRawFZUqoXq37zAq1dribnu/ZlIYTuUIS+DU=";
};
nativeBuildInputs = with python311Packages; [
poetry-core
setuptools
];
propagatedBuildInputs = with python311Packages; [
numpy
onnxruntime
python-opencv-headless
pillow
pooch
python-pymatting
scikit-image
scipy
tqdm
aiohttp
pytorch-bin
] ++ [
python-opencv-headless
python-pymatting
];
pythonRemoveDeps = [ "opencv-python-headless" ];
dontPrecompilePages = true;
doInstallCheck = false;
doCheck = false;
meta = with lib; {
description = "Tool to remove image backgrounds";
homepage = "https://github.com/danielgatis/rembg";