iqm-client 29.8.0__tar.gz → 29.10.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.8.0 → iqm_client-29.10.0}/CHANGELOG.rst +16 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/INTEGRATION_GUIDE.rst +1 -1
- {iqm_client-29.8.0 → iqm_client-29.10.0}/PKG-INFO +1 -1
- {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/user_guide_qiskit.rst +3 -6
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/examples/demo_iqm_execution.py +3 -3
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/iqm_sampler.py +2 -2
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/iqm_client.py +3 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/models.py +10 -2
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/validation.py +6 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/iqm_job.py +9 -3
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/iqm_provider.py +3 -2
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm_client.egg-info/PKG-INFO +1 -1
- iqm_client-29.10.0/version.txt +1 -0
- iqm_client-29.8.0/version.txt +0 -1
- {iqm_client-29.8.0 → iqm_client-29.10.0}/AUTHORS.rst +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/CHANGELOG_cirq-iqm.rst +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/CHANGELOG_cortex-cli.rst +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/CHANGELOG_qiskit-iqm.rst +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/LICENSE.txt +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/MANIFEST.in +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/README.rst +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/docbuild +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/API.rst +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/_static/images/favicon.ico +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/_static/images/logo.png +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/_templates/autosummary-class-template.rst +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/_templates/autosummary-module-template.rst +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/authors.rst +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/changelog.rst +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/conf.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/index.rst +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/integration_guide.rst +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/license.rst +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/readme.rst +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/user_guide_cirq.rst +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/user_guide_cli.rst +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/pyproject.toml +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/requirements/base.in +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/requirements/base.txt +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/requirements/cirq.in +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/requirements/cirq.txt +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/requirements/cli.in +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/requirements/cli.txt +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/requirements/qiskit.in +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/requirements/qiskit.txt +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/setup.cfg +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/setup.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/__init__.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/devices/__init__.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/devices/adonis.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/devices/aphrodite.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/devices/apollo.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/devices/iqm_device.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/devices/iqm_device_metadata.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/examples/demo_adonis.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/examples/demo_apollo.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/examples/demo_common.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/examples/usage.ipynb +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/extended_qasm_parser.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/iqm_gates.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/optimizers.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/py.typed +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/serialize.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/transpiler.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/__init__.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/api.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/authentication.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/cli/__init__.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/cli/auth.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/cli/cli.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/cli/models.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/cli/token_manager.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/errors.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/py.typed +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/transpile.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/util.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/__init__.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/examples/__init__.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/examples/bell_measure.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/examples/resonance_example.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/examples/transpile_example.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/fake_backends/__init__.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/fake_backends/fake_adonis.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/fake_backends/fake_aphrodite.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/fake_backends/fake_apollo.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/fake_backends/fake_deneb.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/fake_backends/fake_garnet.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/fake_backends/iqm_fake_backend.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/iqm_backend.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/iqm_circuit.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/iqm_circuit_validation.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/iqm_move_layout.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/iqm_naive_move_pass.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/iqm_transpilation.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/move_gate.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/py.typed +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/qiskit_to_iqm.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/transpiler_plugins.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm_client.egg-info/SOURCES.txt +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm_client.egg-info/dependency_links.txt +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm_client.egg-info/entry_points.txt +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm_client.egg-info/requires.txt +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm_client.egg-info/top_level.txt +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/test +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/tests/__init__.py +0 -0
- {iqm_client-29.8.0 → iqm_client-29.10.0}/tests/conftest.py +0 -0
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
Changelog
|
|
3
3
|
=========
|
|
4
4
|
|
|
5
|
+
Version 29.10.0 (2025-07-31)
|
|
6
|
+
============================
|
|
7
|
+
|
|
8
|
+
Features
|
|
9
|
+
--------
|
|
10
|
+
|
|
11
|
+
- Support QIR programs in iqm-client
|
|
12
|
+
|
|
13
|
+
Version 29.9.0 (2025-07-29)
|
|
14
|
+
===========================
|
|
15
|
+
|
|
16
|
+
Features
|
|
17
|
+
--------
|
|
18
|
+
|
|
19
|
+
- Remove cocos from IQM_SERVER_URL
|
|
20
|
+
|
|
5
21
|
Version 29.8.0 (2025-07-23)
|
|
6
22
|
===========================
|
|
7
23
|
|
|
@@ -102,10 +102,7 @@ If the IQM server you are connecting to requires authentication, you may use
|
|
|
102
102
|
then set the :envvar:`IQM_TOKENS_FILE` environment variable, as instructed, to point to the tokens file.
|
|
103
103
|
See IQM Client CLI's `documentation <https://docs.meetiqm.com/iqm-client/user_guide_cli.html>`__ for details.
|
|
104
104
|
|
|
105
|
-
You may also authenticate yourself
|
|
106
|
-
:envvar:`IQM_AUTH_USERNAME` and :envvar:`IQM_AUTH_PASSWORD` environment variables, or pass them as
|
|
107
|
-
arguments to :class:`.IQMProvider`, however this approach is less secure and considered deprecated.
|
|
108
|
-
|
|
105
|
+
You may also authenticate yourself by setting the access token in the the :envvar:`IQM_TOKEN` variable
|
|
109
106
|
|
|
110
107
|
Running quantum circuits on an IQM quantum computer
|
|
111
108
|
---------------------------------------------------
|
|
@@ -156,7 +153,7 @@ circuit(s) are sampled:
|
|
|
156
153
|
from qiskit import transpile
|
|
157
154
|
from iqm.qiskit_iqm import IQMProvider
|
|
158
155
|
|
|
159
|
-
iqm_server_url = "https://demo.qc.iqm.fi
|
|
156
|
+
iqm_server_url = "https://demo.qc.iqm.fi" # Replace this with the correct URL
|
|
160
157
|
provider = IQMProvider(iqm_server_url)
|
|
161
158
|
backend = provider.get_backend()
|
|
162
159
|
|
|
@@ -749,7 +746,7 @@ Additionally, the URL should point to a mock environment rather than a real devi
|
|
|
749
746
|
circuit.cx(0, 1)
|
|
750
747
|
circuit.measure_all()
|
|
751
748
|
|
|
752
|
-
iqm_server_url = "https://demo.qc.iqm.fi/
|
|
749
|
+
iqm_server_url = "https://demo.qc.iqm.fi/" # Replace this with the correct URL
|
|
753
750
|
provider = IQMProvider(iqm_server_url)
|
|
754
751
|
backend = provider.get_backend('facade_adonis')
|
|
755
752
|
transpiled_circuit = transpile(circuit, backend=backend)
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
"""Demonstrates executing a quantum circuit on an IQM quantum computer.
|
|
15
15
|
|
|
16
16
|
Set the STATION_CONTROL_URL environment variable before running this script.
|
|
17
|
-
Also, if the server you are running against requires authentication you will also have to
|
|
18
|
-
|
|
17
|
+
Also, if the server you are running against requires authentication you will also have to use
|
|
18
|
+
the IQM_TOKENS_FILE or the IQM_TOKEN variable to set the access token.
|
|
19
19
|
|
|
20
20
|
E.g.
|
|
21
21
|
|
|
22
22
|
export STATION_CONTROL_URL="https://example.com/station"
|
|
23
|
-
export IQM_AUTH_SERVER="https://example.com/auth"
|
|
24
23
|
export IQM_TOKENS_FILE="/path/to/my/tokens.json"
|
|
24
|
+
export IQM_TOKEN="<token here>"
|
|
25
25
|
"""
|
|
26
26
|
|
|
27
27
|
import os
|
|
@@ -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,
|
|
@@ -232,6 +233,8 @@ class IQMClient:
|
|
|
232
233
|
|
|
233
234
|
for i, circuit in enumerate(circuits):
|
|
234
235
|
try:
|
|
236
|
+
if isinstance(circuit, (QIRCode)):
|
|
237
|
+
continue
|
|
235
238
|
# validate the circuit against the static information in iqm.iqm_client.models._SUPPORTED_OPERATIONS
|
|
236
239
|
validate_circuit(circuit)
|
|
237
240
|
except ValueError as e:
|
|
@@ -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):
|
|
@@ -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.10.0
|
iqm_client-29.8.0/version.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
29.8.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
|
{iqm_client-29.8.0 → iqm_client-29.10.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
|