Skip to content

Replace backend_kwargs with backend_params: SerializableMixin#954

Merged
rickwierenga merged 3 commits intov1b1from
backend-params-migration
Mar 23, 2026
Merged

Replace backend_kwargs with backend_params: SerializableMixin#954
rickwierenga merged 3 commits intov1b1from
backend-params-migration

Conversation

@rickwierenga
Copy link
Copy Markdown
Member

Summary

  • Replace **backend_kwargs with typed backend_params: Optional[SerializableMixin] = None across all new (non-legacy) capability backends and frontends
  • Vendor-specific keyword arguments are now encapsulated in nested Params dataclasses on the backend (e.g. SpectraMaxM5Backend.FluorescenceParams, CytationBackend.CaptureParams, XPeelBackend.PeelParams)
  • Legacy adapters updated to construct appropriate Params objects when delegating to new backends — legacy public API unchanged
  • 33 files changed across capabilities, vendor backends, chatterbox/test backends, and legacy adapters

Params classes added

Backend Params class Fields
MolecularDevicesBackend AbsorbanceParams wavelengths, read_type, calibrate, shake, etc. (13)
SpectraMaxM5Backend FluorescenceParams excitation/emission wavelengths, cutoff_filters, etc. (16)
SpectraMaxM5Backend LuminescenceParams emission_wavelengths, read_type, etc. (14)
CLARIOstarBackend AbsorbanceParams report
BioTekBackend LuminescenceParams integration_time
ByonoyLuminescence96Backend LuminescenceParams integration_time
XPeelBackend PeelParams begin_location, fast, adhere_time
CytationBackend CaptureParams led_intensity, coverage, pixel_format, etc. (7)

Test plan

  • All 17 capability tests pass
  • All imports verified (new + legacy)
  • Verify no regressions in vendor-specific backends with hardware

🤖 Generated with Claude Code

rickwierenga and others added 3 commits March 23, 2026 13:31
…s new backends

Deprecate the **backend_kwargs forwarding pattern in capability frontends and
backends in favor of a typed backend_params: Optional[SerializableMixin] = None
parameter. Vendor-specific keyword arguments are now encapsulated in nested
Params dataclasses (e.g. SpectraMaxM5Backend.FluorescenceParams,
CytationBackend.CaptureParams, XPeelBackend.PeelParams).

Legacy adapters are updated to construct the appropriate Params objects when
delegating to new-style backends, preserving the legacy public API unchanged.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@rickwierenga rickwierenga merged commit 94b1d0c into v1b1 Mar 23, 2026
19 checks passed
@rickwierenga rickwierenga deleted the backend-params-migration branch March 23, 2026 21:08
rickwierenga added a commit that referenced this pull request Mar 23, 2026
Use the backend_params pattern from #954: VSpinBackend.SpinParams
dataclass for acceleration/deceleration instead of **kwargs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant