diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f414a41..393a456 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,7 +37,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [3.9, "3.10", 3.11, 3.12] + python-version: [3.11, 3.12, 3.13] os: [ubuntu-latest, macos-latest, macos-13, windows-latest] steps: diff --git a/bioio/writers/ome_zarr_writer_2.py b/bioio/writers/ome_zarr_writer_2.py index 4916e4f..4087ca4 100644 --- a/bioio/writers/ome_zarr_writer_2.py +++ b/bioio/writers/ome_zarr_writer_2.py @@ -1,5 +1,5 @@ import logging -from dataclasses import asdict, dataclass +from dataclasses import dataclass from math import prod from typing import Any, List, Tuple, Union @@ -8,7 +8,12 @@ import numpy as np import skimage.transform import zarr -from ngff_zarr.zarr_metadata import Axis, Dataset, Metadata, Scale, Translation +from ome_zarr_models.v04.axes import Axis +from ome_zarr_models.v04.coordinate_transformations import ( + VectorScale, + VectorTranslation, +) +from ome_zarr_models.v04.multiscales import Dataset, Multiscale from zarr.storage import DirectoryStore, FSStore, default_compressor from bioio import BioImage @@ -646,19 +651,23 @@ def generate_metadata( # TODO handle optional translations e.g. xy stage position, # start time etc translation.append(0.0) - coordinateTransformations = [Scale(scale), Translation(translation)] + coordinateTransformations = ( + VectorScale(type="scale", scale=scale), + VectorTranslation(type="translation", translation=translation), + ) dataset = Dataset( path=path, coordinateTransformations=coordinateTransformations ) datasets.append(dataset) - metadata = Metadata( + metadata = Multiscale( + version=OME_NGFF_VERSION, axes=axes, datasets=datasets, name="/", coordinateTransformations=None, ) - metadata_dict = asdict(metadata) + metadata_dict = metadata.model_dump() metadata_dict = _pop_metadata_optionals(metadata_dict) # get the total shape as dict: diff --git a/pyproject.toml b/pyproject.toml index 5c19d4c..37d34fa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,9 +22,9 @@ authors = [ classifiers = [ "Development Status :: 4 - Beta", "Natural Language :: English", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", ] dynamic = ["version"] dependencies = [ @@ -32,10 +32,10 @@ dependencies = [ "dask[array]>=2021.4.1", "fsspec>=2022.8.0", "imageio[ffmpeg]>=2.11.0,<2.28.0", - "ngff-zarr>=0.8.2", "numpy>=1.21.0,<2.0.0", "ome-types[lxml]>=0.4.0", "ome-zarr>=0.6.1", + "ome-zarr-models>=0.1.1", # This version was revoked from PyPi, but in case of using a stale version # or a private package index, this will prevent usage "scikit-image!=0.23.0",