qxmt.devices.builder module

qxmt.devices.builder module#

class qxmt.devices.builder.DeviceBuilder(config, logger=<Logger qxmt.devices.builder (INFO)>)

Bases: object

Builder class for quantum devices. This class abstracts the instantiation of quantum device objects across multiple platforms (e.g., PennyLane, IBMQ, Amazon Braket) based on a unified configuration.

This builder enables users to create a device instance by simply providing a DeviceConfig, without worrying about the underlying platform-specific details.

Parameters:
  • config (DeviceConfig) – Configuration for the quantum device. This includes platform, device name, backend name, number of qubits, shots, and random seed.

  • logger (Any) – Logger instance for logging.

build() BaseDevice

Instantiates and returns a quantum device object corresponding to the specified platform and device name.

Return type:

BaseDevice

Returns:

An instance of a quantum device suitable for the specified platform and configuration.

Return type:

BaseDevice

Parameters:
  • config (DeviceConfig)

  • logger (Any)

Example

>>> from qxmt.configs import DeviceConfig
>>> from qxmt.devices.builder import DeviceBuilder
>>> config = DeviceConfig(
...     platform="pennylane",
...     device_name="default.qubit",
...     backend_name=None,
...     n_qubits=2,
...     shots=1000,
...     random_seed=42,
... )
>>> device = DeviceBuilder(config).build()
__init__(config, logger=<Logger qxmt.devices.builder (INFO)>)

Initialize the device builder.

Parameters:
  • config (DeviceConfig) – Configuration for the quantum device. It is element of the ExperimentConfig.

  • logger (Any)

Return type:

None

build()

Build a quantum device. it can be a general-purpose device overseeing multiple platforms.

Returns:

General-purpose device overseeing multiple platforms

Return type:

BaseDevice