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

View file

@ -1,13 +1,21 @@
{ { config, pkgs, lib, ... }:
config, let
pkgs,
lib,
...
}: let
customPkgs = import ../pkgs { inherit pkgs lib; }; customPkgs = import ../pkgs { inherit pkgs lib; };
in { in {
imports = [
../modules/python.nix
];
python.enable = true;
environment.systemPackages = with pkgs; [ 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 brave # TODO: make a module to save browser stuff
vesktop vesktop
git git
@ -89,4 +97,7 @@ in {
nodePackages.pnpm nodePackages.pnpm
zlib.dev zlib.dev
]; ];
environment.shellAliases = {
python = "python3.11";
};
} }

View file

@ -1,49 +1,49 @@
{ { config, pkgs, lib, ... }:
config,
pkgs,
lib,
...
}:
let
customPkgs = import ../pkgs { inherit pkgs lib; };
in {
options.custom.python = {
enable = lib.mkEnableOption "System Python Env";
};
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; [ environment.systemPackages = with pkgs; [
(python311.withPackages (ps: with ps; [ (python311.withPackages (pyPkgs: with pyPkgs; [
virtualenv numpy
(torch.override { cudaSupport = true; }) python-pymatting
torchvision python-opencv-headless
torchaudio python-rembg
ipython
i3ipc i3ipc
xlib pandas
matplotlib
scipy
requests
pip
virtualenv
ipython
six six
psutil psutil
pynvml pynvml
pyqtgraph pyqtgraph
pyqt6 pyqt6
numpy
pandas
matplotlib
scipy
requests
click click
typer typer
rich rich
pyyaml pyyaml
pytz pytz
onnxruntime
pillow pillow
timm ]))
] ++ [ customPkgs.python-rembg ]))
python3Packages.pip python3Packages.pip
uv
ruff
black 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> {}, pkgs ? import <nixpkgs> {},
lib ? pkgs.lib, 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 {}; fish-rust = pkgs.callPackage ./fish-rust {};
python-pymatting = python-pymatting; python-pymatting = pkgs.callPackage ./python-pymatting {
python-opencv-headless = python-opencv-headless; inherit lib;
python-rembg = python-rembg; 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 { 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 { python311Packages.buildPythonPackage rec {
pname = "opencv-python-headless"; pname = "opencv-python-headless";
version = "4.9.0.80"; version = "4.11.0.86";
format = "wheel"; format = "setuptools";
src = fetchurl { src = fetchPypi {
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"; pname = "opencv-python-headless";
sha256 = "976656362d68d9f40a5c66f83901430538002465f7db59142784f3893918f3df"; inherit version;
format = "setuptools";
sha256 = "mW6ygspLQ+xqOXJBTeDiMx9dnNorQQkaSXOcGfuEN5g=";
}; };
nativeBuildInputs = with python311Packages; [
cmake
pkg-config
makeWrapper
scikit-build
];
buildInputs = with python311Packages; [
scikit-build
];
propagatedBuildInputs = with python311Packages; [ propagatedBuildInputs = with python311Packages; [
numpy numpy
setuptools
]; ];
dontUseCmakeConfigure = true;
doCheck = false; doCheck = false;
pythonImportsCheck = [ "cv2" ];
postFixup = ''
wrapPythonProgramsIn "$out/lib/python3.11/site-packages" "${stdenv.cc.cc.lib}"
'';
meta = with 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"; homepage = "https://github.com/opencv/opencv-python";
license = licenses.mit; license = licenses.mit;
platforms = platforms.linux; platforms = platforms.linux;

View file

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