diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 55a3d7496ee4..25fc6ed7a114 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -5619,6 +5619,11 @@ githubId = 5953003; name = "Connor Nelson"; }; + conny = { + github = "ConstantConstantin"; + githubId = 162139822; + name = "Constantin-Paul Hertel"; + }; conradmearns = { email = "conradmearns+github@pm.me"; github = "ConradMearns"; diff --git a/pkgs/development/python-modules/derivative/default.nix b/pkgs/development/python-modules/derivative/default.nix new file mode 100644 index 000000000000..9079b9aeda13 --- /dev/null +++ b/pkgs/development/python-modules/derivative/default.nix @@ -0,0 +1,50 @@ +{ + lib, + fetchFromGitHub, + buildPythonPackage, + + # build-system + poetry-core, + + # dependencies + numpy, + scipy, + scikit-learn, + spectral-derivatives, + importlib-metadata, + + # tests + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "derivative"; + version = "0.6.3"; + pyproject = true; + + src = fetchFromGitHub { + owner = "andgoldschmidt"; + repo = "derivative"; + tag = "v${version}"; + hash = "sha256-vsN1zlD9x0CEOtRIwr/DrtkV+OjiyrI8QL9Z8pB3wrY="; + }; + + build-system = [ poetry-core ]; + + dependencies = [ + numpy + scipy + scikit-learn + spectral-derivatives + importlib-metadata + ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + meta = { + description = "Numerical differentiation of noisy time series data"; + license = lib.licenses.mit; + homepage = "https://derivative.readthedocs.io/en/latest/"; + maintainers = with lib.maintainers; [ conny ]; + }; +} diff --git a/pkgs/development/python-modules/pysindy/default.nix b/pkgs/development/python-modules/pysindy/default.nix new file mode 100644 index 000000000000..f038e83eff94 --- /dev/null +++ b/pkgs/development/python-modules/pysindy/default.nix @@ -0,0 +1,52 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + + # build-system + setuptools, + setuptools-scm, + + # dependencies + scikit-learn, + numpy, + derivative, + scipy, + typing-extensions, +}: + +buildPythonPackage rec { + pname = "pysindy"; + version = "2.1.0"; + pyproject = true; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-NpZZ22MucuZwtkz9ef08C578jjo28MNfTxG4ROhjuwg="; + }; + + build-system = [ + setuptools + setuptools-scm + ]; + + dependencies = [ + scikit-learn + numpy + derivative + scipy + typing-extensions + ]; + + # Tests require optional dependencies like jax + doCheck = false; + + pythonImportsCheck = [ "pysindy" ]; + + meta = { + description = "Sparse identification of nonlinear dynamical systems"; + license = lib.licenses.mit; + homepage = "https://pysindy.readthedocs.io/en/latest/"; + maintainers = with lib.maintainers; [ conny ]; + }; +} diff --git a/pkgs/development/python-modules/spectral-derivatives/default.nix b/pkgs/development/python-modules/spectral-derivatives/default.nix new file mode 100644 index 000000000000..c29fa4892db4 --- /dev/null +++ b/pkgs/development/python-modules/spectral-derivatives/default.nix @@ -0,0 +1,48 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + numpy, + scipy, + matplotlib, + + # tests + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "spectral_derivatives"; + version = "0.10"; + pyproject = true; + + src = fetchFromGitHub { + owner = "pavelkomarov"; + repo = "spectral-derivatives"; + tag = "v${version}"; + hash = "sha256-KSx3aW2DgVr1nhtGqIO85s6c5p+1rjnrpMY4e63LLiE="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + numpy + scipy + matplotlib + ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + pythonImportsCheck = [ "specderiv" ]; + + meta = { + description = "Derivatives by spectral methods"; + license = lib.licenses.bsd3; + homepage = "https://pavelkomarov.com/spectral-derivatives/specderiv.html"; + maintainers = with lib.maintainers; [ conny ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ff667c498a02..86dca254f1ed 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4255,6 +4255,8 @@ self: super: with self; { depyf = callPackage ../development/python-modules/depyf { }; + derivative = callPackage ../development/python-modules/derivative { }; + derpconf = callPackage ../development/python-modules/derpconf { }; desktop-entry-lib = callPackage ../development/python-modules/desktop-entry-lib { }; @@ -15835,6 +15837,8 @@ self: super: with self; { pysimplesoap = callPackage ../development/python-modules/pysimplesoap { }; + pysindy = callPackage ../development/python-modules/pysindy { }; + pysingleton = callPackage ../development/python-modules/pysingleton { }; pyskyqhub = callPackage ../development/python-modules/pyskyqhub { }; @@ -19046,6 +19050,8 @@ self: super: with self; { spectral-cube = callPackage ../development/python-modules/spectral-cube { }; + spectral-derivatives = callPackage ../development/python-modules/spectral-derivatives { }; + speechbrain = callPackage ../development/python-modules/speechbrain { }; speechrecognition = callPackage ../development/python-modules/speechrecognition { };