Skip to content
Merged
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
6 changes: 3 additions & 3 deletions qiskit_ibm_runtime/fake_provider/fake_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@
QasmBackendConfiguration,
PulseBackendConfiguration,
)
from ..models.exceptions import (
BackendPropertyError,
)

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -493,9 +496,6 @@ def _get_noise_model_from_backend_v2( # type: ignore
"""

from qiskit.circuit import Delay # pylint: disable=import-outside-toplevel
from qiskit.providers.exceptions import ( # pylint: disable=import-outside-toplevel
BackendPropertyError,
)
from qiskit_aer.noise import NoiseModel # pylint: disable=import-outside-toplevel
from qiskit_aer.noise.device.models import ( # pylint: disable=import-outside-toplevel
_excited_population,
Expand Down
11 changes: 8 additions & 3 deletions qiskit_ibm_runtime/ibm_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,9 @@
from typing import Iterable, Union, Optional, Any, List
from datetime import datetime as python_datetime
from copy import deepcopy
from packaging.version import Version

from qiskit import QuantumCircuit
from qiskit.qobj.utils import MeasLevel, MeasReturnType

from qiskit import QuantumCircuit, __version__ as qiskit_version
from qiskit.providers.backend import BackendV2 as Backend
from qiskit.providers.options import Options
from qiskit.pulse.channels import (
Expand Down Expand Up @@ -56,6 +55,12 @@
)
from .utils import local_to_utc

if Version(qiskit_version) == "2":
from qiskit.result import MeasLevel, MeasReturnType
else:
from qiskit.qobj.utils import MeasLevel, MeasReturnType
Comment on lines +58 to +61
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just tried this out and it doesn't work for me 😞 Version('2.0.0.dev0+9717823') == "2" is False. Maybe something like Version(qiskit_version).major >= 2?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah right, I'll fix that in a separate PR



logger = logging.getLogger(__name__)

QOBJRUNNERPROGRAMID = "circuit-runner"
Expand Down
2 changes: 1 addition & 1 deletion qiskit_ibm_runtime/models/backend_configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
from collections import defaultdict

from qiskit.exceptions import QiskitError
from qiskit.providers.exceptions import BackendConfigurationError
from qiskit.pulse.channels import (
AcquireChannel,
Channel,
Expand All @@ -29,6 +28,7 @@
MeasureChannel,
)

from .exceptions import BackendConfigurationError

GateConfigT = TypeVar("GateConfigT", bound="GateConfig")
UchannelLOT = TypeVar("UchannelLOT", bound="UchannelLO") # pylint: disable=[invalid-name]
Expand Down
3 changes: 2 additions & 1 deletion qiskit_ibm_runtime/models/backend_properties.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,10 @@
from typing import Any, Iterable, Tuple, Union, Dict, TypeVar, Type, List
import dateutil.parser

from qiskit.providers.exceptions import BackendPropertyError
from qiskit.utils.units import apply_prefix

from .exceptions import BackendPropertyError

PropertyT = Tuple[Any, datetime.datetime]
NduvT = TypeVar("NduvT", bound="Nduv")
GatePropertiesT = TypeVar("GatePropertiesT", bound="GateProperties")
Expand Down
27 changes: 27 additions & 0 deletions qiskit_ibm_runtime/models/exceptions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# This code is part of Qiskit.
#
# (C) Copyright IBM 2025.
#
# This code is licensed under the Apache License, Version 2.0. You may
# obtain a copy of this license in the LICENSE.txt file in the root directory
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
#
# Any modifications or derivative works of this code must retain this
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.

"""Exceptions for errors raised while handling Backends and Jobs."""

from qiskit.exceptions import QiskitError


class BackendPropertyError(QiskitError):
"""Base class for errors raised while looking for a backend property."""

pass


class BackendConfigurationError(QiskitError):
"""Base class for errors raised by the BackendConfiguration."""

pass
2 changes: 1 addition & 1 deletion qiskit_ibm_runtime/utils/backend_converter.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@
from qiskit.circuit.library.standard_gates import get_standard_gate_name_mapping
from qiskit.circuit.parameter import Parameter
from qiskit.providers.backend import QubitProperties
from qiskit.providers.exceptions import BackendPropertyError
from qiskit.transpiler.target import InstructionProperties, Target

from ..models import BackendConfiguration, BackendProperties, PulseDefaults
from ..models.exceptions import BackendPropertyError

# is_fractional_gate used to be defined in this module and might be referenced
# from here externally
Expand Down
10 changes: 8 additions & 2 deletions qiskit_ibm_runtime/utils/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,14 @@

from dataclasses import asdict, dataclass
from typing import Dict, Union, Any, Optional
from qiskit.circuit import QuantumCircuit
from qiskit.qobj.utils import MeasLevel, MeasReturnType
from packaging.version import Version

from qiskit import QuantumCircuit, __version__ as qiskit_version

if Version(qiskit_version) == "2":
from qiskit.result import MeasLevel, MeasReturnType
else:
from qiskit.qobj.utils import MeasLevel, MeasReturnType


@dataclass
Expand Down