factory_analog#

Functions for producing operation handling strategies for QCM/QRM modules.

Module Contents#

Functions#

get_operation_strategy(...)

Determine and instantiate the correct operation strategy object.

_get_acquisition_strategy(...)

Handles the logic for determining the correct acquisition type.

_get_pulse_strategy(...)

Handles the logic for determining the correct pulse type.

get_operation_strategy(operation_info: quantify_scheduler.backends.types.qblox.OpInfo, channel_name: str, module_options: quantify_scheduler.backends.types.qblox.ClusterModuleDescription) quantify_scheduler.backends.qblox.operation_handling.base.IOperationStrategy[source]#

Determine and instantiate the correct operation strategy object.

Parameters:
  • operation_info – The operation for which we are building the strategy. This object contains all the necessary information about the operation.

  • channel_name – Specifies the channel identifier of the hardware config (e.g. complex_output_0).

  • module_options – The module description the operation will run on

Returns:

: The instantiated strategy object that implements the IOperationStrategy interface. This could be a Q1ASMInjectionStrategy, an acquisition strategy, a pulse strategy, or other specialized strategies depending on the operation type.

Raises:

ValueError – If the operation cannot be compiled for the target hardware or if an unsupported operation type is encountered.

_get_acquisition_strategy(operation_info: quantify_scheduler.backends.types.qblox.OpInfo) quantify_scheduler.backends.qblox.operation_handling.acquisitions.AcquisitionStrategyPartial[source]#

Handles the logic for determining the correct acquisition type.

_get_pulse_strategy(operation_info: quantify_scheduler.backends.types.qblox.OpInfo, channel_name: str, module_options: quantify_scheduler.backends.types.qblox.ClusterModuleDescription) quantify_scheduler.backends.qblox.operation_handling.base.IOperationStrategy[source]#

Handles the logic for determining the correct pulse type.