iqm-client 29.3.0__tar.gz → 29.5.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.3.0 → iqm_client-29.5.0}/CHANGELOG.rst +16 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/PKG-INFO +2 -1
- {iqm_client-29.3.0 → iqm_client-29.5.0}/docs/user_guide_cirq.rst +25 -26
- {iqm_client-29.3.0 → iqm_client-29.5.0}/pyproject.toml +8 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/requirements/cli.in +1 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/requirements/cli.txt +1 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/devices/iqm_device.py +1 -1
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/devices/iqm_device_metadata.py +1 -1
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/examples/demo_adonis.py +2 -1
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/examples/demo_apollo.py +2 -1
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/examples/demo_common.py +2 -1
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/iqm_client/iqm_client.py +6 -4
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm_client.egg-info/PKG-INFO +2 -1
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm_client.egg-info/SOURCES.txt +0 -1
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm_client.egg-info/requires.txt +1 -0
- iqm_client-29.5.0/version.txt +1 -0
- iqm_client-29.3.0/src/iqm/qiskit_iqm/py.typed +0 -0
- iqm_client-29.3.0/version.txt +0 -1
- {iqm_client-29.3.0 → iqm_client-29.5.0}/AUTHORS.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/CHANGELOG_cirq-iqm.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/CHANGELOG_cortex-cli.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/CHANGELOG_qiskit-iqm.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/INTEGRATION_GUIDE.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/LICENSE.txt +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/MANIFEST.in +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/README.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/docbuild +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/docs/API.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/docs/_static/images/favicon.ico +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/docs/_static/images/logo.png +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/docs/_templates/autosummary-class-template.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/docs/_templates/autosummary-module-template.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/docs/authors.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/docs/changelog.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/docs/conf.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/docs/index.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/docs/integration_guide.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/docs/license.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/docs/readme.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/docs/user_guide_cli.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/docs/user_guide_qiskit.rst +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/requirements/base.in +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/requirements/base.txt +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/requirements/cirq.in +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/requirements/cirq.txt +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/requirements/qiskit.in +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/requirements/qiskit.txt +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/setup.cfg +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/setup.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/__init__.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/devices/__init__.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/devices/adonis.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/devices/aphrodite.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/devices/apollo.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/examples/demo_iqm_execution.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/examples/usage.ipynb +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/extended_qasm_parser.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/iqm_gates.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/iqm_sampler.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/optimizers.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/py.typed +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/serialize.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/transpiler.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/iqm_client/__init__.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/iqm_client/api.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/iqm_client/authentication.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/iqm_client/cli/__init__.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/iqm_client/cli/auth.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/iqm_client/cli/cli.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/iqm_client/cli/models.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/iqm_client/cli/token_manager.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/iqm_client/errors.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/iqm_client/models.py +0 -0
- {iqm_client-29.3.0/src/iqm/iqm_client/cli → iqm_client-29.5.0/src/iqm/iqm_client}/py.typed +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/iqm_client/transpile.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/iqm_client/util.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/iqm_client/validation.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/__init__.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/examples/__init__.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/examples/bell_measure.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/examples/resonance_example.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/examples/transpile_example.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/fake_backends/__init__.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/fake_backends/fake_adonis.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/fake_backends/fake_aphrodite.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/fake_backends/fake_apollo.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/fake_backends/fake_deneb.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/fake_backends/fake_garnet.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/fake_backends/iqm_fake_backend.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/iqm_backend.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/iqm_circuit.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/iqm_circuit_validation.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/iqm_job.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/iqm_move_layout.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/iqm_naive_move_pass.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/iqm_provider.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/iqm_transpilation.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/move_gate.py +0 -0
- {iqm_client-29.3.0/src/iqm/iqm_client → iqm_client-29.5.0/src/iqm/qiskit_iqm}/py.typed +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/qiskit_to_iqm.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/transpiler_plugins.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm_client.egg-info/dependency_links.txt +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm_client.egg-info/entry_points.txt +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/src/iqm_client.egg-info/top_level.txt +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/test +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/tests/__init__.py +0 -0
- {iqm_client-29.3.0 → iqm_client-29.5.0}/tests/conftest.py +0 -0
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
Changelog
|
|
3
3
|
=========
|
|
4
4
|
|
|
5
|
+
Version 29.5.0 (2025-07-09)
|
|
6
|
+
===========================
|
|
7
|
+
|
|
8
|
+
Features
|
|
9
|
+
--------
|
|
10
|
+
|
|
11
|
+
- Enable mypy type checking in CI and add temporary type ignores to the source code. :issue:`SW-1615`
|
|
12
|
+
|
|
13
|
+
Version 29.4.0 (2025-07-07)
|
|
14
|
+
===========================
|
|
15
|
+
|
|
16
|
+
Features
|
|
17
|
+
--------
|
|
18
|
+
|
|
19
|
+
- Bugfix: Fixed the iqm-client cirq documentation such that the instruction is to route circuits before decomposing.
|
|
20
|
+
|
|
5
21
|
Version 29.3.0 (2025-07-02)
|
|
6
22
|
===========================
|
|
7
23
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: iqm-client
|
|
3
|
-
Version: 29.
|
|
3
|
+
Version: 29.5.0
|
|
4
4
|
Summary: Client library for accessing an IQM quantum computer
|
|
5
5
|
Author-email: IQM Finland Oy <developers@meetiqm.com>
|
|
6
6
|
License: Apache License
|
|
@@ -233,6 +233,7 @@ Requires-Dist: iqm-exa-common<27,>=26; extra == "cli"
|
|
|
233
233
|
Requires-Dist: click<9,>=8.1.6; extra == "cli"
|
|
234
234
|
Requires-Dist: jsonschema>=4.6.0; extra == "cli"
|
|
235
235
|
Requires-Dist: psutil>=5.9.2; extra == "cli"
|
|
236
|
+
Requires-Dist: types-psutil; extra == "cli"
|
|
236
237
|
Requires-Dist: python-daemon>=2.3.0; extra == "cli"
|
|
237
238
|
Provides-Extra: qiskit
|
|
238
239
|
Requires-Dist: iqm-station-control-client<10,>=9; extra == "qiskit"
|
|
@@ -138,29 +138,6 @@ and convert it into a :class:`cirq.Circuit` object using :func:`.circuit_from_qa
|
|
|
138
138
|
|
|
139
139
|
After a circuit has been constructed, it can be decomposed and routed against a particular :class:`.IQMDevice`.
|
|
140
140
|
|
|
141
|
-
|
|
142
|
-
Decomposition
|
|
143
|
-
-------------
|
|
144
|
-
|
|
145
|
-
The method :meth:`.IQMDevice.decompose_circuit` accepts a :class:`cirq.Circuit` object as an argument and
|
|
146
|
-
returns the decomposed circuit containing only native operations for the corresponding device:
|
|
147
|
-
|
|
148
|
-
.. code-block:: python
|
|
149
|
-
|
|
150
|
-
decomposed_circuit = adonis.decompose_circuit(circuit)
|
|
151
|
-
print(decomposed_circuit)
|
|
152
|
-
|
|
153
|
-
::
|
|
154
|
-
|
|
155
|
-
Alice: ───X────────────────────@───────────M('m')───
|
|
156
|
-
│ │
|
|
157
|
-
Bob: ─────Y^0.5───X───Y^-0.5───@───Y^0.5───M────────
|
|
158
|
-
|
|
159
|
-
The Hadamard and CNOT gates are not native to Adonis, so they were decomposed to X, Y and CZ gates which are.
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
.. _routing:
|
|
163
|
-
|
|
164
141
|
Routing
|
|
165
142
|
-------
|
|
166
143
|
|
|
@@ -216,6 +193,28 @@ To ensure that the transpiler is restricted to a specific subset of qubits, you
|
|
|
216
193
|
of qubits in the ``qubit_subset`` argument such that ancillary qubits will not be added during
|
|
217
194
|
routing. This is particularly useful when running Quantum Volume benchmarks.
|
|
218
195
|
|
|
196
|
+
Decomposition
|
|
197
|
+
-------------
|
|
198
|
+
|
|
199
|
+
The method :meth:`.IQMDevice.decompose_circuit` accepts a :class:`cirq.Circuit` object as an argument and
|
|
200
|
+
returns the decomposed circuit containing only native operations for the corresponding device:
|
|
201
|
+
|
|
202
|
+
.. code-block:: python
|
|
203
|
+
|
|
204
|
+
decomposed_circuit = adonis.decompose_circuit(circuit)
|
|
205
|
+
print(decomposed_circuit)
|
|
206
|
+
|
|
207
|
+
::
|
|
208
|
+
|
|
209
|
+
Alice: ───X────────────────────@───────────M('m')───
|
|
210
|
+
│ │
|
|
211
|
+
Bob: ─────Y^0.5───X───Y^-0.5───@───Y^0.5───M────────
|
|
212
|
+
|
|
213
|
+
The Hadamard and CNOT gates are not native to Adonis, so they were decomposed to X, Y and CZ gates which are.
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
.. _routing:
|
|
217
|
+
|
|
219
218
|
IQM Star architecture
|
|
220
219
|
^^^^^^^^^^^^^^^^^^^^^
|
|
221
220
|
|
|
@@ -360,9 +359,9 @@ Once you have access to an IQM server you can create an :class:`.IQMSampler` ins
|
|
|
360
359
|
# circuit = ...
|
|
361
360
|
|
|
362
361
|
sampler = IQMSampler(iqm_server_url)
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
result = sampler.run(
|
|
362
|
+
routed_circuit, _, _ = sampler.device.route_circuit(circuit)
|
|
363
|
+
decomposed_circuit = sampler.device.decompose_circuit(routed_circuit)
|
|
364
|
+
result = sampler.run(decomposed_circuit, repetitions=10)
|
|
366
365
|
print(result.measurements['m'])
|
|
367
366
|
|
|
368
367
|
|
|
@@ -24,6 +24,14 @@ iqmclient = "iqm.iqm_client.cli.cli:iqmclient"
|
|
|
24
24
|
Documentation = "https://docs.meetiqm.com/iqm-client/"
|
|
25
25
|
Homepage = "https://pypi.org/project/iqm-client/"
|
|
26
26
|
|
|
27
|
+
[tool.mypy]
|
|
28
|
+
explicit_package_bases = true
|
|
29
|
+
mypy_path = "$MYPY_CONFIG_FILE_DIR/src"
|
|
30
|
+
namespace_packages = true
|
|
31
|
+
[[tool.mypy.overrides]]
|
|
32
|
+
module = [ "iqm.data_definitions.*", "iqm.models.*", "daemon.*", "quimb.*", "qiskit.*", "qiskit_aer.*", "grpc.*", "lmfit.*", "emukit.*", "mockito.*", "sklearn.*", "dill.*", "uncertainties.*", "GPy.*", "pythonjsonlogger.*",]
|
|
33
|
+
ignore_missing_imports = true
|
|
34
|
+
|
|
27
35
|
[tool.ruff]
|
|
28
36
|
exclude = [ "*.ipynb", "*.rst",]
|
|
29
37
|
extend-include = [ "sub-setup-py.template",]
|
|
@@ -228,7 +228,7 @@ class IQMDevice(devices.Device):
|
|
|
228
228
|
# If the device has computational resonators, we use a modified connection graph for routing
|
|
229
229
|
# by adding edges between all qubits connected to the same resonator.
|
|
230
230
|
move_routing = True
|
|
231
|
-
graph = nx.Graph()
|
|
231
|
+
graph = nx.Graph() # type: ignore[var-annotated]
|
|
232
232
|
for edge in self.metadata.nx_graph.edges:
|
|
233
233
|
q, r = edge if edge[1] in self.resonators else edge[::-1]
|
|
234
234
|
if r not in self.resonators:
|
|
@@ -55,7 +55,7 @@ class IQMDeviceMetadata(devices.DeviceMetadata):
|
|
|
55
55
|
architecture: DynamicQuantumArchitecture | None = None,
|
|
56
56
|
):
|
|
57
57
|
"""Construct an IQMDeviceMetadata object."""
|
|
58
|
-
nx_graph = nx.Graph()
|
|
58
|
+
nx_graph = nx.Graph() # type: ignore[var-annotated]
|
|
59
59
|
for edge in connectivity:
|
|
60
60
|
if len(edge) != 2:
|
|
61
61
|
raise ValueError("Connectivity must be an iterable of 2-tuples.")
|
|
@@ -16,10 +16,11 @@ the Adonis native gateset and connectivity, and then executing it on a simulator
|
|
|
16
16
|
"""
|
|
17
17
|
|
|
18
18
|
import cirq
|
|
19
|
-
from demo_common import demo
|
|
20
19
|
from iqm.cirq_iqm.devices import Adonis
|
|
21
20
|
from iqm.cirq_iqm.extended_qasm_parser import circuit_from_qasm
|
|
22
21
|
|
|
22
|
+
from .demo_common import demo
|
|
23
|
+
|
|
23
24
|
|
|
24
25
|
def demo_adonis(use_qsim: bool = False) -> None:
|
|
25
26
|
"""Run the demo using the Adonis architecture."""
|
|
@@ -16,10 +16,11 @@ the Apollo native gateset and connectivity, and then executing it on a simulator
|
|
|
16
16
|
"""
|
|
17
17
|
|
|
18
18
|
import cirq
|
|
19
|
-
from demo_common import demo
|
|
20
19
|
from iqm.cirq_iqm.devices import Apollo
|
|
21
20
|
from iqm.cirq_iqm.extended_qasm_parser import circuit_from_qasm
|
|
22
21
|
|
|
22
|
+
from .demo_common import demo
|
|
23
|
+
|
|
23
24
|
|
|
24
25
|
def demo_apollo(use_qsim: bool = False) -> None:
|
|
25
26
|
"""Run the demo using the Apollo architecture."""
|
|
@@ -178,7 +178,8 @@ def demo(device: IQMDevice, circuit: cirq.Circuit, *, use_qsim: bool = False) ->
|
|
|
178
178
|
|
|
179
179
|
# Initialize a ket-based simulator for evaluating the circuit
|
|
180
180
|
if use_qsim:
|
|
181
|
-
|
|
181
|
+
# FIXME: decide what to do with this implicit dependency to qsimcirq.
|
|
182
|
+
import qsimcirq # type:ignore[import-not-found]
|
|
182
183
|
|
|
183
184
|
sim = qsimcirq.QSimSimulator()
|
|
184
185
|
print("Using qsim.")
|
|
@@ -133,7 +133,7 @@ class IQMClient:
|
|
|
133
133
|
|
|
134
134
|
self._station_control: StationControlInterface = init_station_control(
|
|
135
135
|
root_url=url,
|
|
136
|
-
get_token_callback=self._token_manager.get_bearer_token,
|
|
136
|
+
get_token_callback=self._token_manager.get_bearer_token, # type:ignore[arg-type]
|
|
137
137
|
client_signature=client_signature,
|
|
138
138
|
)
|
|
139
139
|
self._api = APIConfig(url)
|
|
@@ -553,7 +553,7 @@ class IQMClient:
|
|
|
553
553
|
calibration_set = quality_metrics.calibration_set
|
|
554
554
|
|
|
555
555
|
return QualityMetricSet(
|
|
556
|
-
**{
|
|
556
|
+
**{ # type:ignore[arg-type]
|
|
557
557
|
"calibration_set_id": calibration_set.observation_set_id,
|
|
558
558
|
"calibration_set_dut_label": calibration_set.dut_label,
|
|
559
559
|
"calibration_set_number_of_observations": len(calibration_set.observation_ids),
|
|
@@ -619,9 +619,11 @@ class IQMClient:
|
|
|
619
619
|
|
|
620
620
|
return CalibrationSet(
|
|
621
621
|
calibration_set_id=calibration_set.observation_set_id,
|
|
622
|
-
calibration_set_dut_label=calibration_set.dut_label,
|
|
622
|
+
calibration_set_dut_label=calibration_set.dut_label, # type:ignore[arg-type]
|
|
623
623
|
calibration_set_created_timestamp=str(calibration_set.created_timestamp.isoformat()),
|
|
624
|
-
calibration_set_end_timestamp=
|
|
624
|
+
calibration_set_end_timestamp=""
|
|
625
|
+
if calibration_set.end_timestamp is None
|
|
626
|
+
else str(calibration_set.end_timestamp.isoformat()),
|
|
625
627
|
calibration_set_is_invalid=calibration_set.invalid,
|
|
626
628
|
observations={
|
|
627
629
|
observation.dut_field: _observation_lite_to_json(observation) for observation in observations
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: iqm-client
|
|
3
|
-
Version: 29.
|
|
3
|
+
Version: 29.5.0
|
|
4
4
|
Summary: Client library for accessing an IQM quantum computer
|
|
5
5
|
Author-email: IQM Finland Oy <developers@meetiqm.com>
|
|
6
6
|
License: Apache License
|
|
@@ -233,6 +233,7 @@ Requires-Dist: iqm-exa-common<27,>=26; extra == "cli"
|
|
|
233
233
|
Requires-Dist: click<9,>=8.1.6; extra == "cli"
|
|
234
234
|
Requires-Dist: jsonschema>=4.6.0; extra == "cli"
|
|
235
235
|
Requires-Dist: psutil>=5.9.2; extra == "cli"
|
|
236
|
+
Requires-Dist: types-psutil; extra == "cli"
|
|
236
237
|
Requires-Dist: python-daemon>=2.3.0; extra == "cli"
|
|
237
238
|
Provides-Extra: qiskit
|
|
238
239
|
Requires-Dist: iqm-station-control-client<10,>=9; extra == "qiskit"
|
|
@@ -68,7 +68,6 @@ src/iqm/iqm_client/cli/__init__.py
|
|
|
68
68
|
src/iqm/iqm_client/cli/auth.py
|
|
69
69
|
src/iqm/iqm_client/cli/cli.py
|
|
70
70
|
src/iqm/iqm_client/cli/models.py
|
|
71
|
-
src/iqm/iqm_client/cli/py.typed
|
|
72
71
|
src/iqm/iqm_client/cli/token_manager.py
|
|
73
72
|
src/iqm/qiskit_iqm/__init__.py
|
|
74
73
|
src/iqm/qiskit_iqm/iqm_backend.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
29.5.0
|
|
File without changes
|
iqm_client-29.3.0/version.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
29.3.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
|
{iqm_client-29.3.0 → iqm_client-29.5.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
|