Skip to content

Latest commit

 

History

History
27 lines (23 loc) · 2.85 KB

File metadata and controls

27 lines (23 loc) · 2.85 KB

Changelog

All notable changes to this project will be documented in this file.

The format follows Keep a Changelog and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • validate.py ported to polars-native internals: validate_df accepts polars (eager or lazy) or pandas frames with identical reports across input types; the validate() artifact path no longer converts to pandas. Completes the repair/validate pandas removal.
  • Time reconciliation on read (GH #65): bdf.read cross-checks Test Time / s and Step Time / s increments against wall-clock (Unix Time / s) increments; a column stored in the wrong unit under a seconds header (e.g. a Digatron export holding milliseconds) is rescaled to seconds, recorded under metadata["time_reconciliation"], and announced with a UserWarning. Disable with reconcile_time=False. bdf.validate reports the same mismatch as a time_scale finding without modifying data.
  • repair.py ported to polars-native internals: fix_time and clean now accept polars (eager or lazy) or pandas frames and return the same kind, with identical numeric results across input types (pinned by the characterization suite). mypy re-enabled on the module; the CLI clean command no longer round-trips through pandas.
  • Arbin normalizers (csv, xlsx) map Charge/Discharge Capacity and Energy to the schedule_* terms from ontology 1.3.0, reflecting the operator-defined reset behavior Arbin confirmed; the columns previously landed on the never-resetting test-scoped terms.
  • CI pipeline with lint/type/tests/docs and build/twine checks.
  • Sphinx docs with pydata theme and converted notebook examples.
  • Unit tests for IO, registry, validation, repair, CLI, and raw conversion.
  • CLI/core alignment (save_jsonld, metadata helpers).
  • Community files: CONTRIBUTING, CODE_OF_CONDUCT, SECURITY.
  • Release workflow for TestPyPI/PyPI publication via GitHub Actions.

Changed

  • Enriched packaging metadata and optional extras.
  • Improved README with install/quickstart and CLI examples.
  • Relaxed numpy upper bound and added a numpy2 install extra.
  • Switched PyPI distribution name from bdf to batterydf (import/CLI remain bdf).

Fixed

  • Unix-time conversion is now datetime-resolution-safe: bdf.time.parse_unix_time computed epoch seconds via astype("int64") / 1e9, which assumed nanosecond storage and returned values 1000× too small on pandas builds that yield [us]/[s]/[ms] datetimes (e.g. newer Python/pandas in CI). Now uses timedelta arithmetic ((dt - epoch).dt.total_seconds()), correct for any resolution.
  • bdf.ingest now lowercases the cell id when creating the per-cell metadata directory, so generated paths are stable on case-sensitive filesystems (the cell metadata.jsonld was previously written to a differently-cased directory on Linux).