schedule ======== .. py:module:: quantify_scheduler.helpers.schedule .. autoapi-nested-parse:: Schedule helper functions. Module Contents --------------- Functions ~~~~~~~~~ .. autoapisummary:: quantify_scheduler.helpers.schedule.get_pulse_uuid quantify_scheduler.helpers.schedule.get_acq_uuid quantify_scheduler.helpers.schedule._generate_acq_info_by_uuid quantify_scheduler.helpers.schedule.get_acq_info_by_uuid quantify_scheduler.helpers.schedule.extract_acquisition_metadata_from_schedule quantify_scheduler.helpers.schedule.extract_acquisition_metadata_from_acquisition_protocols quantify_scheduler.helpers.schedule._extract_port_clocks_used .. py:function:: get_pulse_uuid(pulse_info: dict[str, Any], excludes: list[str] | None = None) -> int Return an unique identifier for a pulse. :param pulse_info: The pulse information dictionary. :param excludes: A list of keys to exclude. :returns: The uuid hash. .. py:function:: get_acq_uuid(acq_info: dict[str, Any]) -> int Return an unique identifier for a acquisition protocol. :param acq_info: The acquisition information dictionary. :returns: The uuid hash. .. py:function:: _generate_acq_info_by_uuid(operation: quantify_scheduler.operations.operation.Operation | quantify_scheduler.schedules.schedule.ScheduleBase, acqid_acqinfo_dict: dict) -> None .. py:function:: get_acq_info_by_uuid(schedule: quantify_scheduler.schedules.schedule.Schedule) -> dict[int, dict[str, Any]] Return a lookup dictionary of unique identifiers of acquisition information. :param schedule: The schedule. .. py:function:: extract_acquisition_metadata_from_schedule(schedule: quantify_scheduler.schedules.schedule.Schedule) -> quantify_scheduler.schedules.schedule.AcquisitionMetadata Extract acquisition metadata from a schedule. This function operates under certain assumptions with respect to the schedule. - The acquisition_metadata should be sufficient to initialize the xarray dataset (described in quantify-core !212) that executing the schedule will result in. - All measurements in the schedule use the same acquisition protocol. - The used acquisition index channel combinations for each measurement are unique. - The used acquisition indices for each channel are the same. - When :class:`~quantify_scheduler.enums.BinMode` is :code:`APPEND` The number of data points per acquisition index assumed to be given by the schedule's repetition property. This implies no support for feedback (conditional measurements). :param schedule: schedule containing measurements from which acquisition metadata can be extracted. :returns: The acquisition metadata provides a summary of the acquisition protocol, bin-mode, return-type and acquisition indices of the acquisitions in the schedule. :raises AssertionError: If not all acquisition protocols in a schedule are the same. If not all acquisitions use the same bin_mode. If the return type of the acquisitions is different. .. py:function:: extract_acquisition_metadata_from_acquisition_protocols(acquisition_protocols: list[dict[str, Any]], repetitions: int) -> quantify_scheduler.schedules.schedule.AcquisitionMetadata Private function containing the logic of extract_acquisition_metadata_from_schedule. The logic is factored out as to work around limitations of the different interfaces required. :param acquisition_protocols: A list of acquisition protocols. :param repetitions: How many times the acquisition was repeated. .. py:function:: _extract_port_clocks_used(operation: quantify_scheduler.operations.operation.Operation | quantify_scheduler.schedules.schedule.Schedule) -> set[tuple] Extracts which port-clock combinations are used in an operation or schedule.