Skip to content

WIP: Introduce scene class#583

Draft
jo-mueller wants to merge 145 commits into
ome:masterfrom
jo-mueller:introduce-scene-class
Draft

WIP: Introduce scene class#583
jo-mueller wants to merge 145 commits into
ome:masterfrom
jo-mueller:introduce-scene-class

Conversation

@jo-mueller

@jo-mueller jo-mueller commented May 18, 2026

Copy link
Copy Markdown
Collaborator

Based on #515

This is a first stab at an ome-zarr-py implementation of the scene metadata/layout that will be part of 0.6. It follows closely and builds upon the design principles of the NgffMultiscales class that's introduced in #515 and mirrors the design of the NgffHCSPlate I propose in #570

TODOs:

  • Add tests
  • Add documentation on how to update/append scenes
  • Keep track internally of underlying graph structures, i.e. in an nx.DiGraph instance?

feat: added reader
feat: pass labels to multiscales writer function
fix: do not use v06 yet
test: add testcases for class-based writer
fix: pass name to multiscales class

feat: add reading/writing

fix: do not use v06 yet

test: add testcases for class-based writer

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

refactor: write scales to zarr group scale<idx>

add image class

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

remove unused ABC

fix multiscale creation

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

use dask utils for rescaling

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

more general input coercion

ensure `scaleX` naming for levels

rely on refactoring changes for pyramid creation & write

raise validation error of ndims != data shape

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

docstring

pass storage options on to writer function

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

move down group check

improve metadata handling

change multiscale path formatting

split into two different classes

compute shapes off actual shapes rather than ideal factors

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

use ome-zarr-models-py v06

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

add version to export args

correct naming in docstring

code style

remove dead code

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

add docstrings

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

use CoordinateSystem and Axis from ozmp and pop empty fields

pass name to multiscales class

correct arg passage

Create scene.py

add support for passing additional transformations through class interface

add reading/writing

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

remove class conversion methods

add fallback for scales

remove v06 objects

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Delete scene.py

fix: make precommit happy

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

fix: typesafety

fix: no self-conversion

test: add testcases for class-based writer

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

refactor: write scales to zarr group scale<idx>

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

refactor: write scales to zarr group scale<idx>

pass name to multiscales class

correct arg passage

Create scene.py

add support for passing additional transformations through class interface

add reading/writing

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

remove class conversion methods

add fallback for scales

remove v06 objects

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Delete scene.py

fix: make precommit happy

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

fix: typesafety

fix: no self-conversion

test: add testcases for class-based writer

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

refactor: write scales to zarr group scale<idx>

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
fix: remove 0.6 conversion from reader
tests: fix tests

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

fix: accept storage options and scale_factors as list[dicts]
[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

tests: fix typo

tests: calculate expected shape correctly from array shapes

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
deps: add ome-zarr-models-py (latest) to dependencies
fix: write label group metadata correctly

fix: use correct scale folder convention
tests: remove reference to v06 coordinate systems

tests: removed call to v06 coordinate systems

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

fix: make version detector robust for 0.4 metadata

tests: add writing labels to tests
feat: add labels as class attribute
[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

chore: cast to safe type

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

feat: return delayed objects

tests: add tests for ingestion of image and data reading

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

refactor: use image classes under the hood

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
chore: typo

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

chore: fix header levels

chore: fix mutable default values in writers

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

chore: make default immutable

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

chore: make sure loaded image has a name that's not None

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

fix: make type-safe

feat: add `scale` argument to entrypoints

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

chore: remove unused variable

tests: add test for writing scale w/o coordinate transformations

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

chore: remove unused variable
[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

chore: update codespell github action

enh: use built-in writer method, not private

enh: pass some missing metadata

enh: do not delay writing metadata

enh: pass scale and units to writer

tests: fix passed and tested scales

enh: type cast

chore: remove unused variable

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

chore: remove unused variable

chore: remove redundant error flag

feat: add `axes_units` kwarg to entrypoints

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
enh: add correct translation transforms for legacy reader

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

docs: Update docstrings

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

fix: fix docstring

chore: Catch more specific errors

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

fix: safer type casting

fix: fix type-declarations

enh: support image-label metadata
refactor: fix import

refactor: Move image classes into submodule
[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

chore: remove unnnecessary __main__ in test

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

chore: pre-commit fixes

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

tests: fix import

tests: add reader tests for new classes

tests: fix typo
[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
chore: typo

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

chore: fix header levels

chore: fix mutable default values in writers

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
pre-commit-ci Bot and others added 29 commits May 26, 2026 08:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant