Skip to content

Rfc5 version converter#399

Open
jo-mueller wants to merge 67 commits intoome-zarr-models:rfc5from
jo-mueller:rfc5
Open

Rfc5 version converter#399
jo-mueller wants to merge 67 commits intoome-zarr-models:rfc5from
jo-mueller:rfc5

Conversation

@jo-mueller
Copy link
Copy Markdown
Contributor

Follow-up for #398 for 0.6 metadata

dstansby and others added 30 commits February 11, 2026 14:19
* add test data from ngff

* remove config

* readme test data

* correct naming

* add note readme test data rfc5

* rename

* add initial models

* add model validator

* parse Identity

Co-authored-by: m.lucalmer@gmail.com

* parse Identity

Co-authored-by: m.lucalmer@gmail.com

* move coordinate systems

Co-authored-by: m.lucalmer@gmail.com

* check input output in cs names

* improve coordinate system validation; add more examples from ngff

* wip towards a first full example with the new specs

* added code skeleton

* add rfc5 image test

* add tests (skipped) for example data

* wip add tests placeholder for zarr

* add skipped tests for all data files; test_image() now creates a Zarr group

* add new user stories examples

* fix precommit

* remove SpatialMapper

* add pyperclip test dependency

* allow test run on windows os

* wip test ensure_scale_translation

* avoid pytest not recognizing pydantic core ValidationError

* fix validation tests, removed pyperclip, restored old pytest.raises

* finished multiscale validators

* using submodule for new data from John

* remove old data form repo; add sparse checkout submodule

* fix submodule

* fixed paths

* new sparse checkout instructions

* updated git sparse checkout instructions

* added link to rfc5 data readme in docs

* update submodule; add validation axes dims; pytest.raises with match

* fix tests dimensionality datasets

* add test ensure ordered scales

* improve README for data download; fix small issues

* run pre-commit

* fix pre-commit

* fix pre-commit

* fix pre-commit

* change tuple to list in Sequence

* remove discriminator for CoordinateTransformationType

* better comment class inside before validator

* add ABC to CoordinateTransformation; fix types tuple -> list; add validation input-output for CoordinateTransformation; add test for mismatching scale+translation in Dataset

* add comment for test

* simplified validators (comments from David)

* Apply suggestions from code review

Co-authored-by: David Stansby <dstansby@gmail.com>

* fix typo in code review suggestions

* wip fix tests

* fix tests

* fix docs; restore type ignore

* fix docs

* addressed most review comments

* Fix mypy

* Checkout submodules in tests

* Remove .gitmodules

* Skip RFC5 tests for now

* Migrate RFC5 work to v06

* Strip out external tests

* Remove gitignore update

* Add comment about non-empty name validation

* Use Axis instead of Axes

* Use tuples instead of floats

---------

Co-authored-by: Wouter-Michiel Vierdag <michiel.vierdag@embl.de>
Co-authored-by: Luca Marconato <m.lucalmer@gmail.com>
Co-authored-by: LucaMarconato <2664412+LucaMarconato@users.noreply.github.com>
* Add RFC5 example tests

* Fix gitmodule paths to be relative

* Sort list of files

* Make relative import absolute
* Minor changes to coordinate transform object naming

* Transformation > Transform
* Define remaining transform models

* Use more ndim
* Get two of the RFC5 examples working.

* Error if list out of date

* Put back xfail
* Add support for coordinate metadata path metadata

* Add test for missing parameters

* Ignore mypy
* Re-implement Image.new() for RFC 5

* Set discrete

* Add translation to test
)

* Add basic container loading

* Parse child arrays

* Remove padding

* Use container in tests

* container > collection
* Fix inverse field name

* Update examples commit

* xfail broken example

* Update path inference in Collection

* Enable some more example tests

* Remove print statement
* Fix image paths

* Fix long lines
* Add TransformGraph class

* Script to generate all transform graphs

* Add coordinate systems to graph explicitly

* Output graphs to another repository

* Fix output path

* Change font name

* Expand compound transforms in graph

* Generate graphs for collections

* Add links between default system and path

* Set font for all text

* Label top level collection

* Unskip images

* Only add label when in a collection

* Make lines between groups dashed

* Discover groups stored in output paths

* Add a CLI for rendering a transform graph

* Fix paths in tests

* Add smoke test for graphviz
* Add code to transform points

* Add inverse transform method

* Add some inverse transform tests

* Implement affine transform

* Validate row lengths in Affine

* Add a point type

* Add method to get inverse transforms

* Remove inverse_transform_point

* Clean up old comment

* Add notes about transform_point impelmentation

* Add test for affine dimension mismatch

* Implement rotation transform

* Test sequence transform

* Fixes to read in metadata examples

* Remove duplicate property

* Remove old method
* Fix dataset transform type

* Fix pre-commit
* add Collection.new() method

* fix mypy errors

* change images input to dict[str,Image]
dstansby and others added 16 commits February 11, 2026 14:19
…#368)

* Validate output of transforms in multiscale datasets

* Update output system validation
* Update RFC5 examples

* Implement scene

* Simplify multiscale transform validation

* Fix transformation validation
* Add Scene to top level namespace

* Fix image API docs

* Add separate scene and coordinate doc pages

* Doc build fixes
* Add separate scene and coordinate doc pages

* Doc build fixes

* Improve base transform model documentation

* Fix output description

* Add descriptions to Affine

* Add sub-sections to coordinate API docs

* Show headings

* Better API docs for CoordinateSystem and CoordinateSystemIdentifier

* Add descriptions for Axis parameters

* Add more transform parameter definitions

* Fix typo

Co-authored-by: Jan Eglinger <jan.eglinger@gmail.com>

* Fix line length

---------

Co-authored-by: Jan Eglinger <jan.eglinger@gmail.com>
* Allow path=None in coordinate system identifiers

* Allow None path in transform graph implementation
- implement `from_version` and `to_version` for v05 Multiscales
- implement `from_version` and `to_version` for v04 Multiscales
- add tests for both converters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants