qat.experimental.tools.schedule.tracker module

IR-independent ledger for statically scheduled resources.

class ResourceKind(value)

Bases: str, Enum

The two resource kinds that can be plotted.

FRAME = 'frame'
SEQUENCE = 'sequence'
class ScheduleEvent(resource, kind, unit, signal_unit, phase_label, phase_unit, phase_scale, start, end, frequency, phase, amplitude, signal=None, label=None)

Bases: object

A single interval recorded for a schedule resource.

amplitude: complex
property duration: float

Return the interval duration in the resource’s native unit.

end: float
frequency: float
kind: ResourceKind
label: str | None = None
phase: float
phase_label: str
phase_scale: float
phase_unit: str
resource: str
signal: ndarray[tuple[int, ...], dtype[complexfloating]] | None = None
signal_unit: str
start: float
unit: str
class ScheduleResource(name, kind, unit, signal_unit, phase_label, phase_unit, phase_scale, signal_limits)

Bases: object

Static metadata for a tracked schedule resource.

kind: ResourceKind
name: str
phase_label: str
phase_scale: float
phase_unit: str
signal_limits: tuple[float, float] | None
signal_unit: str
unit: str
class ScheduleTracker

Bases: object

Track static frame or sequence timelines with a small ledger-like API.

The tracker deliberately knows nothing about an IR. Dialect visitors select a resource, update its state, and append intervals through this API.

acquire(duration, signal=None, label='acquire')

Record an acquisition interval on the selected resource.

Return type:

ScheduleEvent

advance(duration, signal=None, label=None)

Append an interval to the selected resource and advance its time.

Return type:

ScheduleEvent

property amplitude: complex

Return the selected resource amplitude.

property frequency: float

Return the selected resource frequency.

mark(label)

Record a zero-duration state transition on the selected resource.

Return type:

ScheduleEvent

property phase: float

Return the selected resource phase.

pulse(duration, signal)

Record a pulse interval on the selected resource.

Return type:

ScheduleEvent

property records: tuple[ScheduleEvent, ...]

Return all recorded events in insertion order.

resource(name, kind, unit, signal_unit='Amplitude', phase_unit='rad', phase_scale=1.0, phase_label='Phase', signal_limits=None)

Select or create a resource.

Parameters:
  • name (str) – Stable resource name used by the visualisation.

  • kind (ResourceKind) – Whether the resource is a frame or a sequence.

  • unit (str) – Native unit label for time values.

  • signal_unit (str) – Label describing the recorded signal scale.

  • phase_unit (str) – Native unit label for displayed phase values.

  • phase_scale (float) – Displayed phase units per radian.

  • phase_label (str) – Label describing the recorded phase.

  • signal_limits (Optional[tuple[Real, Real]]) – Optional lower and upper bounds for the signal axis.

Return type:

ScheduleTracker

Returns:

This tracker, for fluent visitor code.

resource_info(name)

Return static metadata for a resource.

Return type:

ScheduleResource

property resources: tuple[str, ...]

Return resource names in registration order.

select(name)

Select an existing resource.

Return type:

ScheduleTracker

property selected_resource: str

Return the selected resource name.

set_amplitude(amplitude)

Set the selected resource amplitude.

Return type:

None

set_frequency(frequency)

Set the selected resource frequency.

Return type:

None

set_phase(phase)

Set the selected resource phase.

Return type:

None

shift_phase(phase)

Shift the selected resource phase.

Return type:

None

synchronise(resources=None)

Advance selected resources to the latest current time.

Return type:

None

property timelines: dict[str, tuple[ScheduleEvent, ...]]

Return recorded events grouped by resource.

wait(duration, signal=None)

Record a wait interval on the selected resource.

Return type:

ScheduleEvent