Skip to content

v0.4.1

Latest

Choose a tag to compare

@timtreis timtreis released this 10 Aug 16:18
· 4 commits to main since this release
Immutable release. Only release title and notes can be modified.
f0482e9

What's Changed

Added

  • docs: add Interactive region annotation card to gallery by @timtreis in #689
  • Add scanpy-style multi-panel color=[...] for render_shapes and render_labels by @timtreis in #686
  • Add measure_obs: persist per-cell centroid/area/equivalent diameter into the annotating table by @timtreis in #705
  • Fast cell rendering: render_shapes/labels(as_points=True) + axis-aligned extent by @timtreis in #703
  • docs(gallery): add rendering-performance tutorial card by @timtreis in #726
  • feat(color): PercentileNormalize for percentile-based contrast limits by @timtreis in #725
  • fix(shapes,labels): re-add outline bool toggle by @timtreis in #750
  • fix: full scanpy 1.13 compatibility layer by @timtreis in #760

Changed

  • perf(shapes): build matplotlib patches once, share across fill/outline by @timtreis in #691
  • perf(points): strip alpha on unique colours, not once per point by @timtreis in #692
  • perf(labels): compute np.unique(label) once per render by @timtreis in #693
  • perf(images): materialize rasterized image once to avoid per-channel re-warp by @timtreis in #708
  • perf(color): extract one aligned column instead of copying the whole table by @timtreis in #709
  • fix: render unannotated shapes with na_color instead of dropping them by @timtreis in #711
  • perf(shapes): drop the per-render table join when coloring by a table column by @timtreis in #712
  • Set panel title/aspect/frameon once per panel, not per render command by @timtreis in #702
  • refactor: decompose show() into named stages by @timtreis in #714
  • refactor: collapse duplicated orchestration across the render* quartet by @timtreis in #717
  • refactor(render_params): RenderParams base class for the 5 *RenderParams by @timtreis in #720
  • refactor: split utils.py into _geometry / _datashader / _color / _validate by @timtreis in #715
  • refactor: unify color/cmap/norm pipeline — CmapParams methods + single continuous-norm by @timtreis in #721
  • refactor(color): ColorSpec - typed color-state boundary by @timtreis in #722
  • perf(shapes): faster datashader circle rendering + matplotlib-fidelity fixes by @timtreis in #729
  • perf(render_points): drop the AnnData hack + fix the categorical cliff by @timtreis in #730
  • perf(render_points): keep categorical colour as codes+palette (memory at scale) by @timtreis in #731
  • perf(render_shapes): PathCollection of pre-built Paths (avoid per-shape Patch construction) by @timtreis in #735
  • perf(color): map categorical shapes colour by code, not per-row hex parse by @timtreis in #737
  • perf(render_images): stream multi-channel composite (avoid O(n_channels) RGBA cube) by @timtreis in #736
  • perf(shapes): vectorize datashader polygon scaling by @timtreis in #738
  • perf(shapes): vectorize datashader polygon scaling by @timtreis in #740
  • refactor: decompose _type_check_params, _convert_shapes, _set_color_source_vec by @timtreis in #741
  • docs(gallery): derive the gallery from the notebook sources by @timtreis in #752
  • fix(labels): defer float-dtype rejection to spatialdata's model validation by @timtreis in #758
  • Update template to v0.8.0 (resolved) by @timtreis in #761
  • build(deps): bump the actions-deps group with 4 updates by @dependabot[bot] in #762

Removed

Fixed

  • ci: bump codecov-action to v6 to fix signature verification by @timtreis in #704
  • test: cap matplotlib<3.11 to stabilize colorbar image baselines by @timtreis in #713
  • fix(show): render all coordinate systems for type-distributed elements by @timtreis in #718
  • fix(labels): separate per-render categorical legends with distinct palettes by @timtreis in #723
  • fix(datashader): handle zero-extent point sets instead of NaN canvas by @timtreis in #728
  • fix: align rasterized artists with get_extent by @timtreis in #742
  • fix: pl.show() now displays in a plain Python REPL by @timtreis in #745
  • fix(scalebar): accept int for scalebar_dx by @timtreis in #753
  • fix: import scanpy default palettes across scanpy versions (1.13 compat) by @timtreis in #759
  • fix(labels): restore render float-dtype guard for spatialdata <0.8 by @timtreis in #751
  • fix(points): render solid markers at small sizes by @timtreis in #757

New Contributors

Full Changelog: v0.4.0...v0.4.1