You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
cellpy 2.2 = the deferred "complete cellpy 2" features (architecture plan §3): additive,
version-cleanly. Mirror of 2.1 — where 2.0 finalized what can't be shimmed and 2.1 spent the
shims, 2.2 delivers the parked features. Kept deliberately lean: v2-migration bug reports
ship as v2.1.x patches off master, not folded in here.
SPEED-30 value+unit+dtype versioned headers (structural headline) · #73 GITT/PITT analysis · #889 Fredrik ICA.
Design-only, post-2.2: original-vs-processed data curation (#206).
Sequencing
Only S1–S3 are core-first (core PR → PyPI → cellpy re-pin); L / I / R / S4 are cellpy-only. L6 first, then L1 → L2 → L3 → L4/L5. S1/S2 share one schema addition; S3 is a
user-visible convention change → #-delta register + comparator exception. I1–I5 and R1
parallel; R2 is a small follow-on to #900. Startable now: S-oracle characterization, #888, #270, #306, #827, #687, #691, #784, #352.
Stage 5 epics: not started (all checklist items still open).
Reactive stream shipped: v2.1.1.post4 … v2.1.3.post3, and v2.1.4 (2026-09-08, on cellpycore==0.2.5) — ≈85 issues closed out-of-band. Patch line now empty.
cellpy 2.2 = the deferred "complete cellpy 2" features (architecture plan §3): additive,
version-cleanly. Mirror of 2.1 — where 2.0 finalized what can't be shimmed and 2.1 spent the
shims, 2.2 delivers the parked features. Kept deliberately lean: v2-migration bug reports
ship as
v2.1.xpatches off master, not folded in here.Plan: stage5-github-issues.md (revision 2026-09-08 in §11) · coordinating:
cellpy2-architecture-plan.md§Stage 5.Epic L — Live / incremental refresh (cellpy-only; design done)
update()== full load)SupportsIncrementalLoadprotocol + marker/chunk types (cellpy-hosted)load_since()for cheap-partial loaders (arbin_res/sql, neware_txt, maccor_txt)CellpyCell.update()(change-detect viacheck_file_ids/NEWEST+ protocol/fallback; persist marker)live.pypoll loop; retireprocessor.py(batch_corelstrip item moot — module gone since batch v3)b.update(live=True)/b.poll()) on top ofBatch.update()Epic S — Step/summary science (additive columns, current schema; S1–S3 core-first)
cycle_mode/counter) — convention deltacellpy.filters(cellpy-only; added 2026-09-08)Epic I — Instruments / IO
Data(added 2026-09-08)Epic R — Remote paths & discovery
scp://<ssh-config-alias>/...resolution (or fail-loud + docs)Epic M — External metadata sources / BatBase (read path in 2.2; cross-repo)
BatBaseClient(OAuth2 client-credentials, keyring/env,configure batbase) +getpassthrough /cellpy connectors batbase get(yolo)MetadataSourceProtocol +MetaResolverhook (read-only) — merged via feat: pluggable external metadata sources — Protocol, registry, resolver hook (#784) #1106 (2026-09-26);CellMeta.uuidcore-first as CellMeta.uuid: cell-level join key for external metadata sources cellpy/cellpy-core#151MetadataSourceadapter (/api/test-cellpy-tag/→MetaRecord) — merged feat: BatBase MetadataSource adapter for cellpy (#2) cellpy/cellpy-connectors#9 (2026-09-26); API side ife-bat/batbase#473 → PR ife-bat/batbase#475 (open)filefinder) merged early in feat: file pointers from external metadata sources — cellpy.get(source=) and batch.from_source (#1107) #1119 (2026-10-01); follow-ups Epic M: use FileRef size/mtime from the metadata source to skip stat-ing raw files on update() #1124 (size/mtimeshort-circuit inupdate()) and BatBase adapter: map experiment files[] to MetaRecord.files (FileRef) cellpy/cellpy-connectors#11 (adapter maps BatBasefiles[]→FileRef). Server side is done: ife-bat/batbase#473 (annotations, PR Stage 1.1: cellpy-file format spec in cellpy_file/format.py (#446) #475) and docs: Stage 0 foundations complete (#439) #474 (TestDataFile+files+ writable/api/test-data-file/, PR 476 golden benchmark fixes #478) merged 2026-09-26;CellMeta.uuidin core (feat(metadata): add CellMeta.uuid cell-level join key (#151) cellpy/cellpy-core#152, awaiting release + re-pin). User guide:docs/guides/metadata_sources.md(docs: how-to guide for pulling cell metadata from a lab database (BatBase) (#1023) #1108).Milestone extras (unstaged)
Deferred → 2.3 (
v.2.3milestone)SPEED-30 value+unit+dtype versioned headers (structural headline) · #73 GITT/PITT analysis · #889 Fredrik ICA.
Design-only, post-2.2: original-vs-processed data curation (#206).
Sequencing
Only S1–S3 are core-first (core PR → PyPI → cellpy re-pin); L / I / R / S4 are cellpy-only.
L6 first, then L1 → L2 → L3 → L4/L5. S1/S2 share one schema addition; S3 is a
user-visible convention change → #-delta register + comparator exception. I1–I5 and R1
parallel; R2 is a small follow-on to #900. Startable now: S-oracle characterization,
#888, #270, #306, #827, #687, #691, #784, #352.
Progress (2026-09-26)
load_since()(Add load_since() to arbin_res, arbin_sql, neware_txt, and maccor_txt #1101), Allow for c.update() #164CellpyCell.update()(Add CellpyCell.update() to refresh a cell from a grown raw source #1102), L4: live.py poll loop; retire processor.py; fix batch_core lstrip #781live.poll()+processor.pyremoved (Add live.poll() and retire utils.processor #1103), L5: batch live refresh — b.update(live=True) / b.poll() #782Batch.refresh()/update(live=True)/poll()(Add batch live refresh: Batch.refresh, update(live=True) and poll #1104). Design notes:.issueflows/04-designs-and-guides/incremental-load-protocol.md.cellpy-design-and-development/roadmap/stages/stage6-github-issues.md.yolo: no, so/iflow-drivehalted at L1: SupportsIncrementalLoad protocol + LoadMarker/IncrementalChunk (cellpy-hosted) #779; the rest was run by hand. Tracked as iflow-drive stops at the first yolo:no issue and cannot resolve stacked-PR / squash conflicts; should carry through under the overnight confirm issue-flow#386.Progress (2026-09-08)
cellpycore==0.2.5) — ≈85 issues closed out-of-band. Patch line now empty.CURRENT.md.Progress (2026-07-31)
v.2.1.2still open (batch - read custom json #345/Lightweight metadata read: read_meta(path) without a full get() #799/Per-instrument metadata schema (which fields an instrument import needs) #800).