iqm-station-control-client 9.13.0__tar.gz → 9.14.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_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/CHANGELOG.rst +7 -0
- {iqm_station_control_client-9.13.0/src/iqm_station_control_client.egg-info → iqm_station_control_client-9.14.0}/PKG-INFO +1 -1
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/iqm_server_client.py +35 -3
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0/src/iqm_station_control_client.egg-info}/PKG-INFO +1 -1
- iqm_station_control_client-9.14.0/version.txt +1 -0
- iqm_station_control_client-9.13.0/version.txt +0 -1
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/LICENSE.txt +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/MANIFEST.in +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/README.rst +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/docs/API.rst +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/docs/Makefile +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/docs/_static/css/custom.css +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/docs/_static/images/favicon.ico +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/docs/_static/images/logo.png +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/docs/_templates/autosummary-class-template.rst +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/docs/_templates/autosummary-module-template.rst +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/docs/changelog.rst +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/docs/conf.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/docs/index.rst +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/docs/license.rst +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/pyproject.toml +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/requirements/base.in +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/requirements/base.txt +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/setup.cfg +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/setup.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/__init__.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/__init__.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/error.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/grpc_utils.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/proto/__init__.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/proto/calibration_pb2.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/proto/calibration_pb2.pyi +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/proto/calibration_pb2_grpc.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/proto/common_pb2.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/proto/common_pb2.pyi +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/proto/common_pb2_grpc.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/proto/job_pb2.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/proto/job_pb2.pyi +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/proto/job_pb2_grpc.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/proto/qc_pb2.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/proto/qc_pb2.pyi +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/proto/qc_pb2_grpc.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/proto/uuid_pb2.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/proto/uuid_pb2.pyi +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/proto/uuid_pb2_grpc.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/testing/__init__.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/iqm_server/testing/iqm_server_mock.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/list_models.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/py.typed +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/qon.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/serializers/__init__.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/serializers/channel_property_serializer.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/serializers/datetime_serializers.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/serializers/playlist_serializers.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/serializers/run_serializers.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/serializers/setting_node_serializer.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/serializers/struct_serializer.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/serializers/sweep_serializers.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/serializers/task_serializers.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/station_control.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/client/utils.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/__init__.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/list_with_meta.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/models/__init__.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/models/dut.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/models/dynamic_quantum_architecture.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/models/jobs.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/models/monitor.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/models/observation.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/models/observation_set.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/models/run.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/models/sequence.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/models/static_quantum_architecture.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/models/sweep.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/models/type_aliases.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/py.typed +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/pydantic_base.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm/station_control/interface/station_control.py +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm_station_control_client.egg-info/SOURCES.txt +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm_station_control_client.egg-info/dependency_links.txt +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm_station_control_client.egg-info/requires.txt +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/src/iqm_station_control_client.egg-info/top_level.txt +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/tests/.pylintrc +0 -0
- {iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/tests/__init__.py +0 -0
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
Changelog
|
|
3
3
|
=========
|
|
4
4
|
|
|
5
|
+
Version 9.14.0 (2025-08-14)
|
|
6
|
+
===========================
|
|
7
|
+
|
|
8
|
+
Bug fixes
|
|
9
|
+
---------
|
|
10
|
+
- Fixed an issue where the `IQMServerClient` was not correctly handling the retrieval of channel properties.
|
|
11
|
+
|
|
5
12
|
Version 9.13.0 (2025-08-12)
|
|
6
13
|
===========================
|
|
7
14
|
|
|
@@ -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
|
-
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
9.14.0
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
9.13.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/docs/_static/css/custom.css
RENAMED
|
File without changes
|
|
File without changes
|
{iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/docs/_static/images/logo.png
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
|
{iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/requirements/base.in
RENAMED
|
File without changes
|
{iqm_station_control_client-9.13.0 → iqm_station_control_client-9.14.0}/requirements/base.txt
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
|
|
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
|