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 <bel@zurich.ibm.com>

* remove unused function

---------

Co-authored-by: Luciano Bello <bel@zurich.ibm.com>
This commit is contained in:
Joonghoon Lee 2023-09-17 05:27:02 +09:00 committed by GitHub
parent 4e49a56945
commit 2d3632fee6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 19 additions and 53 deletions

View File

@ -27,7 +27,7 @@ from qiskit.exceptions import QiskitError
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,

View File

@ -26,7 +26,6 @@ from qiskit.pulse.channels import (
DriveChannel,
MeasureChannel,
)
from qiskit.utils.deprecation import deprecate_arg
class GateConfig:
@ -831,22 +830,13 @@ class PulseBackendConfiguration(QasmBackendConfiguration):
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 @@ class PulseBackendConfiguration(QasmBackendConfiguration):
Returns:
List of control channels.
"""
if channel is not None:
qubits = [channel]
try:
if isinstance(qubits, list):
qubits = tuple(qubits)

View File

@ -23,7 +23,6 @@ Base
.. autosummary::
:toctree: ../stubs/
Qobj
QobjExperimentHeader
QobjHeader
@ -74,14 +73,3 @@ from qiskit.qobj.qasm_qobj import QasmQobjInstruction
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)

View File

@ -16,20 +16,13 @@ from typing import Optional, List, Tuple, Union, Iterable
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 @@ class InstructionDurations:
)
else:
for i, items in enumerate(inst_durations):
if not isinstance(items[-1], str):
items = (*items, "dt") # set default unit
@ -170,19 +162,10 @@ class InstructionDurations:
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 @@ class InstructionDurations:
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 @@ class InstructionDurations:
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:

View File

@ -21,7 +21,7 @@ import warnings
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 @@ class QuantumInstance:
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

View File

@ -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`.