Skip to content

Adopt the core runtime and replace metadata-blind Zarr reads #85

Description

@uermel

Parent epic: #84

Implementation: #93, stacked on #94

Goal

Adopt the published copick 2.0 alpha runtime and replace metadata-blind tomogram reads with one explicitly read-only, metadata-based accessor.

Runtime metadata

  • Python >=3.11
  • Zarr >=3.1.6,<4
  • copick>=2.0.0a1
  • pydantic>=2, with no upper bound

Pydantic is direct because copick-utils imports BaseModel. The locked environment deliberately resolves Pydantic 2.13.4. Stable Python 3.14.7 passes; the earlier failure was an obsolete uv pin selecting Python 3.14.0b2, not a Pydantic incompatibility with stable Python.

Implemented scope

  • Raise the Python runtime, update classifiers/package URLs, and regenerate the lock.
  • Add copick_utils.io.zarr.get_level_array(entity, level=0) using zarr.open_group(..., mode="r") and copick.util.ome.get_level_path().
  • Replace all eight audited direct tomogram reads.
  • Treat level 0 as the first metadata dataset rather than literal path "0".
  • Preserve lazy array access and fail clearly for invalid levels/metadata.
  • Smoke-import all implementation modules.
  • Load all 32 command entry points and render their help paths.
  • Run the locked behavior suite on stable Python 3.11 through 3.14.

Tests do not assert dependency declaration strings or maintain a separate minimum-dependency job. The declared bounds are exercised by the locked clean installation and behavior matrix.

Acceptance criteria

Metadata

Metadata

Assignees

No one assigned

    Labels

    zarr-v3-migrationMigration to OME-Zarr 0.5 and Zarr v3

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions