diff --git a/pkgs/development/python-modules/hoptorch/default.nix b/pkgs/development/python-modules/hoptorch/default.nix new file mode 100644 index 000000000000..791367818bd8 --- /dev/null +++ b/pkgs/development/python-modules/hoptorch/default.nix @@ -0,0 +1,59 @@ +{ + lib, + stdenv, + buildPythonPackage, + fetchFromGitHub, + + # tests + setuptools, + + # dependencies + pyvers, + torch, + + # tests + llvmPackages, + pytestCheckHook, +}: + +buildPythonPackage (finalAttrs: { + pname = "hoptorch"; + version = "0.1.4"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "vmoens"; + repo = "hoptorch"; + tag = "v${finalAttrs.version}"; + hash = "sha256-rhX81MidgltQ2YQtUdYoK1Qtz7N7x9MpZIKDlZzN+vg="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + pyvers + torch + ]; + + pythonImportsCheck = [ "hoptorch" ]; + + checkInputs = lib.optionals stdenv.hostPlatform.isDarwin [ + # torch._inductor.exc.InductorError: CppCompileError: C++ compile error + # fatal error: 'omp.h' file not found + llvmPackages.openmp + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + meta = { + description = "Small compatibility package for PyTorch higher-order operators"; + homepage = "https://github.com/vmoens/hoptorch"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ GaetanLepage ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 89ca0b58fe5f..ce58f80c218c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7253,6 +7253,8 @@ self: super: with self; { hopcroftkarp = callPackage ../development/python-modules/hopcroftkarp { }; + hoptorch = callPackage ../development/python-modules/hoptorch { }; + horimote = callPackage ../development/python-modules/horimote { }; horizon-eda = callPackage ../development/python-modules/horizon-eda { inherit (pkgs) horizon-eda; };