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.
Files changed (106) hide show
  1. {iqm_client-29.8.0 → iqm_client-29.10.0}/CHANGELOG.rst +16 -0
  2. {iqm_client-29.8.0 → iqm_client-29.10.0}/INTEGRATION_GUIDE.rst +1 -1
  3. {iqm_client-29.8.0 → iqm_client-29.10.0}/PKG-INFO +1 -1
  4. {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/user_guide_qiskit.rst +3 -6
  5. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/examples/demo_iqm_execution.py +3 -3
  6. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/iqm_sampler.py +2 -2
  7. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/iqm_client.py +3 -0
  8. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/models.py +10 -2
  9. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/validation.py +6 -0
  10. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/iqm_job.py +9 -3
  11. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/iqm_provider.py +3 -2
  12. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm_client.egg-info/PKG-INFO +1 -1
  13. iqm_client-29.10.0/version.txt +1 -0
  14. iqm_client-29.8.0/version.txt +0 -1
  15. {iqm_client-29.8.0 → iqm_client-29.10.0}/AUTHORS.rst +0 -0
  16. {iqm_client-29.8.0 → iqm_client-29.10.0}/CHANGELOG_cirq-iqm.rst +0 -0
  17. {iqm_client-29.8.0 → iqm_client-29.10.0}/CHANGELOG_cortex-cli.rst +0 -0
  18. {iqm_client-29.8.0 → iqm_client-29.10.0}/CHANGELOG_qiskit-iqm.rst +0 -0
  19. {iqm_client-29.8.0 → iqm_client-29.10.0}/LICENSE.txt +0 -0
  20. {iqm_client-29.8.0 → iqm_client-29.10.0}/MANIFEST.in +0 -0
  21. {iqm_client-29.8.0 → iqm_client-29.10.0}/README.rst +0 -0
  22. {iqm_client-29.8.0 → iqm_client-29.10.0}/docbuild +0 -0
  23. {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/API.rst +0 -0
  24. {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/_static/images/favicon.ico +0 -0
  25. {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/_static/images/logo.png +0 -0
  26. {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/_templates/autosummary-class-template.rst +0 -0
  27. {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/_templates/autosummary-module-template.rst +0 -0
  28. {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/authors.rst +0 -0
  29. {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/changelog.rst +0 -0
  30. {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/conf.py +0 -0
  31. {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/index.rst +0 -0
  32. {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/integration_guide.rst +0 -0
  33. {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/license.rst +0 -0
  34. {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/readme.rst +0 -0
  35. {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/user_guide_cirq.rst +0 -0
  36. {iqm_client-29.8.0 → iqm_client-29.10.0}/docs/user_guide_cli.rst +0 -0
  37. {iqm_client-29.8.0 → iqm_client-29.10.0}/pyproject.toml +0 -0
  38. {iqm_client-29.8.0 → iqm_client-29.10.0}/requirements/base.in +0 -0
  39. {iqm_client-29.8.0 → iqm_client-29.10.0}/requirements/base.txt +0 -0
  40. {iqm_client-29.8.0 → iqm_client-29.10.0}/requirements/cirq.in +0 -0
  41. {iqm_client-29.8.0 → iqm_client-29.10.0}/requirements/cirq.txt +0 -0
  42. {iqm_client-29.8.0 → iqm_client-29.10.0}/requirements/cli.in +0 -0
  43. {iqm_client-29.8.0 → iqm_client-29.10.0}/requirements/cli.txt +0 -0
  44. {iqm_client-29.8.0 → iqm_client-29.10.0}/requirements/qiskit.in +0 -0
  45. {iqm_client-29.8.0 → iqm_client-29.10.0}/requirements/qiskit.txt +0 -0
  46. {iqm_client-29.8.0 → iqm_client-29.10.0}/setup.cfg +0 -0
  47. {iqm_client-29.8.0 → iqm_client-29.10.0}/setup.py +0 -0
  48. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/__init__.py +0 -0
  49. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/devices/__init__.py +0 -0
  50. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/devices/adonis.py +0 -0
  51. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/devices/aphrodite.py +0 -0
  52. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/devices/apollo.py +0 -0
  53. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/devices/iqm_device.py +0 -0
  54. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/devices/iqm_device_metadata.py +0 -0
  55. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/examples/demo_adonis.py +0 -0
  56. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/examples/demo_apollo.py +0 -0
  57. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/examples/demo_common.py +0 -0
  58. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/examples/usage.ipynb +0 -0
  59. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/extended_qasm_parser.py +0 -0
  60. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/iqm_gates.py +0 -0
  61. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/optimizers.py +0 -0
  62. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/py.typed +0 -0
  63. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/serialize.py +0 -0
  64. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/cirq_iqm/transpiler.py +0 -0
  65. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/__init__.py +0 -0
  66. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/api.py +0 -0
  67. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/authentication.py +0 -0
  68. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/cli/__init__.py +0 -0
  69. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/cli/auth.py +0 -0
  70. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/cli/cli.py +0 -0
  71. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/cli/models.py +0 -0
  72. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/cli/token_manager.py +0 -0
  73. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/errors.py +0 -0
  74. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/py.typed +0 -0
  75. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/transpile.py +0 -0
  76. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/iqm_client/util.py +0 -0
  77. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/__init__.py +0 -0
  78. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/examples/__init__.py +0 -0
  79. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/examples/bell_measure.py +0 -0
  80. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/examples/resonance_example.py +0 -0
  81. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/examples/transpile_example.py +0 -0
  82. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/fake_backends/__init__.py +0 -0
  83. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/fake_backends/fake_adonis.py +0 -0
  84. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/fake_backends/fake_aphrodite.py +0 -0
  85. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/fake_backends/fake_apollo.py +0 -0
  86. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/fake_backends/fake_deneb.py +0 -0
  87. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/fake_backends/fake_garnet.py +0 -0
  88. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/fake_backends/iqm_fake_backend.py +0 -0
  89. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/iqm_backend.py +0 -0
  90. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/iqm_circuit.py +0 -0
  91. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/iqm_circuit_validation.py +0 -0
  92. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/iqm_move_layout.py +0 -0
  93. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/iqm_naive_move_pass.py +0 -0
  94. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/iqm_transpilation.py +0 -0
  95. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/move_gate.py +0 -0
  96. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/py.typed +0 -0
  97. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/qiskit_to_iqm.py +0 -0
  98. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm/qiskit_iqm/transpiler_plugins.py +0 -0
  99. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm_client.egg-info/SOURCES.txt +0 -0
  100. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm_client.egg-info/dependency_links.txt +0 -0
  101. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm_client.egg-info/entry_points.txt +0 -0
  102. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm_client.egg-info/requires.txt +0 -0
  103. {iqm_client-29.8.0 → iqm_client-29.10.0}/src/iqm_client.egg-info/top_level.txt +0 -0
  104. {iqm_client-29.8.0 → iqm_client-29.10.0}/test +0 -0
  105. {iqm_client-29.8.0 → iqm_client-29.10.0}/tests/__init__.py +0 -0
  106. {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
 
@@ -22,7 +22,7 @@ requires only the URL of the IQM quantum computer.
22
22
 
23
23
  from iqm.iqm_client import IQMClient
24
24
 
25
- server_url = "https://STATION_CONTROL_URL"
25
+ server_url = "https://IQM_SERVER_URL/station"
26
26
 
27
27
  iqm_client = IQMClient(server_url)
28
28
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-client
3
- Version: 29.8.0
3
+ Version: 29.10.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
@@ -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 using the :envvar:`IQM_AUTH_SERVER`,
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/cocos/" # Replace this with the correct URL
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/cocos/" # Replace this with the correct URL
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 set
18
- IQM_AUTH_SERVER, and either IQM_TOKENS_FILE or both of IQM_AUTH_USERNAME and IQM_AUTH_PASSWORD.
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
- CircuitBatch = list[Circuit]
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
- Circuit.model_validate(circuit.__dict__)
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
- (circuit.name, self._format_measurement_results(measurements, requested_shots, expect_exact_shots))
83
- for measurements, circuit in zip(iqm_result.measurements, iqm_result.metadata.circuits)
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 = [c.metadata for c in results.metadata.circuits]
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: list[Circuit] = [self.serialize_circuit(circuit, qubit_mapping) for circuit in circuits]
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-client
3
- Version: 29.8.0
3
+ Version: 29.10.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
@@ -0,0 +1 @@
1
+ 29.10.0
@@ -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