Source code for pennylane_quantuminspire.qi_device
from typing import Any
from pennylane import DeviceError
from pennylane.devices.execution_config import DefaultExecutionConfig, ExecutionConfig
from pennylane_qiskit import RemoteDevice
from pennylane_qiskit.qiskit_device import QuantumTape_or_Batch, Result_or_ResultBatch
from qiskit.exceptions import QiskitError
from qiskit_quantuminspire.qi_backend import QIBackend
[docs]
class QIDevice(RemoteDevice): # type: ignore[misc]
def __init__(self, backend: QIBackend, **kwargs: Any) -> None:
super().__init__(wires=backend.num_qubits, backend=backend, **kwargs)
# pylint: disable=unused-argument, no-member
[docs]
def execute(
self,
circuits: QuantumTape_or_Batch,
execution_config: ExecutionConfig = DefaultExecutionConfig,
) -> Result_or_ResultBatch:
try:
results = super().execute(circuits, execution_config)
return results
except QiskitError as e:
raise DeviceError(str(e)) from e