iqm-client 29.4.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.
Files changed (107) hide show
  1. {iqm_client-29.4.0 → iqm_client-29.5.0}/CHANGELOG.rst +8 -0
  2. {iqm_client-29.4.0 → iqm_client-29.5.0}/PKG-INFO +2 -1
  3. {iqm_client-29.4.0 → iqm_client-29.5.0}/pyproject.toml +8 -0
  4. {iqm_client-29.4.0 → iqm_client-29.5.0}/requirements/cli.in +1 -0
  5. {iqm_client-29.4.0 → iqm_client-29.5.0}/requirements/cli.txt +1 -0
  6. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/devices/iqm_device.py +1 -1
  7. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/devices/iqm_device_metadata.py +1 -1
  8. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/examples/demo_adonis.py +2 -1
  9. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/examples/demo_apollo.py +2 -1
  10. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/examples/demo_common.py +2 -1
  11. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/iqm_client/iqm_client.py +6 -4
  12. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm_client.egg-info/PKG-INFO +2 -1
  13. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm_client.egg-info/SOURCES.txt +0 -1
  14. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm_client.egg-info/requires.txt +1 -0
  15. iqm_client-29.5.0/version.txt +1 -0
  16. iqm_client-29.4.0/src/iqm/qiskit_iqm/py.typed +0 -0
  17. iqm_client-29.4.0/version.txt +0 -1
  18. {iqm_client-29.4.0 → iqm_client-29.5.0}/AUTHORS.rst +0 -0
  19. {iqm_client-29.4.0 → iqm_client-29.5.0}/CHANGELOG_cirq-iqm.rst +0 -0
  20. {iqm_client-29.4.0 → iqm_client-29.5.0}/CHANGELOG_cortex-cli.rst +0 -0
  21. {iqm_client-29.4.0 → iqm_client-29.5.0}/CHANGELOG_qiskit-iqm.rst +0 -0
  22. {iqm_client-29.4.0 → iqm_client-29.5.0}/INTEGRATION_GUIDE.rst +0 -0
  23. {iqm_client-29.4.0 → iqm_client-29.5.0}/LICENSE.txt +0 -0
  24. {iqm_client-29.4.0 → iqm_client-29.5.0}/MANIFEST.in +0 -0
  25. {iqm_client-29.4.0 → iqm_client-29.5.0}/README.rst +0 -0
  26. {iqm_client-29.4.0 → iqm_client-29.5.0}/docbuild +0 -0
  27. {iqm_client-29.4.0 → iqm_client-29.5.0}/docs/API.rst +0 -0
  28. {iqm_client-29.4.0 → iqm_client-29.5.0}/docs/_static/images/favicon.ico +0 -0
  29. {iqm_client-29.4.0 → iqm_client-29.5.0}/docs/_static/images/logo.png +0 -0
  30. {iqm_client-29.4.0 → iqm_client-29.5.0}/docs/_templates/autosummary-class-template.rst +0 -0
  31. {iqm_client-29.4.0 → iqm_client-29.5.0}/docs/_templates/autosummary-module-template.rst +0 -0
  32. {iqm_client-29.4.0 → iqm_client-29.5.0}/docs/authors.rst +0 -0
  33. {iqm_client-29.4.0 → iqm_client-29.5.0}/docs/changelog.rst +0 -0
  34. {iqm_client-29.4.0 → iqm_client-29.5.0}/docs/conf.py +0 -0
  35. {iqm_client-29.4.0 → iqm_client-29.5.0}/docs/index.rst +0 -0
  36. {iqm_client-29.4.0 → iqm_client-29.5.0}/docs/integration_guide.rst +0 -0
  37. {iqm_client-29.4.0 → iqm_client-29.5.0}/docs/license.rst +0 -0
  38. {iqm_client-29.4.0 → iqm_client-29.5.0}/docs/readme.rst +0 -0
  39. {iqm_client-29.4.0 → iqm_client-29.5.0}/docs/user_guide_cirq.rst +0 -0
  40. {iqm_client-29.4.0 → iqm_client-29.5.0}/docs/user_guide_cli.rst +0 -0
  41. {iqm_client-29.4.0 → iqm_client-29.5.0}/docs/user_guide_qiskit.rst +0 -0
  42. {iqm_client-29.4.0 → iqm_client-29.5.0}/requirements/base.in +0 -0
  43. {iqm_client-29.4.0 → iqm_client-29.5.0}/requirements/base.txt +0 -0
  44. {iqm_client-29.4.0 → iqm_client-29.5.0}/requirements/cirq.in +0 -0
  45. {iqm_client-29.4.0 → iqm_client-29.5.0}/requirements/cirq.txt +0 -0
  46. {iqm_client-29.4.0 → iqm_client-29.5.0}/requirements/qiskit.in +0 -0
  47. {iqm_client-29.4.0 → iqm_client-29.5.0}/requirements/qiskit.txt +0 -0
  48. {iqm_client-29.4.0 → iqm_client-29.5.0}/setup.cfg +0 -0
  49. {iqm_client-29.4.0 → iqm_client-29.5.0}/setup.py +0 -0
  50. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/__init__.py +0 -0
  51. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/devices/__init__.py +0 -0
  52. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/devices/adonis.py +0 -0
  53. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/devices/aphrodite.py +0 -0
  54. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/devices/apollo.py +0 -0
  55. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/examples/demo_iqm_execution.py +0 -0
  56. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/examples/usage.ipynb +0 -0
  57. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/extended_qasm_parser.py +0 -0
  58. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/iqm_gates.py +0 -0
  59. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/iqm_sampler.py +0 -0
  60. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/optimizers.py +0 -0
  61. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/py.typed +0 -0
  62. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/serialize.py +0 -0
  63. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/cirq_iqm/transpiler.py +0 -0
  64. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/iqm_client/__init__.py +0 -0
  65. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/iqm_client/api.py +0 -0
  66. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/iqm_client/authentication.py +0 -0
  67. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/iqm_client/cli/__init__.py +0 -0
  68. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/iqm_client/cli/auth.py +0 -0
  69. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/iqm_client/cli/cli.py +0 -0
  70. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/iqm_client/cli/models.py +0 -0
  71. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/iqm_client/cli/token_manager.py +0 -0
  72. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/iqm_client/errors.py +0 -0
  73. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/iqm_client/models.py +0 -0
  74. {iqm_client-29.4.0/src/iqm/iqm_client/cli → iqm_client-29.5.0/src/iqm/iqm_client}/py.typed +0 -0
  75. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/iqm_client/transpile.py +0 -0
  76. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/iqm_client/util.py +0 -0
  77. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/iqm_client/validation.py +0 -0
  78. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/__init__.py +0 -0
  79. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/examples/__init__.py +0 -0
  80. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/examples/bell_measure.py +0 -0
  81. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/examples/resonance_example.py +0 -0
  82. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/examples/transpile_example.py +0 -0
  83. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/fake_backends/__init__.py +0 -0
  84. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/fake_backends/fake_adonis.py +0 -0
  85. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/fake_backends/fake_aphrodite.py +0 -0
  86. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/fake_backends/fake_apollo.py +0 -0
  87. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/fake_backends/fake_deneb.py +0 -0
  88. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/fake_backends/fake_garnet.py +0 -0
  89. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/fake_backends/iqm_fake_backend.py +0 -0
  90. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/iqm_backend.py +0 -0
  91. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/iqm_circuit.py +0 -0
  92. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/iqm_circuit_validation.py +0 -0
  93. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/iqm_job.py +0 -0
  94. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/iqm_move_layout.py +0 -0
  95. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/iqm_naive_move_pass.py +0 -0
  96. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/iqm_provider.py +0 -0
  97. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/iqm_transpilation.py +0 -0
  98. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/move_gate.py +0 -0
  99. {iqm_client-29.4.0/src/iqm/iqm_client → iqm_client-29.5.0/src/iqm/qiskit_iqm}/py.typed +0 -0
  100. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/qiskit_to_iqm.py +0 -0
  101. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm/qiskit_iqm/transpiler_plugins.py +0 -0
  102. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm_client.egg-info/dependency_links.txt +0 -0
  103. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm_client.egg-info/entry_points.txt +0 -0
  104. {iqm_client-29.4.0 → iqm_client-29.5.0}/src/iqm_client.egg-info/top_level.txt +0 -0
  105. {iqm_client-29.4.0 → iqm_client-29.5.0}/test +0 -0
  106. {iqm_client-29.4.0 → iqm_client-29.5.0}/tests/__init__.py +0 -0
  107. {iqm_client-29.4.0 → iqm_client-29.5.0}/tests/conftest.py +0 -0
