v0.1.6
Breaking (install requirements): the Python package now uses the zarr-python 3 library and requires zarr>=3.1 and Python ≥3.11 (drops 3.8–3.10). The on-disk format is unchanged (Zarr v2) — stores written by 0.1.6 stay readable by zarr-python 2 and by the C++/R/JS surfaces; zarr-python 3 is the library dependency, not a format change.
Fixes
- Dense primary measure now handled by the viewer prep and the live viewer (e.g. an SCE
logcountsassay or a scaled/dense AnnDataX) — previously raisedNotFoundErrorand viewer optimization was silently skipped. - Consolidated
.zmetadatais emitted in parent-before-child key order (and read tolerantly of any order), so JS-extended stores open cleanly under zarr-python 3. - Seurat →
extend_for_viewer: a boolean QC column is no longer mistaken for a grouping, and the active identity no longer duplicates the clustering it mirrors.
Internal
- Single-sourced the JS viewer-compute recipe (
compute.ts) and the measure-as-CSC read (fieldAsCsc); DRY'd the Python densify idiom (as_csc/as_csr). Behavior-preserving; cross-surface conformance green.