Add private primitive attributes removed by qiskit (#2048)

* Add private primitive attributes removed by qiskit

* wrong url

* call private submit method

* Make submission compatible with qiskit <=0.45

* Skip Operator test is qiskit >=1.0

* grr lint
This commit is contained in:
Ian Hincks 2024-02-02 13:15:55 -05:00 committed by GitHub
parent 9a69eb4411
commit 9f45068975
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 19 additions and 2 deletions

View File

@ -97,6 +97,11 @@ class Estimator(BaseEstimator):
If approximation is True, this parameter is ignored and assumed to be False.
"""
super().__init__(options=run_options)
# These three private attributes used to be created by super, but were deprecated in Qiskit
# 0.46. See https://github.com/Qiskit/qiskit/pull/11051
self._circuits = []
self._parameters = []
self._observables = []
backend_options = {} if backend_options is None else backend_options
method = (
@ -204,7 +209,8 @@ class Estimator(BaseEstimator):
parameter_values,
**run_options,
)
job.submit()
# The public submit method was removed in Qiskit 0.46
(job.submit if hasattr(job, "submit") else job._submit)() # pylint: disable=no-member
return job
def _compute(self, circuits, observables, parameter_values, run_options):

View File

@ -67,6 +67,11 @@ class Sampler(BaseSampler):
skip_transpilation: if True, transpilation is skipped.
"""
super().__init__(options=run_options)
# These two private attributes used to be created by super, but were deprecated in Qiskit
# 0.46. See https://github.com/Qiskit/qiskit/pull/11051
self._circuits = []
self._parameters = []
self._backend = AerSimulator()
backend_options = {} if backend_options is None else backend_options
self._backend.set_options(**backend_options)
@ -157,7 +162,8 @@ class Sampler(BaseSampler):
self._circuits.append(circuit)
self._parameters.append(circuit.parameters)
job = PrimitiveJob(self._call, circuit_indices, parameter_values, **run_options)
job.submit()
# The public submit method was removed in Qiskit 0.46
(job.submit if hasattr(job, "submit") else job._submit)() # pylint: disable=no-member
return job
@staticmethod

View File

@ -20,6 +20,7 @@ from test.terra.common import QiskitAerTestCase
import numpy as np
from ddt import data, ddt
import qiskit
from qiskit.circuit import Parameter, QuantumCircuit
from qiskit.circuit.library import RealAmplitudes
from qiskit.exceptions import QiskitError
@ -84,6 +85,10 @@ class TestEstimator(QiskitAerTestCase):
np.testing.assert_allclose(result.values, [-0.4], rtol=0.02)
@data(True, False)
@unittest.skipUnless(
qiskit.__version__.startswith("0."),
reason="Operator support in primitives was removed following Qiskit 0.46",
)
def test_init_observable_from_operator(self, abelian_grouping):
"""test for evaluate without parameters"""
circuit = self.ansatz.assign_parameters([0, 1, 1, 2, 3, 5])