Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[blocked by 9611] Add @deprecate_arg decorator #9659

Closed
wants to merge 15 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 7 additions & 8 deletions qiskit/algorithms/amplitude_amplifiers/grover.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
from qiskit.providers import Backend
from qiskit.quantum_info import partial_trace
from qiskit.utils import QuantumInstance, algorithm_globals
from qiskit.utils.deprecation import deprecate_function
from qiskit.utils.deprecation import deprecate_arg, deprecate_function

from .amplification_problem import AmplificationProblem
from .amplitude_amplifier import AmplitudeAmplifier, AmplitudeAmplifierResult
Expand Down Expand Up @@ -112,6 +112,12 @@ class Grover(AmplitudeAmplifier):
`arXiv:quant-ph/0005055 <http://arxiv.org/abs/quant-ph/0005055>`_.
"""

@deprecate_arg(
"quantum_instance",
additional_msg="Instead, use the `sampler` argument.",
since="0.22.0",
pending=True,
)
def __init__(
self,
iterations: Optional[Union[List[int], Iterator[int], int]] = None,
Expand Down Expand Up @@ -174,13 +180,6 @@ def __init__(

self._quantum_instance = None
if quantum_instance is not None:
warnings.warn(
"The quantum_instance argument has been superseded by the sampler argument. "
"This argument will be deprecated in a future release and subsequently "
"removed after that.",
category=PendingDeprecationWarning,
stacklevel=2,
)
with warnings.catch_warnings():
warnings.simplefilter("ignore", category=PendingDeprecationWarning)
self.quantum_instance = quantum_instance
Expand Down
15 changes: 7 additions & 8 deletions qiskit/algorithms/amplitude_estimators/ae.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
from qiskit.providers import Backend
from qiskit.primitives import BaseSampler
from qiskit.utils import QuantumInstance
from qiskit.utils.deprecation import deprecate_function
from qiskit.utils.deprecation import deprecate_arg, deprecate_function
from .amplitude_estimator import AmplitudeEstimator, AmplitudeEstimatorResult
from .ae_utils import pdf_a, derivative_log_pdf_a, bisect_max
from .estimation_problem import EstimationProblem
Expand Down Expand Up @@ -57,6 +57,12 @@ class AmplitudeEstimation(AmplitudeEstimator):
`arXiv:1912.05559 <https://arxiv.org/abs/1912.05559>`_.
"""

