iqm-station-control-client 9.2.0__tar.gz → 9.4.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 (81) hide show
  1. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/CHANGELOG.rst +16 -0
  2. {iqm_station_control_client-9.2.0/src/iqm_station_control_client.egg-info → iqm_station_control_client-9.4.0}/PKG-INFO +1 -1
  3. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/station_control.py +2 -1
  4. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/interface/models/dynamic_quantum_architecture.py +22 -1
  5. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0/src/iqm_station_control_client.egg-info}/PKG-INFO +1 -1
  6. iqm_station_control_client-9.4.0/version.txt +1 -0
  7. iqm_station_control_client-9.2.0/version.txt +0 -1
  8. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/LICENSE.txt +0 -0
  9. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/MANIFEST.in +0 -0
  10. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/README.rst +0 -0
  11. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/docs/API.rst +0 -0
  12. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/docs/Makefile +0 -0
  13. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/docs/_static/css/custom.css +0 -0
  14. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/docs/_static/images/favicon.ico +0 -0
  15. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/docs/_static/images/logo.png +0 -0
  16. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/docs/_templates/autosummary-class-template.rst +0 -0
  17. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/docs/_templates/autosummary-module-template.rst +0 -0
  18. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/docs/changelog.rst +0 -0
  19. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/docs/conf.py +0 -0
  20. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/docs/index.rst +0 -0
  21. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/docs/license.rst +0 -0
  22. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/pyproject.toml +0 -0
  23. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/requirements/base.in +0 -0
  24. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/requirements/base.txt +0 -0
  25. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/setup.cfg +0 -0
  26. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/setup.py +0 -0
  27. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/__init__.py +0 -0
  28. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/__init__.py +0 -0
  29. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/error.py +0 -0
  30. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/grpc_utils.py +0 -0
  31. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/iqm_server_client.py +0 -0
  32. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/proto/__init__.py +0 -0
  33. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/proto/calibration_pb2.py +0 -0
  34. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/proto/calibration_pb2.pyi +0 -0
  35. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/proto/calibration_pb2_grpc.py +0 -0
  36. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/proto/common_pb2.py +0 -0
  37. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/proto/common_pb2.pyi +0 -0
  38. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/proto/common_pb2_grpc.py +0 -0
  39. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/proto/job_pb2.py +0 -0
  40. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/proto/job_pb2.pyi +0 -0
  41. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/proto/job_pb2_grpc.py +0 -0
  42. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/proto/qc_pb2.py +0 -0
  43. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/proto/qc_pb2.pyi +0 -0
  44. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/proto/qc_pb2_grpc.py +0 -0
  45. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/proto/uuid_pb2.py +0 -0
  46. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/proto/uuid_pb2.pyi +0 -0
  47. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/proto/uuid_pb2_grpc.py +0 -0
  48. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/testing/__init__.py +0 -0
  49. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/iqm_server/testing/iqm_server_mock.py +0 -0
  50. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/list_models.py +0 -0
  51. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/serializers/__init__.py +0 -0
  52. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/serializers/channel_property_serializer.py +0 -0
  53. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/serializers/datetime_serializers.py +0 -0
  54. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/serializers/playlist_serializers.py +0 -0
  55. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/serializers/run_serializers.py +0 -0
  56. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/serializers/setting_node_serializer.py +0 -0
  57. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/serializers/struct_serializer.py +0 -0
  58. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/serializers/sweep_serializers.py +0 -0
  59. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/serializers/task_serializers.py +0 -0
  60. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/client/utils.py +0 -0
  61. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/interface/__init__.py +0 -0
  62. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/interface/list_with_meta.py +0 -0
  63. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/interface/models/__init__.py +0 -0
  64. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/interface/models/dut.py +0 -0
  65. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/interface/models/jobs.py +0 -0
  66. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/interface/models/monitor.py +0 -0
  67. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/interface/models/observation.py +0 -0
  68. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/interface/models/observation_set.py +0 -0
  69. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/interface/models/run.py +0 -0
  70. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/interface/models/sequence.py +0 -0
  71. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/interface/models/static_quantum_architecture.py +0 -0
  72. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/interface/models/sweep.py +0 -0
  73. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/interface/models/type_aliases.py +0 -0
  74. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/interface/pydantic_base.py +0 -0
  75. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm/station_control/interface/station_control.py +0 -0
  76. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm_station_control_client.egg-info/SOURCES.txt +0 -0
  77. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm_station_control_client.egg-info/dependency_links.txt +0 -0
  78. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm_station_control_client.egg-info/requires.txt +0 -0
  79. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/src/iqm_station_control_client.egg-info/top_level.txt +0 -0
  80. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/tests/.pylintrc +0 -0
  81. {iqm_station_control_client-9.2.0 → iqm_station_control_client-9.4.0}/tests/__init__.py +0 -0
