mirror of https://github.com/Qiskit/qiskit.git
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:
parent
4e49a56945
commit
2d3632fee6
|
@ -27,7 +27,7 @@ from qiskit.exceptions import QiskitError
|
||||||
from qiskit.providers.backend import Backend
|
from qiskit.providers.backend import Backend
|
||||||
from qiskit.pulse import Instruction, LoConfig, Schedule, ScheduleBlock
|
from qiskit.pulse import Instruction, LoConfig, Schedule, ScheduleBlock
|
||||||
from qiskit.pulse.channels import PulseChannel
|
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
|
from qiskit.qobj.utils import MeasLevel, MeasReturnType
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
@ -74,7 +74,7 @@ def assemble(
|
||||||
parametric_pulses: Optional[List[str]] = None,
|
parametric_pulses: Optional[List[str]] = None,
|
||||||
init_qubits: bool = True,
|
init_qubits: bool = True,
|
||||||
**run_config: Dict,
|
**run_config: Dict,
|
||||||
) -> Qobj:
|
) -> Union[QasmQobj, PulseQobj]:
|
||||||
"""Assemble a list of circuits or pulse schedules into a ``Qobj``.
|
"""Assemble a list of circuits or pulse schedules into a ``Qobj``.
|
||||||
|
|
||||||
This function serializes the payloads, which could be either circuits or schedules,
|
This function serializes the payloads, which could be either circuits or schedules,
|
||||||
|
|
|
@ -26,7 +26,6 @@ from qiskit.pulse.channels import (
|
||||||
DriveChannel,
|
DriveChannel,
|
||||||
MeasureChannel,
|
MeasureChannel,
|
||||||
)
|
)
|
||||||
from qiskit.utils.deprecation import deprecate_arg
|
|
||||||
|
|
||||||
|
|
||||||
class GateConfig:
|
class GateConfig:
|
||||||
|
@ -831,22 +830,13 @@ class PulseBackendConfiguration(QasmBackendConfiguration):
|
||||||
raise BackendConfigurationError(f"Invalid index for {qubit}-qubit systems.")
|
raise BackendConfigurationError(f"Invalid index for {qubit}-qubit systems.")
|
||||||
return AcquireChannel(qubit)
|
return AcquireChannel(qubit)
|
||||||
|
|
||||||
@deprecate_arg(
|
def control(self, qubits: Iterable[int] = None) -> List[ControlChannel]:
|
||||||
"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]:
|
|
||||||
"""
|
"""
|
||||||
Return the secondary drive channel for the given qubit -- typically utilized for
|
Return the secondary drive channel for the given qubit -- typically utilized for
|
||||||
controlling multiqubit interactions. This channel is derived from other channels.
|
controlling multiqubit interactions. This channel is derived from other channels.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
qubits: Tuple or list of qubits of the form `(control_qubit, target_qubit)`.
|
qubits: Tuple or list of qubits of the form `(control_qubit, target_qubit)`.
|
||||||
channel: Deprecated.
|
|
||||||
|
|
||||||
Raises:
|
Raises:
|
||||||
BackendConfigurationError: If the ``qubits`` is not a part of the system or if
|
BackendConfigurationError: If the ``qubits`` is not a part of the system or if
|
||||||
|
@ -855,8 +845,6 @@ class PulseBackendConfiguration(QasmBackendConfiguration):
|
||||||
Returns:
|
Returns:
|
||||||
List of control channels.
|
List of control channels.
|
||||||
"""
|
"""
|
||||||
if channel is not None:
|
|
||||||
qubits = [channel]
|
|
||||||
try:
|
try:
|
||||||
if isinstance(qubits, list):
|
if isinstance(qubits, list):
|
||||||
qubits = tuple(qubits)
|
qubits = tuple(qubits)
|
||||||
|
|
|
@ -23,7 +23,6 @@ Base
|
||||||
.. autosummary::
|
.. autosummary::
|
||||||
:toctree: ../stubs/
|
:toctree: ../stubs/
|
||||||
|
|
||||||
Qobj
|
|
||||||
QobjExperimentHeader
|
QobjExperimentHeader
|
||||||
QobjHeader
|
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 QasmQobjExperiment
|
||||||
from qiskit.qobj.qasm_qobj import QasmQobjConfig
|
from qiskit.qobj.qasm_qobj import QasmQobjConfig
|
||||||
from qiskit.qobj.qasm_qobj import QasmQobjExperimentConfig
|
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)
|
|
||||||
|
|
|
@ -16,20 +16,13 @@ from typing import Optional, List, Tuple, Union, Iterable
|
||||||
|
|
||||||
import qiskit.circuit
|
import qiskit.circuit
|
||||||
from qiskit.circuit import Barrier, Delay
|
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.circuit.duration import duration_in_dt
|
||||||
from qiskit.providers import Backend
|
from qiskit.providers import Backend
|
||||||
from qiskit.transpiler.exceptions import TranspilerError
|
from qiskit.transpiler.exceptions import TranspilerError
|
||||||
from qiskit.utils.deprecation import deprecate_arg
|
|
||||||
from qiskit.utils.units import apply_prefix
|
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:
|
class InstructionDurations:
|
||||||
"""Helper class to provide durations of instructions for scheduling.
|
"""Helper class to provide durations of instructions for scheduling.
|
||||||
|
|
||||||
|
@ -130,7 +123,6 @@ class InstructionDurations:
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
for i, items in enumerate(inst_durations):
|
for i, items in enumerate(inst_durations):
|
||||||
|
|
||||||
if not isinstance(items[-1], str):
|
if not isinstance(items[-1], str):
|
||||||
items = (*items, "dt") # set default unit
|
items = (*items, "dt") # set default unit
|
||||||
|
|
||||||
|
@ -170,19 +162,10 @@ class InstructionDurations:
|
||||||
|
|
||||||
return self
|
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(
|
def get(
|
||||||
self,
|
self,
|
||||||
inst: str | qiskit.circuit.Instruction,
|
inst: str | qiskit.circuit.Instruction,
|
||||||
qubits: int | list[int] | Qubit | list[Qubit] | list[int | Qubit],
|
qubits: int | list[int],
|
||||||
unit: str = "dt",
|
unit: str = "dt",
|
||||||
parameters: list[float] | None = None,
|
parameters: list[float] | None = None,
|
||||||
) -> float:
|
) -> float:
|
||||||
|
@ -192,7 +175,7 @@ class InstructionDurations:
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
inst: An instruction or its name to be queried.
|
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'.
|
unit: The unit of duration to be returned. It must be 's' or 'dt'.
|
||||||
parameters: The value of the parameters of the desired instruction.
|
parameters: The value of the parameters of the desired instruction.
|
||||||
|
|
||||||
|
@ -212,12 +195,9 @@ class InstructionDurations:
|
||||||
else:
|
else:
|
||||||
inst_name = inst
|
inst_name = inst
|
||||||
|
|
||||||
if isinstance(qubits, (int, Qubit)):
|
if isinstance(qubits, int):
|
||||||
qubits = [qubits]
|
qubits = [qubits]
|
||||||
|
|
||||||
if isinstance(qubits[0], Qubit):
|
|
||||||
qubits = [q.index for q in qubits]
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return self._get(inst_name, qubits, unit, parameters)
|
return self._get(inst_name, qubits, unit, parameters)
|
||||||
except TranspilerError as ex:
|
except TranspilerError as ex:
|
||||||
|
|
|
@ -21,7 +21,7 @@ import warnings
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
from qiskit.qobj import Qobj
|
from qiskit.qobj import QasmQobj, PulseQobj
|
||||||
from qiskit.utils import circuit_utils
|
from qiskit.utils import circuit_utils
|
||||||
from qiskit.exceptions import QiskitError
|
from qiskit.exceptions import QiskitError
|
||||||
from qiskit.utils.backend_utils import (
|
from qiskit.utils.backend_utils import (
|
||||||
|
@ -451,7 +451,7 @@ class QuantumInstance:
|
||||||
|
|
||||||
return transpiled_circuits
|
return transpiled_circuits
|
||||||
|
|
||||||
def assemble(self, circuits) -> Qobj:
|
def assemble(self, circuits) -> Union[QasmQobj, PulseQobj]:
|
||||||
"""assemble circuits"""
|
"""assemble circuits"""
|
||||||
# pylint: disable=cyclic-import
|
# pylint: disable=cyclic-import
|
||||||
from qiskit import compiler
|
from qiskit import compiler
|
||||||
|
|
|
@ -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`.
|
Loading…
Reference in New Issue