{ 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; lapx = pkgs.python3Packages.buildPythonPackage rec { version = "0.5.11"; pname = "lapx"; pyproject = true; src = pkgs.fetchFromGitHub { owner = "rathaROG"; repo = "lapx"; rev = "be6f998e7cbe8746f75d9743a9de168d3788998f"; hash = "sha256-7TUorvC/h9myQ+ZMOPABfqXx4D0mKYB1meszhpIeWWs="; fetchSubmodules = true; }; propagatedBuildInputs = [ pythonPackages.numpy pythonPackages.cython ]; nativeBuildInputs = [ pythonPackages.setuptools pythonPackages.setuptools-scm pythonPackages.cython ]; 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/rathaROG/lapx"; license = pkgs.lib.licenses.mit; maintainers = with maintainers; [ ]; }; }; 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 { version = "8.3.13"; pname = "ultralytics"; pyproject = true; src = pkgs.fetchFromGitHub { owner = "ultralytics"; repo = "ultralytics"; rev = "15e6133534d82ec6845308f1e258d77c1b9bab36"; hash = "sha256-Wq2pCD0l0AbdQ2IPfEfxPffSxgv/5qFadB4BHAExEbU="; fetchSubmodules = true; }; # doCheck = false; propagatedBuildInputs = [ pythonPackages.requests pythonPackages.pyyaml pythonPackages.torch pythonPackages.tqdm pythonPackages.psutil pythonPackages.torchvision pythonPackages.pandas pythonPackages.matplotlib pythonPackages.seaborn pythonPackages.py-cpuinfo pythonPackages.opencv4 ultralytics-thop ]; pythonRelaxDeps = [ "torchvision" ]; pythonRemoveDeps = [ "opencv-python" ]; nativeBuildInputs = [ pythonPackages.setuptools pythonPackages.setuptools-scm pythonPackages.pip ]; # nativeCheckInputs = [ ]; meta = with pkgs.lib; { description = '' Ultralytics YOLO for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification. ''; homepage = "https://github.com/ultralytics/ultralytics"; license = pkgs.lib.licenses.mit; maintainers = with maintainers; [ ]; }; }; env = pkgs.python312.withPackages (ps: [ lapx ]); in { packages = { default = pkgs.python312Packages.path; env = env; }; devShells.default = pkgs.mkShell { buildInputs = [ env ]; }; }); }