From 72156eb50adf4641f9eac8df96dab620cc7d55a5 Mon Sep 17 00:00:00 2001 From: didier amyot Date: Mon, 14 Oct 2024 14:15:40 -0400 Subject: [PATCH] Added a functional ultralytics-thop --- flake.nix | 95 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 72 insertions(+), 23 deletions(-) diff --git a/flake.nix b/flake.nix index 9cb2c39..d9bece6 100644 --- a/flake.nix +++ b/flake.nix @@ -10,36 +10,82 @@ let pkgs = nixpkgs.legacyPackages.${system}; pythonPackages = pkgs.python312Packages; - python-path = pkgs.python3Packages.buildPythonPackage rec { - # pname = "opencv-python"; - # version = "4.10.0.84"; - - version = "16.14.0"; - pname = "path"; - + ultralytics-thop = pkgs.python3Packages.buildPythonPackage rec { + version = "2.0.9"; + pname = "ultralytics-htop"; pyproject = true; - - # disabled = pythonOlder "3.7"; - - src = pkgs.python3Packages.fetchPypi { - inherit pname version; - hash = "sha256-26qn79RgL9a6jYKJDceCPWnl3nQKboQtmRmw+q8rao4="; - # hash = ""; + 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; [ ]; + }; + }; + + python-path = 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 + + ]; + + 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" - ]; + # disabledTests = [ + # # creates a file, checks when it was last accessed/modified + # # AssertionError: assert 1650036414.0 == 1650036414.960688 + # # "test_utime" + # ]; - pythonImportsCheck = [ "path" ]; + # pythonImportsCheck = [ "cv2" ]; meta = with pkgs.lib; { description = "Object-oriented file system path manipulation"; @@ -51,10 +97,13 @@ }; }; - env = pkgs.python312.withPackages (ps: [ python-path ]); + env = pkgs.python312.withPackages (ps: [ ultralytics-thop ]); in { - packages = { default = pkgs.python312Packages.path; }; - devShells.default = pkgs.mkShell { buildInputs = with pkgs; [ env ]; }; + packages = { + default = pkgs.python312Packages.path; + env = env; + }; + devShells.default = pkgs.mkShell { buildInputs = [ env ]; }; }); }