@@ -2,6 +2,22 @@
2
2
  Changelog
3
3
  =========
4
4
 
5
+ Version 9.4.0 (2025-06-26)
6
+ ==========================
7
+
8
+ Bug fixes
9
+ ---------
10
+
11
+ - Bump default timeout from 120 to 600
12
+
13
+ Version 9.3.0 (2025-06-25)
14
+ ==========================
15
+
16
+ Bug fixes
17
+ ---------
18
+
19
+ - Fix DQA deserialization when ``override_default_implementations`` is not empty. :issue:`SW-1625`
20
+
5
21
  Version 9.2.0 (2025-06-25)
6
22
  ==========================
7
23
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-station-control-client
3
- Version: 9.2.0
3
+ Version: 9.4.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
@@ -145,7 +145,7 @@ class _StationControlClientBase(StationControlInterface):
145
145
  params: dict[str, Any] | None = None,
146
146
  json_str: str | None = None,
147
147
  octets: bytes | None = None,
148
- timeout: int = 120,
148
+ timeout: int = 600,
149
149
  ) -> requests.Response:
150
150
  """Send an HTTP request.
151
151
 
@@ -159,6 +159,7 @@ class _StationControlClientBase(StationControlInterface):
159
159
  params: HTTP query parameters to store in the query string of the request URL.
160
160
  json_str: JSON string to store in the body, may contain arbitrary Unicode characters.
161
161
  octets: Pre-serialized binary data to store in the body.
162
+ timeout: Timeout for the request in seconds.
162
163
 
163
164
  Returns:
164
165
  Response to the request.
@@ -13,9 +13,10 @@
13
13
  # limitations under the License.
14
14
  """Dynamic quantum architecture (DQA) related interface models."""
15
15
 
16
+ from typing import Any
16
17
  from uuid import UUID
17
18
 
18
- from pydantic import Field, StrictStr
19
+ from pydantic import Field, StrictStr, field_validator
19
20
 
20
21
  from iqm.station_control.interface.pydantic_base import PydanticBase
21
22
 
@@ -59,6 +60,26 @@ class GateInfo(PydanticBase):
59
60
  )
60
61
  """Mapping of loci to implementation names that override ``default_implementation`` for those loci."""
61
62
 
63
+ @field_validator("override_default_implementation", mode="before")
64
+ @classmethod
65
+ def override_default_implementation_validator(cls, value: Any) -> dict[Locus, str]:
66
+ """Converts locus keys to tuples if they are encoded as strings."""
67
+ new_value = {}
68
+ if isinstance(value, dict):
69
+ for k, v in value.items():
70
+ if isinstance(k, tuple):
71
+ new_value[k] = v
72
+ # When Pydantic serializes a dict with tuple keys into JSON, the keys are turned into
73
+ # comma-separated strings (because JSON only supports string keys). Here we convert
74
+ # them back into tuples.
75
+ elif isinstance(k, str):
76
+ new_k = tuple(k.split(","))
77
+ new_value[new_k] = v
78
+ else:
79
+ raise ValueError("'override_default_implementation' keys must be strings or tuples.")
80
+ return new_value
81
+ raise ValueError("'override_default_implementation' must be a dict.")
82
+
62
83
 
63
84
  class DynamicQuantumArchitecture(PydanticBase):
64
85
  """The dynamic quantum architecture (DQA).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-station-control-client
3
- Version: 9.2.0
3
+ Version: 9.4.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.4.0
@@ -1 +0,0 @@
1
- 9.2.0