Source code for semi_cr.core.quam_components.helpers

# %%
from __future__ import annotations

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from semi_cr.core.lab.devices.multiplexer import Multiplexer
from semi_cr.core.quam_components.multi_input_channel import MultiInputChannel
from quam.components.channels import SingleChannel


[docs] def get_trigger_component(device: Multiplexer) -> SingleChannel: matches = [ component for component in device.quam_state.quam_components if isinstance(component, SingleChannel) and component.id == "trigger" ] if len(matches) != 1: raise ValueError( f"Expected exactly one trigger component, got {len(matches)}." ) return matches[0]
[docs] def get_mux_components(device: Multiplexer) -> tuple[MultiInputChannel, ...]: components = tuple( component for component in device.quam_state.quam_components if isinstance(component, MultiInputChannel) ) if not components: raise ValueError("No multiplexer QUAM components found.") return components