Merged
Conversation
iohub's `create_empty_plate` does the same plate + channel create/append work. The only waveorder-specific behavior was writing a `plate_metadata` dict into the plate's zattrs; that's now done inline in apply_inverse_transfer_function.py after create_empty_plate returns. Tests: 347 passed, 1 skipped, 2 xfailed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- apply_inverse_transfer_function.get_reconstruction_output_metadata: no longer pins "chunks": (1, 1, 1, Y, X). create_empty_plate picks chunks (and shards for v0.5) from its own defaults. - compute_transfer_function: drop the explicit chunks= passed to every create_image call. iohub's default is shape[-3:] padded with leading 1s (docstring: "ZYX stack size will be used if not specified"), which matches what we want for both 2D (Z=1 array axis, XY chunk) and 3D (full-ZYX chunk) reconstructions. _write_phase_tf and _write_fluorescence_tf no longer need zyx_shape. - Tests updated to match the new helper signatures. Tests: 347 passed, 1 skipped, 2 xfailed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
iohub's feat/sharding_in_utils branch requires Python >=3.12, so drop 3.11 from the supported range, classifiers, and CI matrix. TODO left in pyproject.toml: revert to a released iohub once that branch is merged and published. Tests: 347 passed, 1 skipped, 2 xfailed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
talonchandler
approved these changes
Apr 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stack built on top of #554. Removes waveorder's hand-rolled chunk shapes and lets iohub pick them. Also pins iohub to the
feat/sharding_in_utilsbranch so the new sharding defaults are exercised end-to-end.apply_inverse_transfer_function.get_reconstruction_output_metadata: drop the hardcoded"chunks": (1, 1, 1, Y, X)from the returned dict.create_empty_plate(from Replace create_empty_hcs_zarr with iohub's create_empty_plate #554) now picks chunks via iohub's version-specific defaults (and shards for v0.5).compute_transfer_function: drop every explicitchunks=arg passed tocreate_image. iohub's default isshape[-min(3, len(shape)):]padded with leading 1s — docstring: "ZYX stack size will be used if not specified." For a standard TCZYX array that's(1, 1, Z, Y, X)— one full ZYX volume per chunk — which is what we want for both 2D reconstructions (array Z-axis is 1, so the chunk collapses to an XY plane) and 3D reconstructions (full-ZYX chunk)._write_phase_tf/_write_fluorescence_tf/_write_vector_birefringence_tflose theirzyx_shapeparameter since chunks no longer depend on the input's shape.Dependency / Python
iohubtogit+https://github.com/czbiohub-sf/iohub@feat/sharding_in_utils.requires-pythonto>=3.12(iohub's branch requires it), drop3.11from the classifiers and the CI matrix (["3.12", "3.13"]).TODO (follow-ups)
iohub>=...,<0.4) oncefeat/sharding_in_utilsis merged and published.Test plan
uv run pytest— 347 passed, 1 skipped, 2 xfailed.🤖 Generated with Claude Code