iqm-station-control-client 3.3__tar.gz → 3.4__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 (54) hide show
  1. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/CHANGELOG.rst +11 -0
  2. {iqm_station_control_client-3.3/src/iqm_station_control_client.egg-info → iqm_station_control_client-3.4}/PKG-INFO +1 -1
  3. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/client/station_control.py +14 -9
  4. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4/src/iqm_station_control_client.egg-info}/PKG-INFO +1 -1
  5. iqm_station_control_client-3.4/version.txt +1 -0
  6. iqm_station_control_client-3.3/version.txt +0 -1
  7. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/LICENSE.txt +0 -0
  8. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/MANIFEST.in +0 -0
  9. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/README.rst +0 -0
  10. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/docs/API.rst +0 -0
  11. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/docs/Makefile +0 -0
  12. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/docs/_static/css/custom.css +0 -0
  13. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/docs/_static/images/favicon.ico +0 -0
  14. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/docs/_static/images/logo.png +0 -0
  15. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/docs/_templates/autosummary-class-template.rst +0 -0
  16. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/docs/_templates/autosummary-module-template.rst +0 -0
  17. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/docs/changelog.rst +0 -0
  18. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/docs/conf.py +0 -0
  19. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/docs/index.rst +0 -0
  20. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/docs/license.rst +0 -0
  21. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/pyproject.toml +0 -0
  22. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/requirements/base.in +0 -0
  23. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/requirements/base.txt +0 -0
  24. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/setup.cfg +0 -0
  25. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/setup.py +0 -0
  26. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/client/__init__.py +0 -0
  27. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/client/list_models.py +0 -0
  28. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/client/serializers/__init__.py +0 -0
  29. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/client/serializers/channel_property_serializer.py +0 -0
  30. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/client/serializers/datetime_serializers.py +0 -0
  31. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/client/serializers/playlist_serializers.py +0 -0
  32. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/client/serializers/run_serializers.py +0 -0
  33. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/client/serializers/setting_node_serializer.py +0 -0
  34. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/client/serializers/struct_serializer.py +0 -0
  35. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/client/serializers/sweep_serializers.py +0 -0
  36. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/client/serializers/task_serializers.py +0 -0
  37. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/client/utils.py +0 -0
  38. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/interface/__init__.py +0 -0
  39. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/interface/list_with_meta.py +0 -0
  40. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/interface/models/__init__.py +0 -0
  41. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/interface/models/dut.py +0 -0
  42. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/interface/models/observation.py +0 -0
  43. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/interface/models/observation_set.py +0 -0
  44. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/interface/models/run.py +0 -0
  45. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/interface/models/sequence.py +0 -0
  46. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/interface/models/sweep.py +0 -0
  47. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/interface/models/type_aliases.py +0 -0
  48. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm/station_control/interface/pydantic_base.py +0 -0
  49. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm_station_control_client.egg-info/SOURCES.txt +0 -0
  50. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm_station_control_client.egg-info/dependency_links.txt +0 -0
  51. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm_station_control_client.egg-info/requires.txt +0 -0
  52. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/src/iqm_station_control_client.egg-info/top_level.txt +0 -0
  53. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/tests/.pylintrc +0 -0
  54. {iqm_station_control_client-3.3 → iqm_station_control_client-3.4}/tests/__init__.py +0 -0
@@ -2,6 +2,17 @@
2
2
  Changelog
3
3
  =========
4
4
 
5
+ Version 3.4 (2025-03-05)
6
+ ========================
7
+
8
+ Features
9
+ --------
10
+
11
+ - Remove general RequestError and use new specific error classes instead, and improve error handling in general.
12
+ - Start using new "DELETE sweeps/{sweep_id}" endpoint instead of the deprecated one.
13
+ - Use HTTPStatus code names instead of numbers for better clarity. No functional changes.
14
+ - The ``/docs`` endpoint shows relevant metadata, e.g. the package version.
15
+
5
16
  Version 3.3 (2025-02-28)
6
17
  ========================
7
18
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-station-control-client
3
- Version: 3.3
3
+ Version: 3.4
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
@@ -29,7 +29,12 @@ from packaging.version import Version, parse
29
29
  import requests
30
30
 
31
31
  from exa.common.data.setting_node import SettingNode
32
- from exa.common.errors.exa_error import RequestError
32
+ from exa.common.errors.server_errors import (
33
+ STATUS_CODE_TO_ERROR_MAPPING,
34
+ InternalServerError,
35
+ NotFoundError,
36
+ StationControlError,
37
+ )
33
38
  from exa.common.qcm_data.qcm_data_client import QCMDataClient
34
39
  from iqm.station_control.client.list_models import (
35
40
  DutFieldDataList,
@@ -186,8 +191,8 @@ class StationControlClient:
186
191
  """Get a raw chip design record matching the given chip label."""
187
192
  try:
188
193
  response = self._send_request(requests.get, f"chip-design-records/{dut_label}")
189
- except RequestError as err:
190
- if str(err).find("An error occurred on the server with the error code 404") >= 0 and self._qcm_data_client:
194
+ except StationControlError as err:
195
+ if isinstance(err, NotFoundError) and self._qcm_data_client:
191
196
  return self._qcm_data_client.get_chip_design_record(dut_label)
192
197
  raise err
193
198
  return response.json()
@@ -230,7 +235,7 @@ class StationControlClient:
230
235
  in monolithic mode or successful submission to the task queue in remote mode.
231
236
 
232
237
  Raises:
233
- RequestError if submitting a sweep failed.
238
+ ExaError if submitting a sweep failed.
234
239
 
235
240
  """
236
241
  data = serialize_sweep_task_request(sweep_definition, queue_name="sweeps")
@@ -253,7 +258,7 @@ class StationControlClient:
253
258
 
254
259
  def delete_sweep(self, sweep_id: uuid.UUID) -> None:
255
260
  """Delete sweep in the database."""
256
- self._send_request(requests.delete, f"sweeps/{sweep_id}/delete")
261
+ self._send_request(requests.delete, f"sweeps/{sweep_id}")
257
262
 
258
263
  def get_sweep_results(self, sweep_id: uuid.UUID) -> SweepResults:
259
264
  """Get N-dimensional sweep results from the database."""
@@ -650,7 +655,7 @@ class StationControlClient:
650
655
  def _poll_task(self, task_id: str) -> dict:
651
656
  task = self._send_request(requests.get, f"tasks/{task_id}").json()
652
657
  if task["task_status"] == "FAILURE":
653
- raise RequestError(f"Server-side error. Details: {task}")
658
+ raise InternalServerError(task)
654
659
  return task
655
660
 
656
661
  def _send_request(
@@ -681,9 +686,9 @@ class StationControlClient:
681
686
  error_message = response_json["detail"]
682
687
  except json.JSONDecodeError:
683
688
  error_message = response.text
684
- raise RequestError(
685
- f"An error occurred on the server with the error code {response.status_code}: {error_message}"
686
- )
689
+
690
+ error_class = STATUS_CODE_TO_ERROR_MAPPING[response.status_code]
691
+ raise error_class(error_message)
687
692
  return response
688
693
 
689
694
  def _check_api_versions(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-station-control-client
3
- Version: 3.3
3
+ Version: 3.4
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
+ 3.4
@@ -1 +0,0 @@
1
- 3.3