generate_acq_channels_data ========================== .. py:module:: quantify_scheduler.helpers.generate_acq_channels_data .. autoapi-nested-parse:: Helper functions to generate acq_indices. Module Contents --------------- Functions ~~~~~~~~~ .. autoapisummary:: quantify_scheduler.helpers.generate_acq_channels_data._prod quantify_scheduler.helpers.generate_acq_channels_data._warn_unsupported_bin_mode quantify_scheduler.helpers.generate_acq_channels_data._generate_acq_channels_data_binned quantify_scheduler.helpers.generate_acq_channels_data._validate_trace_protocol quantify_scheduler.helpers.generate_acq_channels_data._generate_acq_channels_data_for_protocol quantify_scheduler.helpers.generate_acq_channels_data._generate_acq_channels_data quantify_scheduler.helpers.generate_acq_channels_data.generate_acq_channels_data Attributes ~~~~~~~~~~ .. autoapisummary:: quantify_scheduler.helpers.generate_acq_channels_data.SchedulableLabel quantify_scheduler.helpers.generate_acq_channels_data.FullSchedulableLabel quantify_scheduler.helpers.generate_acq_channels_data.SchedulableLabelToAcquisitionIndex .. py:data:: SchedulableLabel .. py:data:: FullSchedulableLabel .. py:data:: SchedulableLabelToAcquisitionIndex A mapping from schedulables to an acquisition index. This mapping helps the backend to figure out which binned acquisition corresponds to which acquisition index. Note, it maps the (full schedulable label, acq_num_in_operation) to the bin, where acq_num_in_operation is the i.th acquisition in the operation; in other words: the i.th element in the acquisition_info. Only defined for binned acquisitions, and backend independent. For control flows, the `None` in the schedulable label refers to the `body` of the control flow. This is for future proofing, if control flows were extended to include maybe multiple suboperations. .. py:function:: _prod(iterable: Iterable[int]) -> int .. py:function:: _warn_unsupported_bin_mode(protocol: str, bin_mode: quantify_scheduler.enums.BinMode, acq_channel: Hashable) -> None .. py:function:: _generate_acq_channels_data_binned(acq_channel_data: quantify_scheduler.schedules.schedule.AcquisitionChannelData, schedulable_label_to_acq_index: SchedulableLabelToAcquisitionIndex, full_schedulable_label: FullSchedulableLabel, nested_loop_repetitions: list[int], coords: dict, acq_num_in_operation: int, acq_channel: Hashable, acq_index: int | None) -> None Generates the acquisition channel data, and updates acq_channel_data, and updates schedulable_label_to_acq_index. .. py:function:: _validate_trace_protocol(acq_channel: Hashable, acq_channels_data: quantify_scheduler.schedules.schedule.AcquisitionChannelsData, bin_mode: quantify_scheduler.enums.BinMode, protocol: str, nested_loop_repetitions: list[int]) -> None .. py:function:: _generate_acq_channels_data_for_protocol(acquisitions_info: list[dict], acq_channels_data: quantify_scheduler.schedules.schedule.AcquisitionChannelsData, schedulable_label_to_acq_index: SchedulableLabelToAcquisitionIndex, full_schedulable_label: FullSchedulableLabel, nested_loop_repetitions: list[int], is_explicit_acq_index: bool) -> None Generates the acquisition channel data, and updates acq_channel_data, and updates schedulable_label_to_acq_index. .. py:function:: _generate_acq_channels_data(operation: quantify_scheduler.schedules.schedule.ScheduleBase | quantify_scheduler.operations.operation.Operation, acq_channels_data: quantify_scheduler.schedules.schedule.AcquisitionChannelsData, schedulable_label_to_acq_index: SchedulableLabelToAcquisitionIndex, is_explicit_acq_index: bool, full_schedulable_label: FullSchedulableLabel, nested_loop_repetitions: list[int]) -> None Adds mappings to acq_channels_data and schedulable_label_to_acq_index; these are the output arguments; the others are input arguments. If explicit_acq_indices is True, then it only adds Schedulables where acq_index is not None, otherwise only adds Schedulables where acq_index is None. In this latter case, it will generate the acq_index. .. py:function:: generate_acq_channels_data(schedule: quantify_scheduler.schedules.schedule.ScheduleBase) -> tuple[quantify_scheduler.schedules.schedule.AcquisitionChannelsData, SchedulableLabelToAcquisitionIndex] Generate acq_index for every schedulable, and validate schedule regarding the acquisitions. This function generates the ``AcquisitionChannelData`` for every ``acq_channel``, and the ``SchedulableLabelToAcquisitionIndex``. It assumes the schedule is device-level.