Skip to content
This repository was archived by the owner on Feb 4, 2025. It is now read-only.

Commit

Permalink
[QI2-1316] Pennylane reports execution failure errors
Browse files Browse the repository at this point in the history
  • Loading branch information
NischalQuTech committed Jan 28, 2025
1 parent 52908e7 commit 1aae709
Showing 4 changed files with 365 additions and 232 deletions.
18 changes: 18 additions & 0 deletions pennylane_quantuminspire2/qi_device.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
from typing import Any, Optional, Sequence

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
from qiskit_quantuminspire.qi_provider import QIProvider

@@ -12,6 +16,20 @@ class QI2Device(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
def execute(
self,
circuits: QuantumTape_or_Batch,
execution_config: ExecutionConfig = DefaultExecutionConfig,
) -> Result_or_ResultBatch:

try:
# Your existing execution code here
results = super().execute(circuits, execution_config)
return results
except QiskitError as e:
raise DeviceError(str(e)) from e

@classmethod
def backends(cls) -> Sequence[QIBackend]:
return cls._qi_provider.backends() # type: ignore[no-any-return]
Loading

0 comments on commit 1aae709

Please sign in to comment.