spacr.qt.widgets.metadata_mapper

One-dialog recovery for missing metadata columns.

Classes

MetadataColumnDialog

Resolve every missing canonical column in one editable table.

Functions

resolve_metadata_with_dialog(...)

Resolve a frame interactively; cancellation remains an explicit stop.

Module Contents

class spacr.qt.widgets.metadata_mapper.MetadataColumnDialog(request: spacr.metadata_resolution.MetadataRequest, parent: PySide6.QtWidgets.QWidget | None = None)[source]

Bases: PySide6.QtWidgets.QDialog

Resolve every missing canonical column in one editable table.

Parameters:
  • request – the canonical columns still unresolved, and the candidates offered for each. Held as request, so a caller reads the user’s choices back off the same object it passed in.

  • parent – parent widget.

Build the dialog matching a table’s columns onto the ones spaCR needs.

Every missing column is asked for at once, so the run can continue without restarting.

Parameters:
  • request – what is missing, and the example values to preview from.

  • parent – parent widget, or None.

decision() → spacr.metadata_resolution.MetadataDecision[source]

Which source column the user mapped to each metadata field.

Returns:

the decision.

spacr.qt.widgets.metadata_mapper.resolve_metadata_with_dialog(frame, required: Iterable[str], *, parent: PySide6.QtWidgets.QWidget | None = None, cache_key: str | None = None) → spacr.metadata_resolution.ResolutionResult[source]

Resolve a frame interactively; cancellation remains an explicit stop.

Parameters:
  • frame – source metadata frame, passed to spacr.metadata_resolution.resolve_metadata_columns().

  • required – canonical columns that must be present in the result; a dialog asks for the mapping of each one that cannot be resolved, and cancelling it raises MetadataResolutionRequired.

Nested helpers

resolve_metadata_with_dialog.prompt(request: MetadataRequest) → MetadataDecision

Ask the user how to map one metadata column.

spacr/qt/widgets/metadata_mapper.py:200