diff --git a/pkgs/development/python-modules/fast-array-utils/default.nix b/pkgs/development/python-modules/fast-array-utils/default.nix new file mode 100644 index 000000000000..fb541592bcdc --- /dev/null +++ b/pkgs/development/python-modules/fast-array-utils/default.nix @@ -0,0 +1,70 @@ +{ + buildPythonPackage, + dask, + fetchFromGitHub, + hatch-docstring-description, + hatch-fancy-pypi-readme, + hatch-min-requirements, + hatch-vcs, + hatchling, + lib, + numba, + numpy, + pytest-codspeed, + pytest-doctestplus, + pytestCheckHook, + scipy, +}: + +buildPythonPackage rec { + pname = "fast-array-utils"; + version = "1.2.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "scverse"; + repo = "fast-array-utils"; + tag = "v${version}"; + hash = "sha256-SQaumXgjFn2+/MqllEs0zRnl2t7m2JZyOd+39vZPU2U="; + }; + + # hatch-min-requirements tries to talk to PyPI by default. See https://github.com/tlambert03/hatch-min-requirements?tab=readme-ov-file#environment-variables. + env.MIN_REQS_OFFLINE = "1"; + + build-system = [ + hatch-docstring-description + hatch-fancy-pypi-readme + hatch-min-requirements + hatch-vcs + hatchling + ]; + + dependencies = [ + numpy + ]; + + nativeCheckInputs = [ + dask + numba + pytest-codspeed + pytest-doctestplus + pytestCheckHook + scipy + ]; + + pythonImportsCheck = [ + "fast_array_utils.conv" + "fast_array_utils.types" + "fast_array_utils.typing" + "fast_array_utils" + ]; + + meta = { + description = "Fast array utilities"; + homepage = "https://icb-fast-array-utils.readthedocs-hosted.com"; + license = lib.licenses.mpl20; + maintainers = with lib.maintainers; [ + samuela + ]; + }; +} diff --git a/pkgs/development/python-modules/hatch-docstring-description/default.nix b/pkgs/development/python-modules/hatch-docstring-description/default.nix new file mode 100644 index 000000000000..b591db9cd797 --- /dev/null +++ b/pkgs/development/python-modules/hatch-docstring-description/default.nix @@ -0,0 +1,45 @@ +{ + buildPythonPackage, + fetchFromGitHub, + hatch-vcs, + hatchling, + lib, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "hatch-docstring-description"; + version = "1.1.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "flying-sheep"; + repo = "hatch-docstring-description"; + tag = "v${version}"; + hash = "sha256-ouor0FV3qdXYJx5EWFUWSKp8Cc/EuD1WXrtLvbYG+XI="; + }; + + build-system = [ + hatchling + hatch-vcs + ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + disabledTests = [ + # See https://github.com/flying-sheep/hatch-docstring-description/issues/107 + "test_e2e[.]" + "test_e2e[src]" + ]; + + pythonImportsCheck = [ "hatch_docstring_description" ]; + + meta = { + description = "Derive PyPI package description from Python package docstring"; + homepage = "https://github.com/flying-sheep/hatch-docstring-description"; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ + samuela + ]; + }; +} diff --git a/pkgs/development/python-modules/hatch-min-requirements/default.nix b/pkgs/development/python-modules/hatch-min-requirements/default.nix new file mode 100644 index 000000000000..57a4d3dcb248 --- /dev/null +++ b/pkgs/development/python-modules/hatch-min-requirements/default.nix @@ -0,0 +1,39 @@ +{ + buildPythonPackage, + fetchFromGitHub, + hatch-vcs, + hatchling, + lib, +}: + +buildPythonPackage rec { + pname = "hatch-min-requirements"; + version = "0.1.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "tlambert03"; + repo = "hatch-min-requirements"; + tag = "v${version}"; + hash = "sha256-7/6Es0DHDJ8jZ76kVbWkQjWFd8hWuB+PwCbOmIjzK5o="; + }; + + build-system = [ + hatchling + hatch-vcs + ]; + + # As of v0.1.0 all tests attempt to use the network + doCheck = false; + + pythonImportsCheck = [ "hatch_min_requirements" ]; + + meta = { + description = "Hatchling plugin to create optional-dependencies pinned to minimum versions"; + homepage = "https://github.com/tlambert03/hatch-min-requirements"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ + samuela + ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 664feea111d7..99bd48ff7e05 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4884,6 +4884,8 @@ self: super: with self; { farama-notifications = callPackage ../development/python-modules/farama-notifications { }; + fast-array-utils = callPackage ../development/python-modules/fast-array-utils { }; + fast-histogram = callPackage ../development/python-modules/fast-histogram { }; fastai = callPackage ../development/python-modules/fastai { }; @@ -6359,10 +6361,16 @@ self: super: with self; { hatch-babel = callPackage ../development/python-modules/hatch-babel { }; + hatch-docstring-description = + callPackage ../development/python-modules/hatch-docstring-description + { }; + hatch-fancy-pypi-readme = callPackage ../development/python-modules/hatch-fancy-pypi-readme { }; hatch-jupyter-builder = callPackage ../development/python-modules/hatch-jupyter-builder { }; + hatch-min-requirements = callPackage ../development/python-modules/hatch-min-requirements { }; + hatch-nodejs-version = callPackage ../development/python-modules/hatch-nodejs-version { }; hatch-odoo = callPackage ../development/python-modules/hatch-odoo { };