From 17359335be96b0e3bc56e1747b7c5087863f3567 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Wed, 29 Mar 2023 20:49:24 -0600 Subject: [PATCH] Apply new deprecation decorators to qobj and qpy (#9870) --- qiskit/qobj/__init__.py | 11 +-- qiskit/qobj/converters/pulse_instruction.py | 74 ++++++++++----------- qiskit/qobj/pulse_qobj.py | 18 ++--- qiskit/qobj/qasm_qobj.py | 18 ++--- qiskit/qpy/interface.py | 7 +- 5 files changed, 62 insertions(+), 66 deletions(-) diff --git a/qiskit/qobj/__init__.py b/qiskit/qobj/__init__.py index a770e3f874d1..edd6b0099003 100644 --- a/qiskit/qobj/__init__.py +++ b/qiskit/qobj/__init__.py @@ -56,8 +56,6 @@ PulseLibraryItem """ -import warnings - from qiskit.qobj.common import QobjExperimentHeader from qiskit.qobj.common import QobjHeader @@ -77,16 +75,13 @@ from qiskit.qobj.qasm_qobj import QasmQobjConfig from qiskit.qobj.qasm_qobj import QasmQobjExperimentConfig +from qiskit.utils.deprecation import deprecate_func + class Qobj(QasmQobj): """A backwards compat alias for QasmQobj.""" + @deprecate_func(additional_msg="Instead, use QasmQobj or PulseQobj", since="0.19.0") def __init__(self, qobj_id=None, config=None, experiments=None, header=None): """Initialize a Qobj object.""" - warnings.warn( - "qiskit.qobj.Qobj is deprecated use either QasmQobj or " - "PulseQobj depending on your application instead.", - DeprecationWarning, - stacklevel=2, - ) super().__init__(qobj_id=qobj_id, config=config, experiments=experiments, header=header) diff --git a/qiskit/qobj/converters/pulse_instruction.py b/qiskit/qobj/converters/pulse_instruction.py index 7b78ffdd9ac2..4ea888cc8a67 100644 --- a/qiskit/qobj/converters/pulse_instruction.py +++ b/qiskit/qobj/converters/pulse_instruction.py @@ -30,7 +30,7 @@ from qiskit.pulse.schedule import Schedule from qiskit.qobj import QobjMeasurementOption, PulseLibraryItem, PulseQobjInstruction from qiskit.qobj.utils import MeasLevel -from qiskit.utils.deprecation import deprecate_function +from qiskit.utils.deprecation import deprecate_func if sys.version_info >= (3, 8): from functools import singledispatchmethod @@ -506,64 +506,64 @@ def _convert_bundled_acquire( return self._qobj_model(**command_dict) - @deprecate_function( - "'convert_acquire' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_acquire(self, shift, instruction): return self._convert_instruction(instruction, shift) - @deprecate_function( - "'convert_bundled_acquires' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_bundled_acquires(self, shift, instructions_): return self._convert_bundled_acquire(instructions_, shift) - @deprecate_function( - "'convert_set_frequency' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_set_frequency(self, shift, instruction): return self._convert_instruction(instruction, shift) - @deprecate_function( - "'convert_shift_frequency' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_shift_frequency(self, shift, instruction): return self._convert_instruction(instruction, shift) - @deprecate_function( - "'convert_set_phase' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_set_phase(self, shift, instruction): return self._convert_instruction(instruction, shift) - @deprecate_function( - "'convert_shift_phase' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_shift_phase(self, shift, instruction): return self._convert_instruction(instruction, shift) - @deprecate_function( - "'convert_delay' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_delay(self, shift, instruction): return self._convert_instruction(instruction, shift) - @deprecate_function( - "'convert_play' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_play(self, shift, instruction): return self._convert_instruction(instruction, shift) - @deprecate_function( - "'convert_snapshot' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_snapshot(self, shift, instruction): @@ -959,8 +959,8 @@ def _convert_generic( "in Qiskit namespace. This instruction cannot be deserialized." ) - @deprecate_function( - "'convert_acquire' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_acquire(self, instruction): @@ -970,8 +970,8 @@ def convert_acquire(self, instruction): schedule.insert(t0, inst, inplace=True) return schedule - @deprecate_function( - "'convert_set_phase' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_set_phase(self, instruction): @@ -981,8 +981,8 @@ def convert_set_phase(self, instruction): schedule.insert(t0, inst, inplace=True) return schedule - @deprecate_function( - "'convert_shift_phase' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_shift_phase(self, instruction): @@ -992,8 +992,8 @@ def convert_shift_phase(self, instruction): schedule.insert(t0, inst, inplace=True) return schedule - @deprecate_function( - "'convert_set_frequency' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_set_frequency(self, instruction): @@ -1003,8 +1003,8 @@ def convert_set_frequency(self, instruction): schedule.insert(t0, inst, inplace=True) return schedule - @deprecate_function( - "'convert_shift_frequency' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_shift_frequency(self, instruction): @@ -1014,8 +1014,8 @@ def convert_shift_frequency(self, instruction): schedule.insert(t0, inst, inplace=True) return schedule - @deprecate_function( - "'convert_delay' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_delay(self, instruction): @@ -1025,16 +1025,16 @@ def convert_delay(self, instruction): schedule.insert(t0, inst, inplace=True) return schedule - @deprecate_function( - "'bind_pulse' has been deprecated. Instantiate the class with pulse library.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def bind_pulse(self, pulse): if pulse.name not in self._pulse_library: self._pulse_library[pulse.name] = pulse.samples - @deprecate_function( - "'convert_parametric' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_parametric(self, instruction): @@ -1044,8 +1044,8 @@ def convert_parametric(self, instruction): schedule.insert(t0, inst, inplace=True) return schedule - @deprecate_function( - "'convert_snapshot' has been deprecated. Instead, call converter instance directly.", + @deprecate_func( + additional_msg="Instead, call converter instance directory.", since="0.23.0", ) def convert_snapshot(self, instruction): diff --git a/qiskit/qobj/pulse_qobj.py b/qiskit/qobj/pulse_qobj.py index f14fa193c5a5..caa4d8738436 100644 --- a/qiskit/qobj/pulse_qobj.py +++ b/qiskit/qobj/pulse_qobj.py @@ -18,11 +18,12 @@ import copy import pprint from typing import Union, List -import warnings + import numpy from qiskit.qobj.common import QobjDictField from qiskit.qobj.common import QobjHeader from qiskit.qobj.common import QobjExperimentHeader +from qiskit.utils.deprecation import deprecate_arg class QobjMeasurementOption: @@ -282,6 +283,14 @@ def _to_complex(value: Union[List[float], complex]) -> complex: class PulseQobjConfig(QobjDictField): """A configuration for a Pulse Qobj.""" + @deprecate_arg( + "max_credits", + since="0.20.0", + additional_msg=( + "This argument has no effect on modern IBM Quantum systems, and no alternative is" + "necessary." + ), + ) def __init__( self, meas_level, @@ -344,13 +353,6 @@ def __init__( if max_credits is not None: self.max_credits = int(max_credits) - warnings.warn( - "The `max_credits` parameter is deprecated as of Qiskit Terra 0.20.0, " - "and will be removed in a future release. This parameter has no effect on " - "modern IBM Quantum systems, and no alternative is necessary.", - DeprecationWarning, - stacklevel=2, - ) if seed_simulator is not None: self.seed_simulator = int(seed_simulator) diff --git a/qiskit/qobj/qasm_qobj.py b/qiskit/qobj/qasm_qobj.py index 2afda7349e64..69422ace83d1 100644 --- a/qiskit/qobj/qasm_qobj.py +++ b/qiskit/qobj/qasm_qobj.py @@ -15,10 +15,10 @@ import copy import pprint from types import SimpleNamespace -import warnings from qiskit.circuit.parameterexpression import ParameterExpression from qiskit.qobj.pulse_qobj import PulseQobjInstruction, PulseLibraryItem from qiskit.qobj.common import QobjDictField, QobjHeader +from qiskit.utils.deprecation import deprecate_arg class QasmQobjInstruction: @@ -279,6 +279,14 @@ def __eq__(self, other): class QasmQobjConfig(SimpleNamespace): """A configuration for a QASM Qobj.""" + @deprecate_arg( + "max_credits", + since="0.20.0", + additional_msg=( + "This argument has no effect on modern IBM Quantum systems, and no alternative is" + "necessary." + ), + ) def __init__( self, shots=None, @@ -328,13 +336,7 @@ def __init__( if max_credits is not None: self.max_credits = int(max_credits) - warnings.warn( - "The `max_credits` parameter is deprecated as of Qiskit Terra 0.20.0, " - "and will be removed in a future release. This parameter has no effect on " - "modern IBM Quantum systems, and no alternative is necessary.", - DeprecationWarning, - stacklevel=2, - ) + if seed_simulator is not None: self.seed_simulator = int(seed_simulator) diff --git a/qiskit/qpy/interface.py b/qiskit/qpy/interface.py index b68db9bc6c50..a22ce5f20db3 100644 --- a/qiskit/qpy/interface.py +++ b/qiskit/qpy/interface.py @@ -25,7 +25,7 @@ from qiskit.qpy import formats, common, binary_io, type_keys from qiskit.qpy.exceptions import QpyError from qiskit.version import __version__ -from qiskit.utils.deprecation import deprecate_arguments +from qiskit.utils.deprecation import deprecate_arg # pylint: disable=invalid-name @@ -72,10 +72,7 @@ VERSION_PATTERN_REGEX = re.compile(VERSION_PATTERN, re.VERBOSE | re.IGNORECASE) -@deprecate_arguments( - {"circuits": "programs"}, - since="0.21.0", -) +@deprecate_arg("circuits", new_alias="programs", since="0.21.0") def dump( programs: Union[List[QPY_SUPPORTED_TYPES], QPY_SUPPORTED_TYPES], file_obj: BinaryIO,