Remove `Session.array_transform` attribute (obsolete single-transducer-pose model)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 72/100
Direzione di ricerca
Inizia da src/openlifu/db/session.py e analizza la serializzazione di Session. Poi esamina la costruzione di Session in examples/tutorials/02_Database_Interaction.py e nel notebook corrispondente. Esegui i test del database in tests/test_database.py ed esamina tests/resources/example_db/ per individuare dati legacy di array_transform. Il lavoro è completato quando i fixture e gli esempi correnti non fanno più riferimento al campo, mentre from_dict continua a caricare le sessioni legacy.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
Remove the array_transform: ArrayTransform field from openlifu.db.Session, along with its to_dict / from_dict handling, the associated docstring notes, and every reference in examples, tests, and test-resource JSON.
Motivation
Session.array_transform was designed around the assumption that a session has a single canonical "the transducer position." In SlicerOpenLIFU that assumption no longer holds:
- Each page that renders the transducer (pre-planning, localization, solution) picks whichever of the persisted transforms it needs (a specific approved virtual-fit result, a specific approved transducer-tracking result, or -- on the localization page -- both simultaneously).
- The full list of transducer transforms lives in
session.virtual_fit_resultsandsession.transducer_tracking_results, keyed by target / photoscan. - Approval invalidation is now driven per-VF and per-TT rather than by writing back a single pose.
As a result, SlicerOpenLIFU has stopped reading and writing session.array_transform (see the accompanying downstream PR). The field is now unused by the primary consumer and only serves to confuse the persistence model.
Scope of changes required in this repo
src/openlifu/db/session.py- Remove the
array_transformfield definition onSession. - Remove the corresponding
to_dict/from_dicthandling forarray_transform. - Update the
solution_idfield docstring, which currently claims the id is "cleared whenever the array_transform changes." That invalidation policy needs to be reconsidered (probably driven by VF / TT approval changes on the consumer side); at minimum, drop the array_transform reference from the doc.
- Remove the
examples/tutorials/02_Database_Interaction.pyand the matching.ipynb-- drop thearray_transform=ArrayTransform(...)argument from theSession(...)construction.tests/test_database.py-- remove assertions onsession.array_transform.matrix.shape/.unitsand any loop variables namedarray_transformthat come from the same fixture.- Test resource JSON files under
tests/resources/example_db/that carry an"array_transform"block -- either drop the block or regenerate the fixtures so they no longer contain it.from_dictshould tolerate the field being absent, so old on-disk sessions still load cleanly. - Sample database (
openlifu-sample-databaserepo) sessions currently carry an"array_transform"block too; that repo will need a matching sweep, but that is out of scope for this issue.
Backwards compatibility
Session.from_dict should silently ignore a legacy "array_transform" key so that existing on-disk sessions (including the pinned openlifu-sample-database fixtures) still load with the new library version.
Downstream
Coordinated with the SlicerOpenLIFU cleanup that decommissions the array_transform read/write path on the consumer side.
- Lingua principale
- Python
- Stelle
- 29
- Fork
- 20
- Merge medio
- 4h 31m
- PR unite (30g)
- 6
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di OpenwaterHealth/openlifu-python
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Save Focal Gain LUT into a data file (json, csv, etc.) to make the source code file shorter.Forse già presa @HussainAther l’ha presa 84 giorni fa. Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
OpenwaterHealth/openlifu-python#448 · 2 commenti ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
Reconstruction quality is inconsistent +poor across runs on identical input + very slow processingForse di nuovo libera @stahir715 l’ha presa 62 giorni fa e non c’è nessuna pull request aperta. Aperta
OpenwaterHealth/openlifu-python#496 · 7 commenti · 2 assegnatari ·
Tutte le issue di OpenwaterHealth/openlifu-python
Issue simili
-
bug difficulty:2 good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
MakazhanAlpamys/Soup#1865 ·
I maintainer di solito rispondono entro 1 giorno
-
area: agents area: docs good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
openapi/gknowledge#23 ·
-
useless-suppression reported for deprecated-* messages that should be exemptForse già presa @adityasinha-ghub l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
pylint-dev/pylint#11656 ·
I maintainer di solito rispondono entro 1 giorno
-
area:provisioning effort:S priority:P2 provider:local-libvirt risk:daytime-only status:in-progress type:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
randomparity/kdive#3203 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
get() for StrEnumForse già presa @FeJo5952 l’ha presa oggi. Apertagood first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
collective/icalendar#1921 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno