Parent Epic: #39
Implementation: #45
Goal
Adopt the published copick 2.0 alpha runtime and replace metadata-blind Zarr reads with one explicitly read-only accessor.
Scope
- Require Python >=3.11, NumPy >=2.0.2, copick >=2.0.0a1,<3, copick-shared-ui >=2.0.0a1,<3, and Zarr >=3.1.6,<4.
- Remove unused napari-ome-zarr and regenerate the compatible lock.
- Open entity stores with
zarr.open_group(store=..., mode="r").
- Resolve ordered datasets through
get_multiscales() and get_level_path().
- Preserve non-negative high-level clamping; reject negative levels and invalid metadata clearly.
- Use the accessor for tomograms, segmentations, and level-zero target-shape discovery.
- Derive
(z, y, x) viewer scale from OME transforms relative to entity voxel size.
- Preserve full NumPy materialization and existing worker result contracts.
- Update classifiers, repository URLs, CI versions, and README accuracy.
Acceptance criteria
- OME-Zarr 0.4/v2 and 0.5/v3 numeric and non-numeric paths return exact selected data.
- Segmentation reads request read-only access.
- One-level clamping and malformed-store errors behave clearly.
- Non-power-of-two transforms produce the expected layer scale.
- The locked source behavior suite passes.
No dedicated dependency tests, structural source scans, or AST parsing are required.
Parent Epic: #39
Implementation: #45
Goal
Adopt the published copick 2.0 alpha runtime and replace metadata-blind Zarr reads with one explicitly read-only accessor.
Scope
zarr.open_group(store=..., mode="r").get_multiscales()andget_level_path().(z, y, x)viewer scale from OME transforms relative to entity voxel size.Acceptance criteria
No dedicated dependency tests, structural source scans, or AST parsing are required.