Skip to content

cellpy 2.0.0a5 — native-headers flip

Pre-release
Pre-release

Choose a tag to compare

@jepegit jepegit released this 18 Jul 23:07
df90c59

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/loadmake_step_tablemake_summarysave all 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=False keeps the full legacy bridge for v8 byte round-trips.
    • Legacy v8 files still load, and save(format="v8") still writes them, via to_legacy/to_native.
  • 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.summary now 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. Set native_schema=False for the legacy names.
  • get_cap curve frames use native CurveCols (potential/capacity/cycle_num/direction).
  • cellpy.utils.easyplot removed (deprecated since 1.1).

Known gaps (tracked, xfailed)

  • Native summary does not yet compute shifted_* capacity, RIC, or cumulated_coulombic_efficiency (#552).
  • Native step_specifications application + exclude_step_types value parity to verify (#554).

Pinned to cellpycore==0.2.2.