Skip to content

Commit 4198d90

Browse files
Add support for v2 provider interface (qiskit-community/qiskit-aqua#1270)
* Add support for v2 provider interface In Qiskit/qiskit#5086 the v2 provider interface is being added. This starter interface is basically a drop in replacement for the v1 interface with 3 changes it's explicitly versioned at the object level, Backend.run() can take in a circuit object, and Job objects can also be async or sync. Eventually the interace will likely evolve towards a model similar to what was initially done in Qiskit/qiskit#4885. This commit adds initial support for v2 provider backend objects, the explicit type checking for BaseBackend objects is blocking the terra PR from moving forward (because it switched BasicAer to use the v2 interface). This initial support just means accepting v2 Backend objects in addition to v1 BaseBackend objects. Depends on Qiskit/qiskit#5086 * Fix import path * fix style Co-authored-by: Manoel Marques <[email protected]>
1 parent 6a89391 commit 4198d90

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

qiskit/optimization/algorithms/grover_optimizer.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from qiskit.aqua import QuantumInstance, aqua_globals
2424
from qiskit.aqua.algorithms.amplitude_amplifiers.grover import Grover
2525
from qiskit.providers import BaseBackend
26+
from qiskit.providers import Backend
2627
from qiskit.circuit.library import QuadraticForm
2728
from .optimization_algorithm import (OptimizationResultStatus, OptimizationAlgorithm,
2829
OptimizationResult)
@@ -37,7 +38,7 @@ class GroverOptimizer(OptimizationAlgorithm):
3738
"""Uses Grover Adaptive Search (GAS) to find the minimum of a QUBO function."""
3839

3940
def __init__(self, num_value_qubits: int, num_iterations: int = 3,
40-
quantum_instance: Optional[Union[BaseBackend, QuantumInstance]] = None,
41+
quantum_instance: Optional[Union[BaseBackend, Backend, QuantumInstance]] = None,
4142
converters: Optional[Union[QuadraticProgramConverter,
4243
List[QuadraticProgramConverter]]] = None,
4344
penalty: Optional[float] = None) -> None:
@@ -76,13 +77,14 @@ def quantum_instance(self) -> QuantumInstance:
7677
return self._quantum_instance
7778

7879
@quantum_instance.setter
79-
def quantum_instance(self, quantum_instance: Union[BaseBackend, QuantumInstance]) -> None:
80+
def quantum_instance(self, quantum_instance: Union[Backend,
81+
BaseBackend, QuantumInstance]) -> None:
8082
"""Set the quantum instance used to run the circuits.
8183
8284
Args:
8385
quantum_instance: The quantum instance to be used in the algorithm.
8486
"""
85-
if isinstance(quantum_instance, BaseBackend):
87+
if isinstance(quantum_instance, (BaseBackend, Backend)):
8688
self._quantum_instance = QuantumInstance(quantum_instance)
8789
else:
8890
self._quantum_instance = quantum_instance

0 commit comments

Comments
 (0)