cellpy 2.0.0a5 — native-headers flip
Pre-release
Pre-release
Fifth cellpy 2 alpha. This release lands the native-headers flip: cellpy 2's runtime now speaks native cellpycore column names end to end — no legacy rename sandwich.
Highlights
- Default runtime is native (
CellpyCell(native_schema=True)):from_raw/load→make_step_table→make_summary→saveall run on native column names via the polars engine. - Legacy compatibility preserved:
- Legacy header attribute access (
headers_normal.voltage_txt, …) is carried by a deprecation-warned shim. native_schema=Falsekeeps the full legacy bridge for v8 byte round-trips.- Legacy v8 files still load, and
save(format="v8")still writes them, viato_legacy/to_native.
- Legacy header attribute access (
- Native
merge()(campaign + continuation) works on the default path. - Value-parity oracle: the native and legacy pipelines are asserted equal on 125 mapped columns (raw/steps/summary, incl. IR and CE) on the canonical dataset.
Breaking changes (alpha)
data.raw/data.steps/data.summarynow carry native column names by default (e.g.potential,cycle_num,datapoint_num,step_type). Access via the header objects (shim-carried) or migrate literals to native names. Setnative_schema=Falsefor the legacy names.get_capcurve frames use nativeCurveCols(potential/capacity/cycle_num/direction).cellpy.utils.easyplotremoved (deprecated since 1.1).
Known gaps (tracked, xfailed)
- Native summary does not yet compute
shifted_*capacity, RIC, orcumulated_coulombic_efficiency(#552). - Native
step_specificationsapplication +exclude_step_typesvalue parity to verify (#554).
Pinned to cellpycore==0.2.2.