Skip to content
Closed
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
12 changes: 7 additions & 5 deletions azure-quantum/azure/quantum/qiskit/backends/backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

logger = logging.getLogger(__name__)

from typing import Any, Dict, Tuple, Union, List, Optional
from typing import TYPE_CHECKING, Any, Dict, Union, List, Optional
from azure.quantum.version import __version__
from azure.quantum.qiskit.job import (
MICROSOFT_OUTPUT_DATA_FORMAT,
Expand All @@ -20,11 +20,13 @@
from abc import abstractmethod
from azure.quantum.job.session import SessionHost

if TYPE_CHECKING:
from azure.quantum.qiskit import AzureQuantumProvider

try:
from qiskit import QuantumCircuit
from qiskit.providers import BackendV1 as Backend
from qiskit.providers import Options
from qiskit.providers import Provider
from qiskit.providers.models import BackendConfiguration
from qiskit.qobj import QasmQobj, PulseQobj
import pyqir as pyqir
Expand Down Expand Up @@ -81,7 +83,7 @@ class AzureBackendBase(Backend, SessionHost):
def __init__(
self,
configuration: BackendConfiguration,
provider: Provider = None,
provider: "AzureQuantumProvider" = None,
**fields
):
super().__init__(configuration, provider, **fields)
Expand Down Expand Up @@ -304,7 +306,7 @@ def _get_azure_provider_id(self) -> str:
class AzureQirBackend(AzureBackendBase):
@abstractmethod
def __init__(
self, configuration: BackendConfiguration, provider: Provider = None, **fields
self, configuration: BackendConfiguration, provider: "AzureQuantumProvider" = None, **fields
):
super().__init__(configuration, provider, **fields)

Expand Down Expand Up @@ -528,7 +530,7 @@ class AzureBackend(AzureBackendBase):

@abstractmethod
def __init__(
self, configuration: BackendConfiguration, provider: Provider = None, **fields
self, configuration: BackendConfiguration, provider: "AzureQuantumProvider" = None, **fields
):
super().__init__(configuration, provider, **fields)

Expand Down
6 changes: 3 additions & 3 deletions azure-quantum/azure/quantum/qiskit/backends/ionq.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
)

from qiskit.providers.models import BackendConfiguration
from qiskit.providers import Options, Provider
from qiskit.providers import Options

from qiskit_ionq.helpers import (
GATESET_MAP,
Expand Down Expand Up @@ -57,7 +57,7 @@ class IonQQirBackendBase(AzureQirBackend):

@abstractmethod
def __init__(
self, configuration: BackendConfiguration, provider: Provider = None, **fields
self, configuration: BackendConfiguration, provider: "AzureQuantumProvider" = None, **fields
):
super().__init__(configuration, provider, **fields)

Expand Down Expand Up @@ -201,7 +201,7 @@ class IonQBackend(AzureBackend):

@abstractmethod
def __init__(
self, configuration: BackendConfiguration, provider: Provider = None, **fields
self, configuration: BackendConfiguration, provider: "AzureQuantumProvider" = None, **fields
):
super().__init__(configuration, provider, **fields)

Expand Down
4 changes: 2 additions & 2 deletions azure-quantum/azure/quantum/qiskit/backends/qci.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
)

from qiskit.providers.models import BackendConfiguration
from qiskit.providers import Options, Provider
from qiskit.providers import Options
from qsharp import TargetProfile


Expand All @@ -35,7 +35,7 @@ class QCIBackend(AzureQirBackend):

@abstractmethod
def __init__(
self, configuration: BackendConfiguration, provider: Provider = None, **fields
self, configuration: BackendConfiguration, provider: "AzureQuantumProvider" = None, **fields
):
super().__init__(configuration, provider, **fields)

Expand Down
11 changes: 6 additions & 5 deletions azure-quantum/azure/quantum/qiskit/backends/quantinuum.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@
# Licensed under the MIT License.
##

from typing import Dict, List, Union
from azure.quantum.qiskit.job import AzureQuantumJob
from typing import TYPE_CHECKING, Dict
from azure.quantum.version import __version__
import warnings

Expand All @@ -13,13 +12,15 @@
from qiskit import QuantumCircuit
from qiskit.providers.models import BackendConfiguration
from qiskit.providers import Options
from qiskit.providers import Provider
from qiskit.qasm2 import dumps
from qsharp import TargetProfile
import logging

logger = logging.getLogger(__name__)

if TYPE_CHECKING:
from azure.quantum.qiskit import AzureQuantumProvider

__all__ = [
"QuantinuumSyntaxCheckerBackend",
"QuantinuumEmulatorBackend",
Expand Down Expand Up @@ -72,7 +73,7 @@ class QuantinuumQirBackendBase(AzureQirBackend):

@abstractmethod
def __init__(
self, configuration: BackendConfiguration, provider: Provider = None, **fields
self, configuration: BackendConfiguration, provider: "AzureQuantumProvider" = None, **fields
):
super().__init__(configuration, provider, **fields)

Expand Down Expand Up @@ -216,7 +217,7 @@ class QuantinuumBackend(AzureBackend):

@abstractmethod
def __init__(
self, configuration: BackendConfiguration, provider: Provider = None, **fields
self, configuration: BackendConfiguration, provider: "AzureQuantumProvider" = None, **fields
):
super().__init__(configuration, provider, **fields)

Expand Down
4 changes: 2 additions & 2 deletions azure-quantum/azure/quantum/qiskit/backends/rigetti.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from .backend import AzureQirBackend

from qiskit.providers.models import BackendConfiguration
from qiskit.providers import Options, Provider
from qiskit.providers import Options
from qsharp import TargetProfile

if TYPE_CHECKING:
Expand All @@ -32,7 +32,7 @@ class RigettiBackend(AzureQirBackend):

@abstractmethod
def __init__(
self, configuration: BackendConfiguration, provider: Provider = None, **fields
self, configuration: BackendConfiguration, provider: "AzureQuantumProvider" = None, **fields
):
super().__init__(configuration, provider, **fields)

Expand Down
11 changes: 9 additions & 2 deletions azure-quantum/azure/quantum/qiskit/provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@

import warnings
import inspect
from itertools import groupby
from typing import Dict, List, Optional, Tuple, Type

from abc import ABC
from azure.quantum import Workspace

try:
Expand All @@ -26,7 +27,7 @@

QISKIT_USER_AGENT = "azure-quantum-qiskit"

class AzureQuantumProvider(Provider):
class AzureQuantumProvider(ABC):

def __init__(self, workspace: Optional[Workspace]=None, **kwargs):
"""Class for interfacing with the Azure Quantum service
Expand Down Expand Up @@ -281,3 +282,9 @@ def _filter_backends(
backends = list(filter(filters, backends))

return backends

def __eq__(self, other):
"""
Equality comparison.
"""
return type(self).__name__ == type(other).__name__
2 changes: 1 addition & 1 deletion azure-quantum/tests/unit/test_session.py
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,7 @@ def _azure_config(self) -> Dict[str, str]:

def __init__(self,
name: str,
provider: AzureQuantumProvider,
provider: "AzureQuantumProvider",
**kwargs):
super().__init__(name=name, provider=provider)
self._provider_id = ECHO_PROVIDER_NAME
Expand Down
Loading