Skip to content

perf: narrow core Polars feature set - #43

Open
rob-p wants to merge 1 commit into
scverse:mainfrom
rob-p:perf/minimize-polars-features
Open

perf: narrow core Polars feature set#43
rob-p wants to merge 1 commit into
scverse:mainfrom
rob-p:perf/minimize-polars-features

Conversation

@rob-p

@rob-p rob-p commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Replace Polars defaults plus dtype-full with the features used by the core anndata crate.

The retained set covers CSV reading, lazy concatenation, ndarray conversion, categorical values, and the feature-gated 8/16-bit signed and unsigned scalar types supported by AnnData tables. The core crate does not construct Polars temporal, duration, decimal, fixed-array, struct, float16, i128, or u128 columns, and does not need Polars formatting/default bundles.

This keeps existing public data support intact while avoiding unrelated Polars code. The Python crate's separate pyo3-polars dtype requirements are unchanged.

Companion downstream cleanups are COMBINE-lab/grangers#54 and COMBINE-lab/af-anndata#3; the aggregate measurements come from their simpleaf consumer.

Validation

  • all 8 anndata unit tests pass
  • all 3 anndata doctests pass
  • af-anndata builds and passes its unit tests and doctest against this branch
  • in the complete simpleaf graph, this and the companion grangers/af-anndata feature changes remove 10 resolved packages; a controlled clean release build was 13.7% faster, used 11.4% less peak compiler memory, and produced an 11.1% smaller unstripped binary

This is intentionally independent of the open Polars 0.55 update and can be rebased onto it if that lands first.

@rob-p rob-p changed the title Narrow core Polars feature set perf: narrow core Polars feature set Aug 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant