diff --git a/pkgs/development/python-modules/multiscale-spatial-image/default.nix b/pkgs/development/python-modules/multiscale-spatial-image/default.nix new file mode 100644 index 000000000000..41b4a720fc50 --- /dev/null +++ b/pkgs/development/python-modules/multiscale-spatial-image/default.nix @@ -0,0 +1,81 @@ +{ + lib, + buildPythonPackage, + pythonOlder, + fetchFromGitHub, + hatchling, + dask, + numpy, + python-dateutil, + spatial-image, + xarray, + xarray-datatree, + zarr, + dask-image, + fsspec, + jsonschema, + nbmake, + pooch, + pytestCheckHook, + pytest-mypy, + urllib3, +}: + +buildPythonPackage rec { + pname = "multiscale-spatial-image"; + version = "1.0.1"; + pyproject = true; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "spatial-image"; + repo = "multiscale-spatial-image"; + rev = "refs/tags/v${version}"; + hash = "sha256-s/88N8IVkj+9MZYAtEJSpmmDdjIxf4S6U5gYr86Ikrw="; + }; + + build-system = [ hatchling ]; + + dependencies = [ + dask + numpy + python-dateutil + spatial-image + xarray + xarray-datatree + zarr + ]; + + optional-dependencies = { + dask-image = [ dask-image ]; + #itk = [ + # itk-filtering # not in nixpkgs yet + #]; + test = [ + dask-image + fsspec + #ipfsspec # not in nixpkgs + #itk-filtering # not in nixpkgs + jsonschema + nbmake + pooch + pytest-mypy + urllib3 + ]; + }; + + nativeCheckInputs = [ pytestCheckHook ] ++ optional-dependencies.test; + + doCheck = false; # all test files try to download data + + pythonImportsCheck = [ "multiscale_spatial_image" ]; + + meta = { + description = "Generate a multiscale, chunked, multi-dimensional spatial image data structure that can serialized to OME-NGFF"; + homepage = "https://github.com/spatial-image/multiscale-spatial-image"; + changelog = "https://github.com/spatial-image/multiscale-spatial-image/releases/tag/v${version}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ bcdarwin ]; + }; +} diff --git a/pkgs/development/python-modules/xarray-datatree/default.nix b/pkgs/development/python-modules/xarray-datatree/default.nix new file mode 100644 index 000000000000..1d99f300cb7b --- /dev/null +++ b/pkgs/development/python-modules/xarray-datatree/default.nix @@ -0,0 +1,59 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pythonOlder, + check-manifest, + setuptools, + setuptools-scm, + packaging, + pytestCheckHook, + xarray, + zarr, +}: + +buildPythonPackage rec { + pname = "datatree"; + version = "0.0.14"; + pyproject = true; + + disabled = pythonOlder "3.9"; + + src = fetchFromGitHub { + owner = "xarray-contrib"; + repo = "datatree"; + rev = "refs/tags/v${version}"; + hash = "sha256-C6+WcHc2+sftJ5Yyh/9TTIHhAEwhAqSsSkaDwtq7J90="; + }; + + build-system = [ + check-manifest + setuptools + setuptools-scm + ]; + + dependencies = [ + packaging + xarray + ]; + + nativeCheckInputs = [ + pytestCheckHook + zarr + ]; + + pythonImportsCheck = [ "datatree" ]; + + disabledTests = [ + # output formatting issue, likely due to underlying library version difference: + "test_diff_node_data" + ]; + + meta = with lib; { + description = "Tree-like hierarchical data structure for xarray"; + homepage = "https://xarray-datatree.readthedocs.io"; + changelog = "https://github.com/xarray-contrib/datatree/releases/tag/v${version}"; + license = licenses.asl20; + maintainers = with maintainers; [ bcdarwin ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 70296979cddc..e77bc2cd5e6c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8017,6 +8017,8 @@ self: super: with self; { multiprocess = callPackage ../development/python-modules/multiprocess { }; + multiscale-spatial-image = callPackage ../development/python-modules/multiscale-spatial-image { }; + multiset = callPackage ../development/python-modules/multiset { }; multitasking = callPackage ../development/python-modules/multitasking { }; @@ -17434,6 +17436,8 @@ self: super: with self; { xarray-dataclasses = callPackage ../development/python-modules/xarray-dataclasses { }; + xarray-datatree = callPackage ../development/python-modules/xarray-datatree { }; + xarray-einstats = callPackage ../development/python-modules/xarray-einstats { }; xattr = callPackage ../development/python-modules/xattr { };