iqm-station-control-client 9.13.0__tar.gz → 9.15.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 (84) hide show
  1. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/CHANGELOG.rst +14 -0
  2. {iqm_station_control_client-9.13.0/src/iqm_station_control_client.egg-info → iqm_station_control_client-9.15.0}/PKG-INFO +1 -1
  3. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/iqm_server_client.py +35 -3
  4. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/qon.py +1 -1
  5. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0/src/iqm_station_control_client.egg-info}/PKG-INFO +1 -1
  6. iqm_station_control_client-9.15.0/version.txt +1 -0
  7. iqm_station_control_client-9.13.0/version.txt +0 -1
  8. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/LICENSE.txt +0 -0
  9. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/MANIFEST.in +0 -0
  10. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/README.rst +0 -0
  11. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/docs/API.rst +0 -0
  12. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/docs/Makefile +0 -0
  13. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/docs/_static/css/custom.css +0 -0
  14. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/docs/_static/images/favicon.ico +0 -0
  15. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/docs/_static/images/logo.png +0 -0
  16. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/docs/_templates/autosummary-class-template.rst +0 -0
  17. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/docs/_templates/autosummary-module-template.rst +0 -0
  18. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/docs/changelog.rst +0 -0
  19. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/docs/conf.py +0 -0
  20. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/docs/index.rst +0 -0
  21. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/docs/license.rst +0 -0
  22. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/pyproject.toml +0 -0
  23. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/requirements/base.in +0 -0
  24. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/requirements/base.txt +0 -0
  25. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/setup.cfg +0 -0
  26. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/setup.py +0 -0
  27. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/__init__.py +0 -0
  28. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/__init__.py +0 -0
  29. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/error.py +0 -0
  30. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/grpc_utils.py +0 -0
  31. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/proto/__init__.py +0 -0
  32. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/proto/calibration_pb2.py +0 -0
  33. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/proto/calibration_pb2.pyi +0 -0
  34. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/proto/calibration_pb2_grpc.py +0 -0
  35. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/proto/common_pb2.py +0 -0
  36. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/proto/common_pb2.pyi +0 -0
  37. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/proto/common_pb2_grpc.py +0 -0
  38. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/proto/job_pb2.py +0 -0
  39. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/proto/job_pb2.pyi +0 -0
  40. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/proto/job_pb2_grpc.py +0 -0
  41. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/proto/qc_pb2.py +0 -0
  42. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/proto/qc_pb2.pyi +0 -0
  43. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/proto/qc_pb2_grpc.py +0 -0
  44. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/proto/uuid_pb2.py +0 -0
  45. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/proto/uuid_pb2.pyi +0 -0
  46. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/proto/uuid_pb2_grpc.py +0 -0
  47. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/testing/__init__.py +0 -0
  48. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/iqm_server/testing/iqm_server_mock.py +0 -0
  49. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/list_models.py +0 -0
  50. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/py.typed +0 -0
  51. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/serializers/__init__.py +0 -0
  52. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/serializers/channel_property_serializer.py +0 -0
  53. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/serializers/datetime_serializers.py +0 -0
  54. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/serializers/playlist_serializers.py +0 -0
  55. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/serializers/run_serializers.py +0 -0
  56. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/serializers/setting_node_serializer.py +0 -0
  57. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/serializers/struct_serializer.py +0 -0
  58. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/serializers/sweep_serializers.py +0 -0
  59. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/serializers/task_serializers.py +0 -0
  60. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/station_control.py +0 -0
  61. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/client/utils.py +0 -0
  62. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/__init__.py +0 -0
  63. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/list_with_meta.py +0 -0
  64. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/models/__init__.py +0 -0
  65. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/models/dut.py +0 -0
  66. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/models/dynamic_quantum_architecture.py +0 -0
  67. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/models/jobs.py +0 -0
  68. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/models/monitor.py +0 -0
  69. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/models/observation.py +0 -0
  70. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/models/observation_set.py +0 -0
  71. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/models/run.py +0 -0
  72. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/models/sequence.py +0 -0
  73. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/models/static_quantum_architecture.py +0 -0
  74. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/models/sweep.py +0 -0
  75. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/models/type_aliases.py +0 -0
  76. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/py.typed +0 -0
  77. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/pydantic_base.py +0 -0
  78. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm/station_control/interface/station_control.py +0 -0
  79. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm_station_control_client.egg-info/SOURCES.txt +0 -0
  80. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm_station_control_client.egg-info/dependency_links.txt +0 -0
  81. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm_station_control_client.egg-info/requires.txt +0 -0
  82. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/src/iqm_station_control_client.egg-info/top_level.txt +0 -0
  83. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/tests/.pylintrc +0 -0
  84. {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.15.0}/tests/__init__.py +0 -0
@@ -2,6 +2,20 @@
2
2
  Changelog
3
3
  =========
4
4
 
5
+ Version 9.15.0 (2025-08-18)
6
+ ===========================
7
+
8
+ Features
9
+ --------
10
+ - Change the name of metric observations generated by :class:`ReadoutRandomizedCorrelations` from "readout_rb" to "rrc".
11
+
12
+ Version 9.14.0 (2025-08-14)
13
+ ===========================
14
+
15
+ Bug fixes
16
+ ---------
17
+ - Fixed an issue where the `IQMServerClient` was not correctly handling the retrieval of channel properties.
18
+
5
19
  Version 9.13.0 (2025-08-12)
