From 2d3632fee633413bb1883e411d1a26f76fc54e92 Mon Sep 17 00:00:00 2001 From: Joonghoon Lee Date: Sun, 17 Sep 2023 05:27:02 +0900 Subject: [PATCH] Remove deprecated code in 0.19 (#10791) * remove-deprecated-code-in-0.19 * update docs * Apply suggestions from code review Co-authored-by: Luciano Bello * remove unused function --------- Co-authored-by: Luciano Bello --- qiskit/compiler/assembler.py | 4 +-- .../providers/models/backendconfiguration.py | 14 +--------- qiskit/qobj/__init__.py | 12 -------- qiskit/transpiler/instruction_durations.py | 28 +++---------------- qiskit/utils/quantum_instance.py | 4 +-- ...recated-code-in-0.19-a97ccfec62405b9a.yaml | 10 +++++++ 6 files changed, 19 insertions(+), 53 deletions(-) create mode 100644 releasenotes/notes/remove-deprecated-code-in-0.19-a97ccfec62405b9a.yaml diff --git a/qiskit/compiler/assembler.py b/qiskit/compiler/assembler.py index 9ebcb0783526..9ded481b2ecc 100644 --- a/qiskit/compiler/assembler.py +++ b/qiskit/compiler/assembler.py @@ -27,7 +27,7 @@ from qiskit.providers.backend import Backend from qiskit.pulse import Instruction, LoConfig, Schedule, ScheduleBlock from qiskit.pulse.channels import PulseChannel -from qiskit.qobj import Qobj, QobjHeader +from qiskit.qobj import QasmQobj, PulseQobj, QobjHeader from qiskit.qobj.utils import MeasLevel, MeasReturnType logger = logging.getLogger(__name__) @@ -74,7 +74,7 @@ def assemble( parametric_pulses: Optional[List[str]] = None, init_qubits: bool = True, **run_config: Dict, -) -> Qobj: +) -> Union[QasmQobj, PulseQobj]: """Assemble a list of circuits or pulse schedules into a ``Qobj``. This function serializes the payloads, which could be either circuits or schedules, diff --git a/qiskit/providers/models/backendconfiguration.py b/qiskit/providers/models/backendconfiguration.py index 75ee19c1eb35..87150bcf75ff 100644 --- a/qiskit/providers/models/backendconfiguration.py +++ b/qiskit/providers/models/backendconfiguration.py @@ -26,7 +26,6 @@ DriveChannel, MeasureChannel, ) -from qiskit.utils.deprecation import deprecate_arg class GateConfig: @@ -831,22 +830,13 @@ def acquire(self, qubit: int) -> AcquireChannel: raise BackendConfigurationError(f"Invalid index for {qubit}-qubit systems.") return AcquireChannel(qubit) - @deprecate_arg( - "channel", - since="0.19.0", - additional_msg=( - "Instead, use the ``qubits`` argument. This method will now return accurate " - "ControlChannels determined by qubit indices." - ), - ) - def control(self, qubits: Iterable[int] = None, channel: int = None) -> List[ControlChannel]: + def control(self, qubits: Iterable[int] = None) -> List[ControlChannel]: """ Return the secondary drive channel for the given qubit -- typically utilized for controlling multiqubit interactions. This channel is derived from other channels. Args: qubits: Tuple or list of qubits of the form `(control_qubit, target_qubit)`. - channel: Deprecated. Raises: BackendConfigurationError: If the ``qubits`` is not a part of the system or if @@ -855,8 +845,6 @@ def control(self, qubits: Iterable[int] = None, channel: int = None) -> List[Con Returns: List of control channels. """ - if channel is not None: - qubits = [channel] try: if isinstance(qubits, list): qubits = tuple(qubits) diff --git a/qiskit/qobj/__init__.py b/qiskit/qobj/__init__.py index edd6b0099003..5922fdf5dd8b 100644 --- a/qiskit/qobj/__init__.py +++ b/qiskit/qobj/__init__.py @@ -23,7 +23,6 @@ .. autosummary:: :toctree: ../stubs/ - Qobj QobjExperimentHeader QobjHeader @@ -74,14 +73,3 @@ from qiskit.qobj.qasm_qobj import QasmQobjExperiment 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.""" - super().__init__(qobj_id=qobj_id, config=config, experiments=experiments, header=header) diff --git a/qiskit/transpiler/instruction_durations.py b/qiskit/transpiler/instruction_durations.py index d1611840a040..fc9186a8790a 100644 --- a/qiskit/transpiler/instruction_durations.py +++ b/qiskit/transpiler/instruction_durations.py @@ -16,20 +16,13 @@ import qiskit.circuit from qiskit.circuit import Barrier, Delay -from qiskit.circuit import Instruction, Qubit, ParameterExpression +from qiskit.circuit import Instruction, ParameterExpression from qiskit.circuit.duration import duration_in_dt from qiskit.providers import Backend from qiskit.transpiler.exceptions import TranspilerError -from qiskit.utils.deprecation import deprecate_arg from qiskit.utils.units import apply_prefix -def _is_deprecated_qubits_argument(qubits: Union[int, list[int], Qubit, list[Qubit]]) -> bool: - if isinstance(qubits, (int, Qubit)): - qubits = [qubits] - return isinstance(qubits[0], Qubit) - - class InstructionDurations: """Helper class to provide durations of instructions for scheduling. @@ -130,7 +123,6 @@ def update(self, inst_durations: "InstructionDurationsType" | None, dt: float = ) else: for i, items in enumerate(inst_durations): - if not isinstance(items[-1], str): items = (*items, "dt") # set default unit @@ -170,19 +162,10 @@ def update(self, inst_durations: "InstructionDurationsType" | None, dt: float = return self - @deprecate_arg( - "qubits", - deprecation_description=( - "Using a Qubit or List[Qubit] for the ``qubits`` argument to InstructionDurations.get()" - ), - additional_msg="Instead, use an integer for the qubit index.", - since="0.19.0", - predicate=_is_deprecated_qubits_argument, - ) def get( self, inst: str | qiskit.circuit.Instruction, - qubits: int | list[int] | Qubit | list[Qubit] | list[int | Qubit], + qubits: int | list[int], unit: str = "dt", parameters: list[float] | None = None, ) -> float: @@ -192,7 +175,7 @@ def get( Args: inst: An instruction or its name to be queried. - qubits: Qubits or its indices that the instruction acts on. + qubits: Qubit indices that the instruction acts on. unit: The unit of duration to be returned. It must be 's' or 'dt'. parameters: The value of the parameters of the desired instruction. @@ -212,12 +195,9 @@ def get( else: inst_name = inst - if isinstance(qubits, (int, Qubit)): + if isinstance(qubits, int): qubits = [qubits] - if isinstance(qubits[0], Qubit): - qubits = [q.index for q in qubits] - try: return self._get(inst_name, qubits, unit, parameters) except TranspilerError as ex: diff --git a/qiskit/utils/quantum_instance.py b/qiskit/utils/quantum_instance.py index a4bbb76e1b00..94c1bed535d4 100644 --- a/qiskit/utils/quantum_instance.py +++ b/qiskit/utils/quantum_instance.py @@ -21,7 +21,7 @@ import numpy as np -from qiskit.qobj import Qobj +from qiskit.qobj import QasmQobj, PulseQobj from qiskit.utils import circuit_utils from qiskit.exceptions import QiskitError from qiskit.utils.backend_utils import ( @@ -451,7 +451,7 @@ def transpile(self, circuits, pass_manager=None): return transpiled_circuits - def assemble(self, circuits) -> Qobj: + def assemble(self, circuits) -> Union[QasmQobj, PulseQobj]: """assemble circuits""" # pylint: disable=cyclic-import from qiskit import compiler diff --git a/releasenotes/notes/remove-deprecated-code-in-0.19-a97ccfec62405b9a.yaml b/releasenotes/notes/remove-deprecated-code-in-0.19-a97ccfec62405b9a.yaml new file mode 100644 index 000000000000..eb62402ab3c4 --- /dev/null +++ b/releasenotes/notes/remove-deprecated-code-in-0.19-a97ccfec62405b9a.yaml @@ -0,0 +1,10 @@ +--- +upgrade: + - | + The argument ``qubits`` in the method :meth:`qiskit.transpiler.instruction_durations.InstructionDurations.get`, does not accept :class:`.Qubit` (or a list of them) any more. This functionality was deprecated in Qiskit 0.33 (with Terra 0.19), released on Dec 2021. Instead, use an integer for the qubit indices. + + - | + The argument ``channel`` in the method :meth:`qiskit.providers.models.backendconfiguration.PulseBackendConfiguration.control` is removed. It was deprecated in Qiskit 0.33 (with Terra 0.19), released on Dec 2021. Instead use the ``qubits`` argument. + + - | + The class ``qiskit.qobj.Qobj`` is removed. It was deprecated in Qiskit 0.33 (with Terra 0.19), released on Dec 2021. Instead, use :class:`qiskit.qobj.QasmQobj` or :class:`qiskit.qobj.PulseQobj`. \ No newline at end of file