diff --git a/pkgs/development/python-modules/fastcan/default.nix b/pkgs/development/python-modules/fastcan/default.nix new file mode 100644 index 000000000000..72fead1ef8af --- /dev/null +++ b/pkgs/development/python-modules/fastcan/default.nix @@ -0,0 +1,64 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + cython, + meson-python, + numpy, + setuptools, + + # nativeBuildInputs + pkg-config, + + # dependencies + scikit-learn, + + # tests + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "fastcan"; + version = "0.5.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "scikit-learn-contrib"; + repo = "fastcan"; + tag = "v${version}"; + hash = "sha256-1ncdzBMJYEwTkpLXS64g+SaEbsiYslX7zN4xbGjUsAA="; + }; + + build-system = [ + cython + meson-python + numpy + setuptools + ]; + + nativeBuildInputs = [ pkg-config ]; + + dependencies = [ scikit-learn ]; + + # Prevent pytest from importing the required python modules from the source instead of $out + preCheck = '' + rm -f fastcan/__init__.py + echo "" > fastcan/narx/__init__.py + ''; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "fastcan" ]; + + meta = { + description = "Library for fast canonical-correlation-based search algorithm"; + homepage = "https://github.com/scikit-learn-contrib/fastcan"; + changelog = "https://github.com/scikit-learn-contrib/fastcan/releases/tag/${src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ daspk04 ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e1564a7a7234..e45622952ab8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5236,6 +5236,8 @@ self: super: with self; { fastcache = callPackage ../development/python-modules/fastcache { }; + fastcan = callPackage ../development/python-modules/fastcan { }; + fastcore = callPackage ../development/python-modules/fastcore { }; fastcrc = callPackage ../development/python-modules/fastcrc { };