iqm-station-control-client 9.17.0__py3-none-any.whl → 10.0.0__py3-none-any.whl

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.
@@ -29,7 +29,7 @@ from iqm.station_control.interface.models.type_aliases import StrUUID
29
29
 
30
30
 
31
31
  class ClientCallDetails(grpc.ClientCallDetails):
32
- def __init__(self, details):
32
+ def __init__(self, details): # noqa: ANN001
33
33
  self.method = details.method
34
34
  self.metadata = list(details.metadata or [])
35
35
  self.timeout = details.timeout
@@ -42,15 +42,15 @@ class ApiTokenAuth(grpc.UnaryUnaryClientInterceptor, grpc.UnaryStreamClientInter
42
42
  def __init__(self, get_token_callback: Callable[[], str]):
43
43
  self.get_token_callback = get_token_callback
44
44
 
45
- def _add_auth_header(self, client_call_details) -> ClientCallDetails:
45
+ def _add_auth_header(self, client_call_details) -> ClientCallDetails: # noqa: ANN001
46
46
  details = ClientCallDetails(client_call_details)
47
47
  details.metadata.append(("authorization", self.get_token_callback()))
48
48
  return details
49
49
 
50
- def intercept_unary_stream(self, continuation, client_call_details, request):
50
+ def intercept_unary_stream(self, continuation, client_call_details, request): # noqa: ANN001, ANN201
51
51
  return continuation(self._add_auth_header(client_call_details), request)
52
52
 
53
- def intercept_unary_unary(self, continuation, client_call_details, request):
53
+ def intercept_unary_unary(self, continuation, client_call_details, request): # noqa: ANN001, ANN201
54
54
  return continuation(self._add_auth_header(client_call_details), request)
55
55
 
56
56
 
@@ -493,7 +493,7 @@ def parse_json(data: bytes) -> Any:
493
493
 
494
494
 
495
495
  @contextmanager
496
- def wrap_error(title: str):
496
+ def wrap_error(title: str): # noqa: ANN201
497
497
  try:
498
498
  yield
499
499
  except grpc.RpcError as e:
@@ -63,40 +63,40 @@ class _MockChannel(grpc.Channel):
63
63
  def __init__(self, mock: IqmServerMockBase):
64
64
  self._mock = mock
65
65
 
66
- def subscribe(self, callback, try_to_connect=False):
66
+ def subscribe(self, callback, try_to_connect=False): # noqa: ANN001, ANN202
67
67
  pass
68
68
 
69
- def unsubscribe(self, callback):
69
+ def unsubscribe(self, callback): # noqa: ANN001, ANN202
70
70
  pass
71
71
 
72
- def unary_unary(self, method, *args, **kwargs):
72
+ def unary_unary(self, method, *args, **kwargs): # noqa: ANN001, ANN202
73
73
  return self._create_callable(method)
74
74
 
75
- def unary_stream(self, method, *args, **kwargs):
75
+ def unary_stream(self, method, *args, **kwargs): # noqa: ANN001, ANN202
76
76
  return self._create_callable(method)
77
77
 
78
- def stream_unary(self, method, *args, **kwargs):
78
+ def stream_unary(self, method, *args, **kwargs): # noqa: ANN001, ANN202
79
79
  return self._create_callable(method)
80
80
 
81
- def stream_stream(self, method, *args, **kwargs):
81
+ def stream_stream(self, method, *args, **kwargs): # noqa: ANN001, ANN202
82
82
  return self._create_callable(method)
83
83
 
84
- def close(self):
84
+ def close(self): # noqa: ANN202
85
85
  pass
86
86
 
87
- def _create_callable(self, fq_method: str):
87
+ def _create_callable(self, fq_method: str): # noqa: ANN202
88
88
  _, fn_name = fq_method.lstrip("/").split("/")
89
89
  f = getattr(self._mock, fn_name)
90
90
 
91
- def callable(request):
91
+ def callable(request): # noqa: ANN001, ANN202
92
92
  return f(request, _MockContext())
93
93
 
94
94
  return callable
95
95
 
96
96
 
97
97
  class _MockContext:
98
- def set_code(self, code):
98
+ def set_code(self, code): # noqa: ANN001, ANN202
99
99
  pass
100
100
 
101
- def set_details(self, details):
101
+ def set_details(self, details): # noqa: ANN001, ANN202
102
102
  pass
@@ -50,7 +50,7 @@ class ListModel(RootModel):
50
50
  def __iter__(self):
51
51
  return iter(self.root)
52
52
 
53
- def __getitem__(self, item):
53
+ def __getitem__(self, item): # noqa: ANN001
54
54
  return self.root[item]
55
55
 
56
56
  def __len__(self) -> int:
@@ -203,7 +203,7 @@ class QONMetricRegistry:
203
203
 
204
204
  """
205
205
 
206
- def decorator(subclass: type[QONMetric]):
206
+ def decorator(subclass: type[QONMetric]): # noqa: ANN202
207
207
  for name in method_names:
208
208
  if (owner := cls._registry.get(name)) is not None:
209
209
  raise ValueError(f"Method {name} already registered to {owner.__name__}")
@@ -567,7 +567,7 @@ class StationControlClient(_StationControlClientBase):
567
567
  return model.model_dump_json()
568
568
 
569
569
  # TODO SW-1387: Remove this when using v1 API, not needed
570
- def _check_api_versions(self):
570
+ def _check_api_versions(self): # noqa: ANN202
571
571
  client_api_version = self._get_client_api_version()
572
572
  # Parse versions using standard packaging.version implementation.
573
573
  # For that purpose, we need to convert our custom " (local editable)" to follow packaging.version syntax.
@@ -36,6 +36,7 @@ from iqm.station_control.interface.models.observation import (
36
36
  from iqm.station_control.interface.models.observation_set import (
37
37
  ObservationSetData,
38
38
  ObservationSetDefinition,
39
+ ObservationSetType,
39
40
  ObservationSetUpdate,
40
41
  ObservationSetWithObservations,
41
42
  QualityMetrics,
@@ -52,7 +53,6 @@ from iqm.station_control.interface.models.sweep import SweepData, SweepDefinitio
52
53
  from iqm.station_control.interface.models.type_aliases import (
53
54
  DutType,
54
55
  GetObservationsMode,
55
- ObservationSetType,
56
56
  SoftwareVersionSet,
57
57
  Statuses,
58
58
  SweepResults,
@@ -125,7 +125,7 @@ class JobExecutorStatus(Enum):
125
125
  def __hash__(self):
126
126
  return hash(self.name)
127
127
 
128
- def __eq__(self, other):
128
+ def __eq__(self, other): # noqa: ANN001
129
129
  if isinstance(other, str):
130
130
  try:
131
131
  other = JobExecutorStatus(other.lower())
@@ -135,7 +135,7 @@ class JobExecutorStatus(Enum):
135
135
  return NotImplemented
136
136
  return self.name == other.name
137
137
 
138
- def __lt__(self, other):
138
+ def __lt__(self, other): # noqa: ANN001
139
139
  """Comparison according to definition order.
140
140
 
141
141
  :meta public:
@@ -14,15 +14,28 @@
14
14
  """Observation set related station control interface models."""
15
15
 
16
16
  from datetime import datetime
17
+ import enum
17
18
  import uuid
18
19
 
19
20
  from pydantic import ConfigDict, Field
20
21
 
21
22
  from iqm.station_control.interface.models.observation import ObservationLite
22
- from iqm.station_control.interface.models.type_aliases import ObservationSetType
23
23
  from iqm.station_control.interface.pydantic_base import PydanticBase
24
24
 
25
25
 
26
+ class ObservationSetType(enum.StrEnum):
27
+ """Different types of observation sets."""
28
+
29
+ GENERIC_SET = "generic-set"
30
+ """For human users."""
31
+ CALIBRATION_SET = "calibration-set"
32
+ """Describes an operating point of a quantum computer."""
33
+ QUALITY_METRIC_SET = "quality-metric-set"
34
+ """Describes the quality of a calibration set at a certain point in time."""
35
+ CHARACTERIZATION_SET = "characterization-set"
36
+ """Starting point for a calibration procedure."""
37
+
38
+
26
39
  class ObservationSetBase(PydanticBase):
27
40
  """Abstract base class of the observation set definition and data."""
28
41
 
@@ -25,7 +25,6 @@ StrUUID = str | UUID
25
25
 
26
26
  DutType = Literal["chip", "twpa"]
27
27
  GetObservationsMode = Literal["all_latest", "tags_and", "tags_or", "sequence"]
28
- ObservationSetType = Literal["calibration-set", "characterization-set", "generic-set", "quality-metric-set"]
29
28
  SoftwareVersionSet = dict[str, str]
30
29
  Statuses = list[tuple[str, int, int]]
31
30
  SweepResults = dict[str, list[np.ndarray]]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-station-control-client
3
- Version: 9.17.0
3
+ Version: 10.0.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
@@ -1,13 +1,13 @@
1
1
  iqm/station_control/client/__init__.py,sha256=1ND-AkIE9xLGIscH3WN44eyll9nlFhXeyCm-8EDFGQ4,942
2
- iqm/station_control/client/list_models.py,sha256=w_KUflrR9J1ODphu7dy3BOj1d4fzNrHj0J0HfgNitO4,2508
2
+ iqm/station_control/client/list_models.py,sha256=jpnmUqFvmzGxhq6fDBrV2crIgGNY5NfYqj5odpyWO-w,2524
3
3
  iqm/station_control/client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- iqm/station_control/client/qon.py,sha256=jDM6vyqAk2DqMrKrAzp5zrQ32Owb1D20wR4xIyNezQw,27197
5
- iqm/station_control/client/station_control.py,sha256=X19lCDgaoH36zOvNpsBxEE9BgijdeE2cp639S-G2hjw,29073
4
+ iqm/station_control/client/qon.py,sha256=_Ljolt5YAnosn1abThi8CooI883VqkNEFrcUsiDBYiY,27213
5
+ iqm/station_control/client/station_control.py,sha256=XbRkDvKiRvNsCQmMZPe1tkBDYR57q9oYLRC2HHsIRKg,29089
6
6
  iqm/station_control/client/utils.py,sha256=-6K4KgOgA4iyUCqX-w26JvFxlwlGBehGj4tIWCEbn74,3360
7
7
  iqm/station_control/client/iqm_server/__init__.py,sha256=nLsRHN1rnOKXwuzaq_liUpAYV3sis5jkyHccSdacV7U,624
8
8
  iqm/station_control/client/iqm_server/error.py,sha256=a8l7UTnzfbD8KDHP-uOve77S6LR1ai9uM_J_xHbLs0Y,1175
9
- iqm/station_control/client/iqm_server/grpc_utils.py,sha256=bdg-V27zF4j271ecGfGtv84ZO4kT6nLsbF2_hSDhWVY,5851
10
- iqm/station_control/client/iqm_server/iqm_server_client.py,sha256=KEpcJkwmIcxxMHyBfrkgDGNznEHpQ-lvzX__Mo43wdU,21844
9
+ iqm/station_control/client/iqm_server/grpc_utils.py,sha256=nlfQoIvLrDlETP32vvm9qbkcWZbI0tLEhqXCalXO_RU,5931
10
+ iqm/station_control/client/iqm_server/iqm_server_client.py,sha256=cRI4E3RYFkawngUg0U_OUNXR6jdvMnmkkz98YPILdRA,21860
11
11
  iqm/station_control/client/iqm_server/proto/__init__.py,sha256=mOJQ_H-NEyJMffRaDSSZeXrScHaHaHEXULv-O_OJA3A,1345
12
12
  iqm/station_control/client/iqm_server/proto/calibration_pb2.py,sha256=gum0DGmqxhbfaar8SqahmSif1pB6hgo0pVcnoi3VMUo,3017
13
13
  iqm/station_control/client/iqm_server/proto/calibration_pb2.pyi,sha256=4lTHY_GhrsLIHqoGDkNLYu56QHzX_iHEbLaYq-HR1m8,2016
@@ -25,7 +25,7 @@ iqm/station_control/client/iqm_server/proto/uuid_pb2.py,sha256=H1O7qvtRg2zXqOVfW
25
25
  iqm/station_control/client/iqm_server/proto/uuid_pb2.pyi,sha256=C78m8tpY-sB9VbneOCpSCzrgjqFFu4a1eKBngQB0GuA,1055
26
26
  iqm/station_control/client/iqm_server/proto/uuid_pb2_grpc.py,sha256=SF40l84__r-OGGNYBru5ik9gih-XqeTq2iwM5gMN5Qc,726
27
27
  iqm/station_control/client/iqm_server/testing/__init__.py,sha256=wCNfJHIR_bqG3ZBlgm55v90Rih7VCpfctoIMfwRMgjk,567
28
- iqm/station_control/client/iqm_server/testing/iqm_server_mock.py,sha256=X_Chi8TKx95PiuhFfGnRu9LxeIpnKKynW_8tXwxFQD8,3340
28
+ iqm/station_control/client/iqm_server/testing/iqm_server_mock.py,sha256=e0eIjdbLzlD_hH6gXv1usv4lhDGzeARpKY7WkVkJygw,3588
29
29
  iqm/station_control/client/serializers/__init__.py,sha256=eSAjgO5DME9jR1VmtA5-ewJG7rZ6AiWgAc-gs640_20,1436
30
30
  iqm/station_control/client/serializers/channel_property_serializer.py,sha256=VuWRqyPTeKK0gPHgE2r29k5JcdkTzDOOAdcC5hd7Nok,7283
31
31
  iqm/station_control/client/serializers/datetime_serializers.py,sha256=PzSDJFc81BtfTfBDJdeh98pfpwIhloxko-I4HjvjAEM,1122
@@ -40,20 +40,20 @@ iqm/station_control/interface/list_with_meta.py,sha256=M8BacgBDjbf7yabNK-OHCJWrc
40
40
  iqm/station_control/interface/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
41
  iqm/station_control/interface/pydantic_base.py,sha256=pQCa-8SRgBKMSwG-KyXA1HcIxE_qGMJt9g_eOGdZ31g,1303
42
42
  iqm/station_control/interface/station_control.py,sha256=5gtDouAQ13KnyXNQUcBrpKG9pZdjIsX6fLJU9bmYJxU,20433
43
- iqm/station_control/interface/models/__init__.py,sha256=Ws4jWnJUHrWKTBvvx4Dulwzni9oqhrR3_HZMcdgXoco,1989
43
+ iqm/station_control/interface/models/__init__.py,sha256=BP9iIwHi0nw8CUzScXOsu8bhxnE_rRulOsRVO5L1hx0,1989
44
44
  iqm/station_control/interface/models/dut.py,sha256=Hc_0XllXeIPGWhHsY7PC_jMpi7swpqo3jQQEQVnF3AM,1216
45
45
  iqm/station_control/interface/models/dynamic_quantum_architecture.py,sha256=3YlI9e1XxdbkBzlOdxmzYTccJ8AJRnRSIp-JoBf8Yyw,4698
46
- iqm/station_control/interface/models/jobs.py,sha256=5yqIcYBF--8l-zh2TevMC7rwjC2NpKTT7si1T2S2Bhw,6547
46
+ iqm/station_control/interface/models/jobs.py,sha256=L-c2uTqWSTVb6Kq3GGSi5i6w9ZacdCCIEPUqpErR8lY,6579
47
47
  iqm/station_control/interface/models/monitor.py,sha256=ItlgxtBup1hHg64uKeMKiFE7MaRRqSYdVRttsFD_XeU,1352
48
48
  iqm/station_control/interface/models/observation.py,sha256=IblYdzJN88BNlyxUVR_dIx7BgD_GHGLhHUwy89Fib-I,3281
49
- iqm/station_control/interface/models/observation_set.py,sha256=EPNv-V_LIHRfJw3PS3kpTECcWqLcDiDFwxf5kuxLFXI,3580
49
+ iqm/station_control/interface/models/observation_set.py,sha256=y6uqslVF2kO1zREPE6EtrvG9ZVrLo0S2Sk7ZhRL8pks,3993
50
50
  iqm/station_control/interface/models/run.py,sha256=uEuAMryG-AjAIBTchftw94GpoSBE5SQK2qmlZZ4tq5k,4097
51
51
  iqm/station_control/interface/models/sequence.py,sha256=boWlMfP3woVgVObW3OaNbxsUV_qHYP1DA-oIBWj6XIo,2723
52
52
  iqm/station_control/interface/models/static_quantum_architecture.py,sha256=gsfJKlYsfZVEK3dqEKXkBSIHiY14DGwNbhPJdNHMtNM,1435
53
53
  iqm/station_control/interface/models/sweep.py,sha256=HFoFIrKhlYmHIBfGltY2O9_J28OvkkZILRbDHuqR0wc,2509
54
- iqm/station_control/interface/models/type_aliases.py,sha256=gEYJ8zOpV1m0NVyYUbAL43psp9Lxw_0t68mYlI65Sds,1262
55
- iqm_station_control_client-9.17.0.dist-info/LICENSE.txt,sha256=R6Q7eUrLyoCQgWYorQ8WJmVmWKYU3dxA3jYUp0wwQAw,11332
56
- iqm_station_control_client-9.17.0.dist-info/METADATA,sha256=hcftjRQGpuV6LD3HGIDHM8g_6TK4-h5H6Cka29Wz7eo,14107
57
- iqm_station_control_client-9.17.0.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
58
- iqm_station_control_client-9.17.0.dist-info/top_level.txt,sha256=NB4XRfyDS6_wG9gMsyX-9LTU7kWnTQxNvkbzIxGv3-c,4
59
- iqm_station_control_client-9.17.0.dist-info/RECORD,,
54
+ iqm/station_control/interface/models/type_aliases.py,sha256=StsUwqwPp1N9wh79w40C6eEp7OmQ8E5AnJX7w2mqTnQ,1153
55
+ iqm_station_control_client-10.0.0.dist-info/LICENSE.txt,sha256=R6Q7eUrLyoCQgWYorQ8WJmVmWKYU3dxA3jYUp0wwQAw,11332
56
+ iqm_station_control_client-10.0.0.dist-info/METADATA,sha256=jJHffOq3tZJXSACfHwv-l3gnQ7bnozt8Gdv3QrHZ2xI,14107
57
+ iqm_station_control_client-10.0.0.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
58
+ iqm_station_control_client-10.0.0.dist-info/top_level.txt,sha256=NB4XRfyDS6_wG9gMsyX-9LTU7kWnTQxNvkbzIxGv3-c,4
59
+ iqm_station_control_client-10.0.0.dist-info/RECORD,,