112 lines
3.7 KiB
Nix
112 lines
3.7 KiB
Nix
{
|
|
description = "Pre-built CPU-only OpenCV packages for Python. ";
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, flake-utils }:
|
|
flake-utils.lib.eachDefaultSystem (system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
pythonPackages = pkgs.python312Packages;
|
|
ultralytics-thop = pkgs.python3Packages.buildPythonPackage rec {
|
|
version = "2.0.9";
|
|
pname = "ultralytics-htop";
|
|
pyproject = true;
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "ultralytics";
|
|
repo = "thop";
|
|
rev = "d304cebcc81f65a7b0d4304290f2abb100407ec0";
|
|
hash = "sha256-FzjxEk6yiG+IWwQEzsHcEAB4iVQT1QsyoGlG4I9lSwU=";
|
|
fetchSubmodules = true;
|
|
};
|
|
|
|
propagatedBuildInputs = [ pythonPackages.numpy pythonPackages.torch ];
|
|
|
|
nativeBuildInputs =
|
|
[ pythonPackages.setuptools pythonPackages.setuptools-scm ];
|
|
|
|
meta = with pkgs.lib; {
|
|
description = ''
|
|
THOP offers an intuitive API to profile PyTorch models
|
|
by calculating the number of MACs and parameters. This
|
|
functionality is crucial for assessing the computational
|
|
efficiency and memory footprint of deep learning models.
|
|
'';
|
|
homepage = "https://github.com/ultralytics/thop";
|
|
license = pkgs.lib.licenses.mit;
|
|
maintainers = with maintainers; [ ];
|
|
};
|
|
};
|
|
|
|
ultralytics = pkgs.python3Packages.buildPythonPackage rec {
|
|
# pname = "opencv-python";
|
|
# version = "4.10.0.84";
|
|
|
|
version = "8.3.13";
|
|
pname = "ultralytics";
|
|
pyproject = true;
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "ultralytics";
|
|
repo = "ultralytics";
|
|
rev = "15e6133534d82ec6845308f1e258d77c1b9bab36";
|
|
hash = "sha256-Wq2pCD0l0AbdQ2IPfEfxPffSxgv/5qFadB4BHAExEbU=";
|
|
fetchSubmodules = true;
|
|
};
|
|
|
|
propagatedBuildInputs = [
|
|
pythonPackages.requests
|
|
pythonPackages.pyyaml
|
|
pythonPackages.torch
|
|
pythonPackages.tqdm
|
|
pythonPackages.psutil
|
|
pythonPackages.torchvision
|
|
pythonPackages.pandas
|
|
pythonPackages.matplotlib
|
|
pythonPackages.seaborn
|
|
ultralytics-thop
|
|
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
pythonPackages.setuptools
|
|
pythonPackages.setuptools-scm
|
|
pythonPackages.pip
|
|
# pythonPackages.scikit-build
|
|
# pythonPackages.numpy_2
|
|
# pythonPackages.cmake
|
|
];
|
|
|
|
nativeCheckInputs =
|
|
[ pythonPackages.more-itertools pythonPackages.pytestCheckHook ];
|
|
|
|
# disabledTests = [
|
|
# # creates a file, checks when it was last accessed/modified
|
|
# # AssertionError: assert 1650036414.0 == 1650036414.960688
|
|
# # "test_utime"
|
|
# ];
|
|
|
|
# pythonImportsCheck = [ "cv2" ];
|
|
|
|
meta = with pkgs.lib; {
|
|
description = "Object-oriented file system path manipulation";
|
|
homepage = "https://github.com/jaraco/path";
|
|
changelog =
|
|
"https://github.com/jaraco/path/blob/v${version}/NEWS.rst";
|
|
license = pkgs.lib.licenses.mit;
|
|
maintainers = with maintainers; [ ];
|
|
};
|
|
};
|
|
|
|
env = pkgs.python312.withPackages (ps: [ ultralytics ]);
|
|
|
|
in {
|
|
packages = {
|
|
default = pkgs.python312Packages.path;
|
|
env = env;
|
|
};
|
|
devShells.default = pkgs.mkShell { buildInputs = [ env ]; };
|
|
});
|
|
}
|