symop.devices.action

Semantic device action representation.

Defines the DeviceAction data structure, which captures the result of device planning.

A device action encodes all information required for execution by the runtime, including bound ports, device kind, parameters, and label edits.

Classes

DeviceAction(ports, kind, params, edits[, ...])

Semantic description of a device application.

class DeviceAction(ports: Mapping[str, Path], kind: DeviceKind, params: Mapping[str, object], edits: Sequence[LabelEdit], selection: object | None = None, requires_kernel: bool = True) None

Bases: object

Semantic description of a device application.

Parameters:
  • ports (Mapping[str, Path]) – Mapping from logical port names to bound path labels.

  • kind (DeviceKind) – Device kind identifier.

  • params (Mapping[str, object]) – Device-specific parameters required for execution.

  • edits (Sequence[LabelEdit]) – Sequence of label edits to be applied to the output state.

  • selection (object | None) – Optional device-specific selection or configuration object.

  • requires_kernel (bool) – Whether runtime must dispatch to a representation-specific apply kernel before applying edits. Set to False for edit-only devices whose effect is fully captured by label updates.

Notes

  • This object is produced during device planning and consumed by the runtime.

  • It is representation-independent and serves as an intermediate form between semantic devices and execution kernels.

edits: Sequence[LabelEdit]
kind: DeviceKind
params: Mapping[str, object]
ports: Mapping[str, Path]
requires_kernel: bool = True
selection: object | None = None