@deprecate_arg(
"quantum_instance",
additional_msg="Instead, use the `sampler` argument.",
since="0.22.0",
pending=True,
)
def __init__(
self,
num_eval_qubits: int,
Expand Down Expand Up @@ -86,13 +92,6 @@ def __init__(
super().__init__()

# set quantum instance
if quantum_instance is not None:
warnings.warn(
"The quantum_instance argument has been superseded by the sampler argument. "
"This argument will be deprecated in a future release and subsequently "
"removed after that.",
category=PendingDeprecationWarning,
)
with warnings.catch_warnings():
warnings.simplefilter("ignore")
self.quantum_instance = quantum_instance
Expand Down
15 changes: 7 additions & 8 deletions qiskit/algorithms/amplitude_estimators/fae.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
from qiskit.providers import Backend
from qiskit.primitives import BaseSampler
from qiskit.utils import QuantumInstance
from qiskit.utils.deprecation import deprecate_function
from qiskit.utils.deprecation import deprecate_arg, deprecate_function
from qiskit.algorithms.exceptions import AlgorithmError

from .amplitude_estimator import AmplitudeEstimator, AmplitudeEstimatorResult
Expand Down Expand Up @@ -48,6 +48,12 @@ class FasterAmplitudeEstimation(AmplitudeEstimator):

"""

@deprecate_arg(
"quantum_instance",
additional_msg="Instead, use the `sampler` argument.",
since="0.22.0",
pending=True,
)
def __init__(
self,
delta: float,
Expand All @@ -73,13 +79,6 @@ def __init__(
"""
super().__init__()
# set quantum instance
if quantum_instance is not None:
warnings.warn(
"The quantum_instance argument has been superseded by the sampler argument. "
"This argument will be deprecated in a future release and subsequently "
"removed after that.",
category=PendingDeprecationWarning,
)
with warnings.catch_warnings():
warnings.simplefilter("ignore")
self.quantum_instance = quantum_instance
Expand Down
15 changes: 7 additions & 8 deletions qiskit/algorithms/amplitude_estimators/iae.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
from qiskit.providers import Backend
from qiskit.primitives import BaseSampler
from qiskit.utils import QuantumInstance
from qiskit.utils.deprecation import deprecate_function
from qiskit.utils.deprecation import deprecate_arg, deprecate_function

from .amplitude_estimator import AmplitudeEstimator, AmplitudeEstimatorResult
from .estimation_problem import EstimationProblem
Expand Down Expand Up @@ -50,6 +50,12 @@ class IterativeAmplitudeEstimation(AmplitudeEstimator):
`arXiv:quant-ph/0005055 <http://arxiv.org/abs/quant-ph/0005055>`_.
"""

@deprecate_arg(
"quantum_instance",
additional_msg="Instead, use the `sampler` argument.",
since="0.22.0",
pending=True,
)
def __init__(
self,
epsilon_target: float,
Expand Down Expand Up @@ -95,13 +101,6 @@ def __init__(
super().__init__()

# set quantum instance
if quantum_instance is not None:
warnings.warn(
"The quantum_instance argument has been superseded by the sampler argument. "
"This argument will be deprecated in a future release and subsequently "
"removed after that.",
category=PendingDeprecationWarning,
)
with warnings.catch_warnings():
warnings.simplefilter("ignore")
self.quantum_instance = quantum_instance
Expand Down
15 changes: 7 additions & 8 deletions qiskit/algorithms/amplitude_estimators/mlae.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
from qiskit import ClassicalRegister, QuantumRegister, QuantumCircuit
from qiskit.utils import QuantumInstance
from qiskit.primitives import BaseSampler
from qiskit.utils.deprecation import deprecate_function
from qiskit.utils.deprecation import deprecate_arg, deprecate_function

from .amplitude_estimator import AmplitudeEstimator, AmplitudeEstimatorResult
from .estimation_problem import EstimationProblem
Expand Down Expand Up @@ -53,6 +53,12 @@ class in named ``MaximumLikelihoodAmplitudeEstimation``.
`arXiv:quant-ph/0005055 <http://arxiv.org/abs/quant-ph/0005055>`_.
"""

@deprecate_arg(
"quantum_instance",
additional_msg="Instead, use the `sampler` argument.",
since="0.22.0",
pending=True,
)
def __init__(
self,
evaluation_schedule: list[int] | int,
Expand Down Expand Up @@ -81,13 +87,6 @@ def __init__(
super().__init__()

# set quantum instance
if quantum_instance is not None:
warnings.warn(
"The quantum_instance argument has been superseded by the sampler argument. "
"This argument will be deprecated in a future release and subsequently "
"removed after that.",
category=PendingDeprecationWarning,
)
with warnings.catch_warnings():
warnings.simplefilter("ignore")
self.quantum_instance = quantum_instance
Expand Down
13 changes: 4 additions & 9 deletions qiskit/algorithms/optimizers/adam_amsgrad.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

import csv
import numpy as np
from qiskit.utils.deprecation import deprecate_arguments
from qiskit.utils.deprecation import deprecate_arg
from .optimizer import Optimizer, OptimizerSupportLevel, OptimizerResult, POINT

# pylint: disable=invalid-name
Expand Down Expand Up @@ -193,14 +193,9 @@ def load_params(self, load_dir: str) -> None:
t = t[1:-1]
self._t = np.fromstring(t, dtype=int, sep=" ")

@deprecate_arguments(
{
"objective_function": "fun",
"initial_point": "x0",
"gradient_function": "jac",
},
since="0.19.0",
)
@deprecate_arg("objective_function", new_alias="fun", since="0.19.0")
@deprecate_arg("initial_point", new_alias="fun", since="0.19.0")
@deprecate_arg("gradient_function", new_alias="jac", since="0.19.0")
# pylint: disable=arguments-differ
def minimize(
self,
Expand Down
21 changes: 13 additions & 8 deletions qiskit/algorithms/optimizers/qnspsa.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@

from __future__ import annotations
from typing import Any, Iterator, Callable
import warnings

import numpy as np
from qiskit.providers import Backend
from qiskit.circuit import ParameterVector, QuantumCircuit
from qiskit.opflow import StateFn, CircuitSampler, ExpectationBase
from qiskit.utils import QuantumInstance
from qiskit.utils.deprecation import deprecate_arg

from qiskit.primitives import BaseSampler, Sampler
from qiskit.algorithms.state_fidelities import ComputeUncompute
Expand Down Expand Up @@ -253,6 +253,18 @@ def settings(self) -> dict[str, Any]:
return settings

@staticmethod
@deprecate_arg(
"backend",
deprecation_description="Setting the argument `backend` in QNSPSA.get_fidelity()",
since="0.22",
pending=True,
)
@deprecate_arg(
"expectation",
deprecation_description="Setting the argument `expectation` in QNSPSA.get_fidelity()",
since="0.22",
pending=True,
)
def get_fidelity(
circuit: QuantumCircuit,
backend: Backend | QuantumInstance | None = None,
Expand Down Expand Up @@ -301,13 +313,6 @@ def get_fidelity(
sampler = Sampler()

if expectation is not None or backend is not None:
warnings.warn(
"Passing a backend and expectation converter to QNSPSA.get_fidelity is pending "
"deprecation and will be deprecated in a future release. Instead, pass a "
"sampler primitive.",
stacklevel=2,
category=PendingDeprecationWarning,
)
return QNSPSA._legacy_get_fidelity(circuit, backend, expectation)

fid = ComputeUncompute(sampler)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,9 @@

from __future__ import annotations

import warnings

from qiskit import QuantumCircuit
from qiskit.utils import QuantumInstance
from qiskit.utils.deprecation import deprecate_arg
from qiskit.opflow import (
SummedOp,
PauliOp,
Expand Down Expand Up @@ -92,6 +91,12 @@ class HamiltonianPhaseEstimation:

"""

@deprecate_arg(
"quantum_instance",
additional_msg="Instead, use the `sampler` argument.",
since="0.22.0",
pending=True,
)
def __init__(
self,
num_evaluation_qubits: int,
Expand All @@ -106,13 +111,6 @@ def __init__(
the circuit will be run.
sampler: The sampler primitive on which the circuit will be sampled.
"""
if quantum_instance is not None:
warnings.warn(
"The quantum_instance argument has been superseded by the sampler argument. "
"This argument will be deprecated in a future release and subsequently "
"removed after that.",
category=PendingDeprecationWarning,
)
self._phase_estimation = PhaseEstimation(
num_evaluation_qubits=num_evaluation_qubits,
quantum_instance=quantum_instance,
Expand Down
16 changes: 7 additions & 9 deletions qiskit/algorithms/phase_estimators/ipe.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,14 @@

from __future__ import annotations

import warnings

import numpy

import qiskit
from qiskit.circuit import QuantumCircuit, QuantumRegister
from qiskit.circuit.classicalregister import ClassicalRegister
from qiskit.providers import Backend
from qiskit.utils import QuantumInstance
from qiskit.utils.deprecation import deprecate_arg
from qiskit.algorithms.exceptions import AlgorithmError
from .phase_estimator import PhaseEstimator
from .phase_estimator import PhaseEstimatorResult
Expand All @@ -40,6 +39,12 @@ class IterativePhaseEstimation(PhaseEstimator):
qubit benchmark, `arxiv/quant-ph/0610214 <https://arxiv.org/abs/quant-ph/0610214>`_
"""

@deprecate_arg(
"quantum_instance",
additional_msg="Instead, use the `sampler` argument.",
since="0.22.0",
pending=True,
)
def __init__(
self,
num_iterations: int,
Expand All @@ -60,13 +65,6 @@ def __init__(
raise AlgorithmError(
"Neither a sampler nor a quantum instance was provided. Please provide one of them."
)
if quantum_instance is not None:
warnings.warn(
"The quantum_instance argument has been superseded by the sampler argument. "
"This argument will be deprecated in a future release and subsequently "
"removed after that.",
category=PendingDeprecationWarning,
)
if isinstance(quantum_instance, Backend):
quantum_instance = QuantumInstance(quantum_instance)
self._quantum_instance = quantum_instance
Expand Down
15 changes: 7 additions & 8 deletions qiskit/algorithms/phase_estimators/phase_estimation.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"""The Quantum Phase Estimation Algorithm."""

from __future__ import annotations
import warnings

import numpy

Expand All @@ -24,6 +23,7 @@
from qiskit.circuit.classicalregister import ClassicalRegister
from qiskit.providers import Backend
from qiskit.utils import QuantumInstance
from qiskit.utils.deprecation import deprecate_arg
from qiskit.result import Result
from qiskit.algorithms.exceptions import AlgorithmError
from .phase_estimation_result import PhaseEstimationResult, _sort_phases
Expand Down Expand Up @@ -81,6 +81,12 @@ class PhaseEstimation(PhaseEstimator):

"""

@deprecate_arg(
"quantum_instance",
additional_msg="Instead, use the `sampler` argument.",
since="0.22.0",
pending=True,
)
def __init__(
self,
num_evaluation_qubits: int,
Expand All @@ -102,13 +108,6 @@ def __init__(
raise AlgorithmError(
"Neither a sampler nor a quantum instance was provided. Please provide one of them."
)
if quantum_instance is not None:
warnings.warn(
"The quantum_instance argument has been superseded by the sampler argument. "
"This argument will be deprecated in a future release and subsequently "
"removed after that.",
category=PendingDeprecationWarning,
)
self._measurements_added = False
if num_evaluation_qubits is not None:
self._num_evaluation_qubits = num_evaluation_qubits
Expand Down
Loading