@@ -2,6 +2,14 @@
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
+
5
13
  Version 29.4.0 (2025-07-07)
6
14
  ===========================
7
15
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-client
3
- Version: 29.4.0
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"
@@ -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",]
@@ -1,4 +1,5 @@
1
1
  click >= 8.1.6, < 9
2
2
  jsonschema >= 4.6.0
3
3
  psutil >= 5.9.2
4
+ types-psutil
4
5
  python-daemon >= 2.3.0
@@ -3,4 +3,5 @@ iqm-exa-common>=26,<27
3
3
  click >= 8.1.6, < 9
4
4
  jsonschema >= 4.6.0
5
5
  psutil >= 5.9.2
6
+ types-psutil
6
7
  python-daemon >= 2.3.0
@@ -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
- import qsimcirq
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=str(calibration_set.end_timestamp.isoformat()),
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.4.0
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
@@ -17,6 +17,7 @@ iqm-exa-common<27,>=26
17
17
  click<9,>=8.1.6
18
18
  jsonschema>=4.6.0
19
19
  psutil>=5.9.2
20
+ types-psutil
20
21
  python-daemon>=2.3.0
21
22
 
22
23
  [qiskit]
@@ -0,0 +1 @@
1
+ 29.5.0
File without changes
@@ -1 +0,0 @@
1
- 29.4.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