feat(collect): cellpy.collect foundation + cross-cell bug fixed (#705) - #735
Merged
Conversation
First arc of Epic B (collectors redesign, #696). New cellpy/collect/ package built on Epic A's cellpy.batch.aggregate. Because the A7 cutover means the legacy collectors can no longer run against the new facade (they are xfailed), Epic B is a fresh build with new golden tests, not a parity-port. - options.py: SummaryOptions/CurveOptions/IcaOptions/SaveOptions dataclasses (immutable .replace()) replacing the "elevated arguments" 3-layer merge. - collection.py: Collection = tidy frame + provenance (CollectionMeta); save (parquet+csv+meta.json, explicit directory, no cwd fallback) / load_collection / to_wide. - cells.py: iter_cells with per-cell isolation. - summary.py: collect_summaries on batch.aggregate + column selection. - curves.py: collect_cycles — FIXES the cross-cell cycle-narrowing bug (collectors.py:1609/1691) by deriving each cell's cycles from the ORIGINAL request every iteration instead of narrowing a shared list. 6 tests incl. the per-cell-isolation regression (cell_a missing a cycle must not drop it for cell_b) and Collection save/load round-trip. Closes #705. Part of #696. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
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
enabled auto-merge (squash)
July 26, 2026 22:21
27 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
B1 —
cellpy.collectfoundationFirst arc of Epic B (collectors redesign, #696), on Epic A's
cellpy.batch.aggregate. Since the A7 cutover means the legacy collectors can't run against the new facade (they're xfailed), Epic B is a fresh build with new golden tests, not a parity-port.options.py—SummaryOptions/CurveOptions/IcaOptions/SaveOptions(immutable.replace()) replacing the "elevated arguments" 3-layer merge.collection.py—Collection= tidy frame + provenance (CollectionMeta);save(parquet+csv+meta.json, explicit directory, no cwd fallback),load_collection,to_wide.cells.py—iter_cellswith per-cell isolation.summary.py—collect_summariesonbatch.aggregate+ column selection.curves.py—collect_cyclesfixes the cross-cell cycle-narrowing bug (collectors.py:1609/1691): each cell's cycles are derived from the original request every iteration, never narrowing a shared list.Tests (6, all green)
Per-cell-isolation regression (
cell_amissing a cycle must not drop it forcell_b);Collectionsave/load round-trip +to_wide;collect_summarieson a real cell + column selection; options immutability.Next: B2 (#706) — port
concat_summaries' rate/group/CV feature set onto the options model; B3 (#707) convenience class +utils.collectorsshim; B4 (#708) plotting handover.Closes #705. Part of #696.
🤖 Generated with Claude Code