Skip to content

feat(batch): aggregate + qc + outputs (#701) - #731

Merged
jepegit merged 1 commit into
masterfrom
701-batch-v3-aggregate
Jul 26, 2026
Merged

feat(batch): aggregate + qc + outputs (#701)#731
jepegit merged 1 commit into
masterfrom
701-batch-v3-aggregate

Conversation

@jepegit

@jepegit jepegit commented Jul 26, 2026

Copy link
Copy Markdown
Owner

A5 — batch v3: aggregate + qc + outputs

Fifth arc of Epic A (batch v3, #696). Unblocks Epic B — collectors consume batch.aggregate. Additive.

  • aggregate.combine_summaries(cells, journal) — one tidy long-format frame with cell/group/sub_group key columns, replacing the wide/multiindex join_summaries machinery. Cells without a summary are skipped.
  • qc.check(cells) — the legacy _check_cell_* family (batch.py:367-456) as one function → a tidy per-cell pass/fail frame (empty, n_raw/n_steps/n_summary/n_cycles, cap stats, pass).
  • outputs.write_csv/write_parquet/write_excel — pure writers taking a frame + explicit path; never mkdir implicitly (that's layout.ensure_dirs).

Tests — tests/test_batch_v3_aggregate.py (6, all green)

Tidy combine + journal-group mapping + empty case; QC pass frame over a real cell; writer round-trips (csv/parquet/xlsx); writers don't create dirs. Full batch-v3 suite: 34 green.

Next: A6 (#702) — facade.py (Batch, load()/from_journal()) + golden parity vs old. Part of #696.

🤖 Generated with Claude Code

Closes #701.

Fifth arc of Epic A (batch v3, #696). Unblocks Epic B (collectors consume
batch.aggregate).

- aggregate.combine_summaries(cells, journal): one tidy long-format frame with
  cell/group/sub_group key columns (replaces the wide/multiindex join
  machinery); cells without a summary are skipped.
- qc.check(cells): the legacy _check_cell_* family (batch.py:367-456) as one
  function returning a tidy per-cell pass/fail frame (empty, n_raw/steps/
  summary/cycles, cap stats, pass).
- outputs.write_csv/write_parquet/write_excel: pure writers taking a frame +
  explicit path; never mkdir implicitly (that is layout.ensure_dirs).

6 tests: tidy combine + journal groups + empty; qc pass frame; writer
round-trips; writers don't create dirs. Full batch-v3 suite: 34 green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jepegit jepegit added this to the v.2.1 milestone Jul 26, 2026
@jepegit jepegit added the cellpy2-stage4 cellpy 2.1 (Stage 4): batch/collectors redesign, utils waves 3-4, F6, shim removals label Jul 26, 2026
@cursor

cursor Bot commented Jul 26, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@jepegit
jepegit enabled auto-merge (squash) July 26, 2026 20:19
@jepegit
jepegit merged commit d62a58e into master Jul 26, 2026
6 checks passed
@jepegit
jepegit deleted the 701-batch-v3-aggregate branch July 26, 2026 20:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cellpy2-stage4 cellpy 2.1 (Stage 4): batch/collectors redesign, utils waves 3-4, F6, shim removals

Projects

None yet

Development

Successfully merging this pull request may close these issues.

A5: batch v3 — aggregate + qc + outputs

1 participant