Skip to content

Commit 27c42eb

Browse files
authored
Remove depreceated pasqal cloud emulator concept (#36)
1 parent 9fa5a5e commit 27c42eb

8 files changed

Lines changed: 28 additions & 31 deletions

File tree

qiskit_pasqal_provider/providers/abstract_base.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from qiskit.providers import BackendV2, JobStatus
1111
from qiskit.providers.jobstatus import JOB_FINAL_STATES
1212
from pasqal_cloud import SDK as PasqalSDK
13-
from pasqal_cloud.device import EmulatorType
13+
from pasqal_cloud.device import DeviceTypeName
1414
from pulser.backend.remote import JobParams, RemoteResults
1515
from pulser.register.register_layout import RegisterLayout
1616
from pulser_simulation.simresults import SimulationResults
@@ -61,7 +61,7 @@ class PasqalBackend(BackendV2, ABC):
6161
_backend_name: str | PasqalBackendType
6262
_version: str
6363
_executor: PasqalExecutor | PasqalSDK # pylint: disable=E0601
64-
_emulator: EmulatorType | None
64+
_device_type: DeviceTypeName | None = None
6565

6666
@property
6767
def backend_name(self) -> str | PasqalBackendType:
@@ -70,13 +70,13 @@ def backend_name(self) -> str | PasqalBackendType:
7070

7171
@property
7272
def executor(self) -> PasqalExecutor | PasqalSDK:
73-
"""Pasqal emulator or QPU instance"""
73+
"""Pasqal executor instance."""
7474
return self._executor
7575

7676
@property
77-
def emulator(self) -> EmulatorType | None:
78-
"""Emulator object"""
79-
return self._emulator
77+
def device_type(self) -> DeviceTypeName | None:
78+
"""Pasqal cloud device type for remote runs."""
79+
return self._device_type
8080

8181
@abstractmethod
8282
def run(

qiskit_pasqal_provider/providers/backends/emu_remote.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
"""Remote emulator backend"""
1+
"""Remote cloud backend."""
22

33
from copy import deepcopy
44
from typing import Any
55

6-
from pasqal_cloud.device import EmulatorType
6+
from pasqal_cloud.device import DeviceTypeName
77
from pasqal_cloud.job import CreateJob
88
from pulser.register import Register
99
from pulser_pasqal import PasqalCloud
@@ -22,12 +22,12 @@
2222

2323

2424
class EmuRemoteBackend(PasqalBackend):
25-
"""Remotely emulate backends. It gathers the remote backends."""
25+
"""Remote cloud backend for EMU device types."""
2626

2727
def __init__(
2828
self,
2929
backend_name: str,
30-
emulator: EmulatorType,
30+
device_type: DeviceTypeName,
3131
remote_config: RemoteConfig,
3232
target: PasqalTarget | None = None,
3333
):
@@ -36,7 +36,7 @@ def __init__(
3636
super().__init__()
3737

3838
self._backend_name = backend_name
39-
self._emulator = emulator
39+
self._device_type = device_type
4040
self._cloud = PasqalCloud(
4141
username=remote_config.username,
4242
password=remote_config.password,
@@ -88,7 +88,7 @@ def run(
8888
run_input
8989
)
9090

91-
if self._emulator == EmulatorType.EMU_FRESNEL:
91+
if self._device_type == DeviceTypeName.EMU_FRESNEL:
9292
# define automatic layout based on register (limited functionality)
9393
analog_register = analog_register.with_automatic_layout(
9494
device=self.target.device

qiskit_pasqal_provider/providers/backends/qpu.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ class QPUBackend(PasqalBackend):
2727

2828
_version: str = "0.1.0"
2929
_backend_name = PasqalBackendType.FRESNEL
30-
_emulator = None
3130

3231
def __init__(self, remote_config: RemoteConfig):
3332
"""initialize and instantiate PasqalCloud."""

qiskit_pasqal_provider/providers/backends/qutip.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ class QutipEmulatorBackend(PasqalBackend):
2626

2727
_version: str = "0.1.0"
2828
backend_name = PasqalBackendType.QUTIP
29-
_emulator = None
3029

3130
def __init__(self, target: PasqalTarget, **options: Any):
3231
"""

qiskit_pasqal_provider/providers/backends/remote.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from typing import Any
44

5-
from pasqal_cloud.device import EmulatorType
5+
from pasqal_cloud.device import DeviceTypeName
66
from qiskit import QuantumCircuit
77

88
from qiskit_pasqal_provider.providers.abstract_base import (
@@ -30,17 +30,17 @@ def __new__(
3030
match backend:
3131
case "remote-emu-free":
3232
return EmuRemoteBackend(
33-
backend, EmulatorType.EMU_FREE, remote_config, target
33+
backend, DeviceTypeName.EMU_FREE, remote_config, target
3434
)
3535

3636
case "remote-emu-mps":
3737
return EmuRemoteBackend(
38-
backend, EmulatorType.EMU_MPS, remote_config, target
38+
backend, DeviceTypeName.EMU_MPS, remote_config, target
3939
)
4040

4141
case "remote-emu-fresnel":
4242
return EmuRemoteBackend(
43-
backend, EmulatorType.EMU_FRESNEL, remote_config, target
43+
backend, DeviceTypeName.EMU_FRESNEL, remote_config, target
4444
)
4545

4646
case "fresnel":

qiskit_pasqal_provider/providers/jobs.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,11 @@ class PasqalLocalJob(PasqalJob):
2727

2828
def __init__(self, backend: PasqalBackend, job_id: str, **kwargs: Any):
2929
"""
30-
A Pasqal job for local emulators.
30+
A Pasqal job for local backends.
3131
3232
Args:
33-
backend: Pasqal backends (must be an emulator)
33+
backend: Pasqal backend instance
3434
job_id: job id of the execution
35-
emulator: which emulator to use
3635
**kwargs: extra arguments if needed
3736
"""
3837

@@ -65,7 +64,7 @@ def cancel(self) -> Any:
6564

6665

6766
class PasqalRemoteJob(PasqalJob):
68-
"""A Pasqal job for remote executors (emulator or QPU)."""
67+
"""A Pasqal job for remote cloud executors."""
6968

7069
_backend: PasqalBackend
7170
_result: PrimitiveResult[SamplerPubResult] | None
@@ -82,7 +81,7 @@ def __init__(
8281
**kwargs: Any,
8382
):
8483
"""
85-
A Pasqal job for remote executors (emulator or QPU).
84+
A Pasqal job for remote cloud executors.
8685
8786
Args:
8887
job_id: job id of the execution
@@ -140,8 +139,8 @@ def submit(self) -> None:
140139
self._status = JobStatus.RUNNING
141140

142141
create_batch_kwargs: dict[str, Any] = {"wait": self._wait}
143-
if self._backend.emulator is not None:
144-
create_batch_kwargs["emulator"] = self._backend.emulator
142+
if self._backend.device_type is not None:
143+
create_batch_kwargs["device_type"] = self._backend.device_type
145144

146145
self._batch = self._executor.create_batch(
147146
self._seq.to_abstract_repr(),

tests/conftest.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import pytest
1515

1616
from pasqal_cloud.batch import Batch
17-
from pasqal_cloud.device import EmulatorType, BaseConfig
17+
from pasqal_cloud.device import BaseConfig, DeviceTypeName
1818
from pasqal_cloud.job import CreateJob, Job
1919
from pasqal_cloud.utils.responses import PaginatedResponse
2020
from pasqal_cloud.utils.filters import JobFilters
@@ -214,7 +214,7 @@ def create_batch(
214214
_serialized_sequence: str,
215215
jobs: list[CreateJob],
216216
open: bool | None = None, # pylint: disable=redefined-builtin
217-
emulator: EmulatorType | None = None,
217+
device_type: DeviceTypeName | None = None,
218218
configuration: BaseConfig | None = None,
219219
wait: bool = False, # pylint: disable=unused-argument
220220
) -> Batch:
@@ -226,7 +226,7 @@ def create_batch(
226226
complete=bool(open),
227227
created_at="",
228228
updated_at="",
229-
device_type=emulator if emulator else "FRESNEL",
229+
device_type=(device_type or DeviceTypeName.FRESNEL).value,
230230
project_id="",
231231
user_id="",
232232
status="DONE",

tests/test_result.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ class MockBackend:
140140
def __init__(self, executor: MockSDK) -> None:
141141
self._executor = executor
142142
self.name = "MockBackend"
143-
self.emulator = None
143+
self.device_type = None
144144

145145
@property
146146
def executor(self) -> MockSDK:
@@ -199,7 +199,7 @@ class MockBackend:
199199
def __init__(self) -> None:
200200
self._executor = MockExecutor()
201201
self.name = "MockBackend"
202-
self.emulator = None
202+
self.device_type = None
203203

204204
@property
205205
def executor(self) -> MockExecutor:
@@ -257,7 +257,7 @@ class MockBackend:
257257
def __init__(self) -> None:
258258
self._executor = MockExecutor()
259259
self.name = "MockBackend"
260-
self.emulator = None
260+
self.device_type = None
261261

262262
@property
263263
def executor(self) -> MockExecutor:

0 commit comments

Comments
 (0)