iqm-client 29.9.0__tar.gz → 29.11.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {iqm_client-29.9.0 → iqm_client-29.11.0}/CHANGELOG.rst +16 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/PKG-INFO +1 -1
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/iqm_sampler.py +2 -2
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/iqm_client/iqm_client.py +34 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/iqm_client/models.py +24 -2
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/iqm_client/validation.py +6 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/iqm_job.py +9 -3
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/iqm_provider.py +3 -2
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm_client.egg-info/PKG-INFO +1 -1
- iqm_client-29.11.0/version.txt +1 -0
- iqm_client-29.9.0/version.txt +0 -1
- {iqm_client-29.9.0 → iqm_client-29.11.0}/AUTHORS.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/CHANGELOG_cirq-iqm.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/CHANGELOG_cortex-cli.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/CHANGELOG_qiskit-iqm.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/INTEGRATION_GUIDE.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/LICENSE.txt +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/MANIFEST.in +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/README.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/docbuild +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/docs/API.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/docs/_static/images/favicon.ico +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/docs/_static/images/logo.png +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/docs/_templates/autosummary-class-template.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/docs/_templates/autosummary-module-template.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/docs/authors.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/docs/changelog.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/docs/conf.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/docs/index.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/docs/integration_guide.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/docs/license.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/docs/readme.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/docs/user_guide_cirq.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/docs/user_guide_cli.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/docs/user_guide_qiskit.rst +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/pyproject.toml +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/requirements/base.in +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/requirements/base.txt +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/requirements/cirq.in +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/requirements/cirq.txt +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/requirements/cli.in +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/requirements/cli.txt +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/requirements/qiskit.in +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/requirements/qiskit.txt +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/setup.cfg +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/setup.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/__init__.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/devices/__init__.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/devices/adonis.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/devices/aphrodite.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/devices/apollo.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/devices/iqm_device.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/devices/iqm_device_metadata.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/examples/demo_adonis.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/examples/demo_apollo.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/examples/demo_common.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/examples/demo_iqm_execution.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/examples/usage.ipynb +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/extended_qasm_parser.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/iqm_gates.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/optimizers.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/py.typed +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/serialize.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/cirq_iqm/transpiler.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/iqm_client/__init__.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/iqm_client/api.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/iqm_client/authentication.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/iqm_client/cli/__init__.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/iqm_client/cli/auth.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/iqm_client/cli/cli.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/iqm_client/cli/models.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/iqm_client/cli/token_manager.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/iqm_client/errors.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/iqm_client/py.typed +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/iqm_client/transpile.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/iqm_client/util.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/__init__.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/examples/__init__.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/examples/bell_measure.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/examples/resonance_example.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/examples/transpile_example.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/fake_backends/__init__.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/fake_backends/fake_adonis.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/fake_backends/fake_aphrodite.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/fake_backends/fake_apollo.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/fake_backends/fake_deneb.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/fake_backends/fake_garnet.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/fake_backends/iqm_fake_backend.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/iqm_backend.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/iqm_circuit.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/iqm_circuit_validation.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/iqm_move_layout.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/iqm_naive_move_pass.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/iqm_transpilation.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/move_gate.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/py.typed +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/qiskit_to_iqm.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/transpiler_plugins.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm_client.egg-info/SOURCES.txt +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm_client.egg-info/dependency_links.txt +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm_client.egg-info/entry_points.txt +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm_client.egg-info/requires.txt +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm_client.egg-info/top_level.txt +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/test +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/tests/__init__.py +0 -0
- {iqm_client-29.9.0 → iqm_client-29.11.0}/tests/conftest.py +0 -0
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
Changelog
|
|
3
3
|
=========
|
|
4
4
|
|
|
5
|
+
Version 29.11.0 (2025-08-07)
|
|
6
|
+
============================
|
|
7
|
+
|
|
8
|
+
Features
|
|
9
|
+
--------
|
|
10
|
+
|
|
11
|
+
- Added :meth:`IQMClient.get_structured_metrics` for obtaining quality metric information.
|
|
12
|
+
|
|
13
|
+
Version 29.10.0 (2025-07-31)
|
|
14
|
+
============================
|
|
15
|
+
|
|
16
|
+
Features
|
|
17
|
+
--------
|
|
18
|
+
|
|
19
|
+
- Support QIR programs in iqm-client
|
|
20
|
+
|
|
5
21
|
Version 29.9.0 (2025-07-29)
|
|
6
22
|
===========================
|
|
7
23
|
|
|
@@ -25,7 +25,7 @@ import warnings
|
|
|
25
25
|
import cirq
|
|
26
26
|
from iqm.cirq_iqm.devices.iqm_device import IQMDevice, IQMDeviceMetadata
|
|
27
27
|
from iqm.cirq_iqm.serialize import serialize_circuit
|
|
28
|
-
from iqm.iqm_client import CircuitCompilationOptions, IQMClient, JobAbortionError, RunRequest
|
|
28
|
+
from iqm.iqm_client import CircuitBatch, CircuitCompilationOptions, IQMClient, JobAbortionError, RunRequest
|
|
29
29
|
import numpy as np
|
|
30
30
|
|
|
31
31
|
|
|
@@ -151,7 +151,7 @@ class IQMSampler(cirq.work.Sampler):
|
|
|
151
151
|
if isinstance(programs, cirq.Circuit):
|
|
152
152
|
programs, _ = self._resolve_parameters(programs, params)
|
|
153
153
|
|
|
154
|
-
serialized_circuits = [serialize_circuit(circuit) for circuit in programs]
|
|
154
|
+
serialized_circuits: CircuitBatch = [serialize_circuit(circuit) for circuit in programs]
|
|
155
155
|
|
|
156
156
|
if not self._client:
|
|
157
157
|
raise RuntimeError("Cannot submit circuits since session to IQM client has been closed.")
|
|
@@ -45,6 +45,7 @@ from iqm.iqm_client.models import (
|
|
|
45
45
|
ClientLibrary,
|
|
46
46
|
ClientLibraryDict,
|
|
47
47
|
DynamicQuantumArchitecture,
|
|
48
|
+
QIRCode,
|
|
48
49
|
QualityMetricSet,
|
|
49
50
|
QuantumArchitectureSpecification,
|
|
50
51
|
RunCounts,
|
|
@@ -64,6 +65,7 @@ import requests
|
|
|
64
65
|
from requests import HTTPError
|
|
65
66
|
|
|
66
67
|
from iqm.station_control.client.iqm_server.iqm_server_client import IqmServerClient
|
|
68
|
+
from iqm.station_control.client.qon import ObservationFinder
|
|
67
69
|
from iqm.station_control.client.utils import init_station_control
|
|
68
70
|
from iqm.station_control.interface.models import ObservationLite
|
|
69
71
|
from iqm.station_control.interface.station_control import StationControlInterface
|
|
@@ -232,6 +234,8 @@ class IQMClient:
|
|
|
232
234
|
|
|
233
235
|
for i, circuit in enumerate(circuits):
|
|
234
236
|
try:
|
|
237
|
+
if isinstance(circuit, (QIRCode)):
|
|
238
|
+
continue
|
|
235
239
|
# validate the circuit against the static information in iqm.iqm_client.models._SUPPORTED_OPERATIONS
|
|
236
240
|
validate_circuit(circuit)
|
|
237
241
|
except ValueError as e:
|
|
@@ -904,3 +908,33 @@ class IQMClient:
|
|
|
904
908
|
except json.decoder.JSONDecodeError as e:
|
|
905
909
|
raise EndpointRequestError(f"Invalid response: {response.text}, {e!r}") from e
|
|
906
910
|
return model
|
|
911
|
+
|
|
912
|
+
def get_structured_metrics(self, calibration_set_id: UUID | None = None) -> ObservationFinder:
|
|
913
|
+
"""Retrieve the given calibration set and related quality metrics from the server.
|
|
914
|
+
|
|
915
|
+
Args:
|
|
916
|
+
calibration_set_id: ID of the calibration set to retrieve.
|
|
917
|
+
If ``None``, the current default calibration set is retrieved.
|
|
918
|
+
|
|
919
|
+
Returns:
|
|
920
|
+
Requested calibration set and related quality metrics in a searchable structure.
|
|
921
|
+
|
|
922
|
+
Raises:
|
|
923
|
+
EndpointRequestError: did not understand the endpoint response
|
|
924
|
+
ClientAuthenticationError: no valid authentication provided
|
|
925
|
+
HTTPException: HTTP exceptions
|
|
926
|
+
|
|
927
|
+
"""
|
|
928
|
+
if isinstance(self._station_control, IqmServerClient):
|
|
929
|
+
raise ValueError("The get_structured_metrics method is not supported by IqmServerClient.")
|
|
930
|
+
|
|
931
|
+
if not calibration_set_id:
|
|
932
|
+
# find out the default calset id
|
|
933
|
+
default_calset = self._station_control.get_default_calibration_set()
|
|
934
|
+
calibration_set_id = default_calset.observation_set_id
|
|
935
|
+
|
|
936
|
+
calset_obs = self._station_control.get_observation_set_observations(calibration_set_id)
|
|
937
|
+
quality_metrics = self._station_control.get_calibration_set_quality_metrics(calibration_set_id)
|
|
938
|
+
qm_obs = quality_metrics.observations
|
|
939
|
+
|
|
940
|
+
return ObservationFinder(list(calset_obs) + qm_obs)
|
|
@@ -459,7 +459,10 @@ class Circuit(BaseModel):
|
|
|
459
459
|
return instructions
|
|
460
460
|
|
|
461
461
|
|
|
462
|
-
|
|
462
|
+
QIRCode = str
|
|
463
|
+
"""QIR program code in string representation"""
|
|
464
|
+
|
|
465
|
+
CircuitBatch = list[Circuit | QIRCode]
|
|
463
466
|
"""Type that represents a list of quantum circuits to be executed together in a single batch."""
|
|
464
467
|
|
|
465
468
|
|
|
@@ -473,7 +476,12 @@ def validate_circuit(circuit: Circuit) -> None:
|
|
|
473
476
|
pydantic.error_wrappers.ValidationError: validation failed
|
|
474
477
|
|
|
475
478
|
"""
|
|
476
|
-
|
|
479
|
+
if isinstance(circuit, Circuit):
|
|
480
|
+
Circuit.model_validate(circuit.__dict__)
|
|
481
|
+
elif isinstance(circuit, QIRCode):
|
|
482
|
+
pass
|
|
483
|
+
else:
|
|
484
|
+
raise ValueError("Every circuit in a batch should be of type <Circuit> or <QIRCode>")
|
|
477
485
|
|
|
478
486
|
|
|
479
487
|
class SingleQubitMapping(BaseModel):
|
|
@@ -706,6 +714,20 @@ class GateInfo(BaseModel):
|
|
|
706
714
|
loci_sorted = sorted(loci_set, key=lambda locus: tuple(map(_component_sort_key, locus)))
|
|
707
715
|
return tuple(loci_sorted)
|
|
708
716
|
|
|
717
|
+
def get_default_implementation(self, locus: Locus) -> str:
|
|
718
|
+
"""Default implementation of this gate for the given locus.
|
|
719
|
+
|
|
720
|
+
Args:
|
|
721
|
+
locus: gate locus
|
|
722
|
+
|
|
723
|
+
Returns:
|
|
724
|
+
Name of the default implementation of this gate for ``locus``.
|
|
725
|
+
|
|
726
|
+
"""
|
|
727
|
+
if (impl := self.override_default_implementation.get(locus)) is not None:
|
|
728
|
+
return impl
|
|
729
|
+
return self.default_implementation
|
|
730
|
+
|
|
709
731
|
|
|
710
732
|
class DynamicQuantumArchitecture(BaseModel):
|
|
711
733
|
"""Dynamic quantum architecture as returned by server.
|
|
@@ -18,6 +18,7 @@ from iqm.iqm_client.models import (
|
|
|
18
18
|
DynamicQuantumArchitecture,
|
|
19
19
|
Instruction,
|
|
20
20
|
MoveGateValidationMode,
|
|
21
|
+
QIRCode,
|
|
21
22
|
)
|
|
22
23
|
|
|
23
24
|
|
|
@@ -49,6 +50,8 @@ def validate_qubit_mapping(
|
|
|
49
50
|
|
|
50
51
|
# check if qubit mapping covers all qubits in the circuits
|
|
51
52
|
for i, circuit in enumerate(circuits):
|
|
53
|
+
if isinstance(circuit, (QIRCode)):
|
|
54
|
+
continue
|
|
52
55
|
diff = circuit.all_qubits() - set(qubit_mapping)
|
|
53
56
|
if diff:
|
|
54
57
|
raise CircuitValidationError(
|
|
@@ -86,6 +89,9 @@ def validate_circuit_instructions(
|
|
|
86
89
|
|
|
87
90
|
"""
|
|
88
91
|
for index, circuit in enumerate(circuits):
|
|
92
|
+
if isinstance(circuit, QIRCode):
|
|
93
|
+
continue
|
|
94
|
+
|
|
89
95
|
measurement_keys: set[str] = set()
|
|
90
96
|
for instr in circuit.instructions:
|
|
91
97
|
validate_instruction(architecture, instr, qubit_mapping)
|
|
@@ -24,6 +24,7 @@ import warnings
|
|
|
24
24
|
from iqm.iqm_client import (
|
|
25
25
|
DEFAULT_TIMEOUT_SECONDS,
|
|
26
26
|
APITimeoutError,
|
|
27
|
+
Circuit,
|
|
27
28
|
CircuitMeasurementResults,
|
|
28
29
|
HeraldingMode,
|
|
29
30
|
IQMClient,
|
|
@@ -79,8 +80,11 @@ class IQMJob(JobV1):
|
|
|
79
80
|
expect_exact_shots = iqm_result.metadata.heralding_mode == HeraldingMode.NONE
|
|
80
81
|
|
|
81
82
|
return [
|
|
82
|
-
(
|
|
83
|
-
|
|
83
|
+
(
|
|
84
|
+
circuit.name if isinstance(circuit, Circuit) else f"circuit_{i}",
|
|
85
|
+
self._format_measurement_results(measurements, requested_shots, expect_exact_shots),
|
|
86
|
+
)
|
|
87
|
+
for i, (measurements, circuit) in enumerate(zip(iqm_result.measurements, iqm_result.metadata.circuits))
|
|
84
88
|
]
|
|
85
89
|
|
|
86
90
|
@staticmethod
|
|
@@ -194,7 +198,9 @@ class IQMJob(JobV1):
|
|
|
194
198
|
# was created manually from a job_id. In that case retrieve circuit metadata from
|
|
195
199
|
# RunResult.metadata.request.circuits[n].metadata
|
|
196
200
|
if self.circuit_metadata is None and results.metadata.request is not None:
|
|
197
|
-
self.circuit_metadata = [
|
|
201
|
+
self.circuit_metadata = [
|
|
202
|
+
c.metadata if isinstance(c, Circuit) else {} for c in results.metadata.circuits
|
|
203
|
+
]
|
|
198
204
|
|
|
199
205
|
result_dict = {
|
|
200
206
|
"backend_name": None,
|
|
@@ -23,6 +23,7 @@ import warnings
|
|
|
23
23
|
|
|
24
24
|
from iqm.iqm_client import (
|
|
25
25
|
Circuit,
|
|
26
|
+
CircuitBatch,
|
|
26
27
|
CircuitCompilationOptions,
|
|
27
28
|
CircuitValidationError,
|
|
28
29
|
IQMClient,
|
|
@@ -111,7 +112,7 @@ class IQMBackend(IQMBackendBase):
|
|
|
111
112
|
run_request = self.create_run_request(run_input, **options)
|
|
112
113
|
job_id = self.client.submit_run_request(run_request)
|
|
113
114
|
job = IQMJob(self, str(job_id), shots=run_request.shots)
|
|
114
|
-
job.circuit_metadata = [c.metadata for c in run_request.circuits]
|
|
115
|
+
job.circuit_metadata = [c.metadata if isinstance(c, Circuit) else {} for c in run_request.circuits]
|
|
115
116
|
return job
|
|
116
117
|
|
|
117
118
|
def create_run_request(
|
|
@@ -181,7 +182,7 @@ class IQMBackend(IQMBackendBase):
|
|
|
181
182
|
if circuit_callback:
|
|
182
183
|
circuit_callback(circuits)
|
|
183
184
|
|
|
184
|
-
circuits_serialized:
|
|
185
|
+
circuits_serialized: CircuitBatch = [self.serialize_circuit(circuit, qubit_mapping) for circuit in circuits]
|
|
185
186
|
|
|
186
187
|
if self._use_default_calibration_set:
|
|
187
188
|
default_calset_id = self.client.get_dynamic_quantum_architecture(None).calibration_set_id
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
29.11.0
|
iqm_client-29.9.0/version.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
29.9.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_client-29.9.0 → iqm_client-29.11.0}/src/iqm/qiskit_iqm/fake_backends/iqm_fake_backend.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|