6
20
  ===========================
7
21
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-station-control-client
3
- Version: 9.13.0
3
+ Version: 9.15.0
4
4
  Summary: Python client for communicating with Station Control Service
5
5
  Author-email: IQM Finland Oy <info@meetiqm.com>
6
6
  License: Apache License
@@ -25,7 +25,7 @@ import uuid
25
25
  from uuid import UUID
26
26
 
27
27
  import grpc
28
- from iqm.models.channel_properties import ChannelProperties
28
+ from iqm.models.channel_properties import AWGProperties, ChannelProperties, ReadoutProperties
29
29
  import requests
30
30
 
31
31
  from exa.common.data.setting_node import SettingNode
@@ -43,7 +43,6 @@ from iqm.station_control.client.iqm_server.grpc_utils import (
43
43
  )
44
44
  from iqm.station_control.client.list_models import DutFieldDataList, DutList
45
45
  from iqm.station_control.client.serializers import deserialize_sweep_results, serialize_sweep_job_request
46
- from iqm.station_control.client.serializers.channel_property_serializer import unpack_channel_properties
47
46
  from iqm.station_control.client.serializers.setting_node_serializer import deserialize_setting_node
48
47
  from iqm.station_control.client.serializers.task_serializers import deserialize_sweep_job_request
49
48
  from iqm.station_control.client.station_control import _StationControlClientBase
@@ -129,7 +128,14 @@ class IqmServerClient(_StationControlClientBase):
129
128
  return self._get_resource(f"chip-design-records/{dut_label}", parse_json)
130
129
 
131
130
  def get_channel_properties(self) -> dict[str, ChannelProperties]:
132
- return self._get_resource("channel-properties", unpack_channel_properties)
131
+ def bytes_to_dict(data: bytes) -> dict[str, ChannelProperties]:
132
+ """Deserialize bytes to a dictionary of channel property values."""
133
+ json_props: dict[str, dict] = json.loads(data.decode("utf-8"))
134
+ # Convert JSON representation to pythonic ChannelProperties
135
+ return _convert_channel_property_json_to_python(json_props)
136
+
137
+ channel_props = self._get_resource("channel-properties", bytes_to_dict)
138
+ return channel_props
133
139
 
134
140
  def sweep(self, sweep_definition: SweepDefinition) -> dict:
135
141
  with wrap_error("Job submission failed"):
@@ -411,6 +417,32 @@ def subscribe_to_job_events(channel: grpc.Channel, job_id: uuid.UUID) -> Iterabl
411
417
  raise e
412
418
 
413
419
 
420
+ def _convert_channel_property_json_to_python(channel_property_json: dict[str, dict]) -> dict[str, ChannelProperties]:
421
+ """Convert the JSON representation of channel properties to a dictionary containing pythonic ChannelProperties."""
422
+ channel_properties: dict[str, ChannelProperties] = {}
423
+ for name, props in channel_property_json.items():
424
+ if "fast_feedback_sources" in props:
425
+ channel_properties[name] = AWGProperties(
426
+ sampling_rate=props.get("sampling_rate"),
427
+ instruction_duration_granularity=props.get("instruction_duration_granularity"),
428
+ instruction_duration_min=props.get("instruction_duration_min"),
429
+ fast_feedback_sources=props.get("fast_feedback_sources", []),
430
+ compatible_instructions=props.get("compatible_instructions", []),
431
+ local_oscillator=props.get("local_oscillator"),
432
+ mixer_correction=props.get("mixer_correction"),
433
+ )
434
+ if "integration_start_dead_time" in props:
435
+ channel_properties[name] = ReadoutProperties(
436
+ sampling_rate=props.get("sampling_rate"),
437
+ instruction_duration_granularity=props.get("instruction_duration_granularity"),
438
+ instruction_duration_min=props.get("instruction_duration_min"),
439
+ compatible_instructions=props.get("compatible_instructions", []),
440
+ integration_start_dead_time=props.get("integration_start_dead_time"),
441
+ integration_stop_dead_time=props.get("integration_stop_dead_time"),
442
+ )
443
+ return channel_properties
444
+
445
+
414
446
  def parse_calibration_set(cal_set_data: bytes) -> tuple[uuid.UUID, dict[str, ObservationValue]]:
415
447
  # IQM server calibration sets are in cocos calibration set JSON format, we can get
416
448
  # both id and observations from it
@@ -292,7 +292,7 @@ class QONMetric(QON):
292
292
  "irb",
293
293
  "ssro",
294
294
  "restless_ssro",
295
- "readout_rb",
295
+ "rrc",
296
296
  "qndness",
297
297
  "msmt_qndness",
298
298
  "npopex_echo",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-station-control-client
3
- Version: 9.13.0
3
+ Version: 9.15.0
4
4
  Summary: Python client for communicating with Station Control Service
5
5
  Author-email: IQM Finland Oy <info@meetiqm.com>
6
6
  License: Apache License
@@ -0,0 +1 @@
1
+ 9.15.0
@@ -1 +0,0 @@
1
- 9.13.0