iqm-exa-common 26.21.0__tar.gz → 26.22.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_exa_common-26.21.0 → iqm_exa_common-26.22.0}/CHANGELOG.rst +9 -0
  2. {iqm_exa_common-26.21.0/src/iqm_exa_common.egg-info → iqm_exa_common-26.22.0}/PKG-INFO +2 -2
  3. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/requirements/base.in +1 -1
  4. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/requirements/base.txt +1 -1
  5. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/data/parameter.py +1 -1
  6. iqm_exa_common-26.21.0/src/exa/common/errors/server_errors.py → iqm_exa_common-26.22.0/src/exa/common/errors/station_control_errors.py +13 -3
  7. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/qcm_data/qcm_data_client.py +1 -1
  8. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0/src/iqm_exa_common.egg-info}/PKG-INFO +2 -2
  9. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/iqm_exa_common.egg-info/SOURCES.txt +1 -1
  10. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/iqm_exa_common.egg-info/requires.txt +1 -1
  11. iqm_exa_common-26.22.0/version.txt +1 -0
  12. iqm_exa_common-26.21.0/version.txt +0 -1
  13. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/LICENSE.txt +0 -0
  14. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/MANIFEST.in +0 -0
  15. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/README.rst +0 -0
  16. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/API.rst +0 -0
  17. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/Makefile +0 -0
  18. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/_static/.gitignore +0 -0
  19. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/_static/css/custom.css +0 -0
  20. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/_static/images/favicon.ico +0 -0
  21. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/_static/images/logo.png +0 -0
  22. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/_templates/autosummary-class-template.rst +0 -0
  23. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/_templates/autosummary-module-template.rst +0 -0
  24. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/changelog.rst +0 -0
  25. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/conf.py +0 -0
  26. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/index.rst +0 -0
  27. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/license.rst +0 -0
  28. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/pyproject.toml +0 -0
  29. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/setup.cfg +0 -0
  30. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/setup.py +0 -0
  31. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/__init__.py +0 -0
  32. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/__init__.py +0 -0
  33. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/__init__.py +0 -0
  34. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/_parameter.py +0 -0
  35. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/array.py +0 -0
  36. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/datum.py +0 -0
  37. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/nd_sweep.py +0 -0
  38. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/sequence.py +0 -0
  39. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/setting_node.py +0 -0
  40. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/__init__.py +0 -0
  41. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/__init__.py +0 -0
  42. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/exponential_sweep.py +0 -0
  43. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/fixed_sweep.py +0 -0
  44. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/linear_sweep.py +0 -0
  45. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/__init__.py +0 -0
  46. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/center_span_base_options.py +0 -0
  47. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/center_span_options.py +0 -0
  48. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/constants.py +0 -0
  49. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/fixed_options.py +0 -0
  50. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/option_converter.py +0 -0
  51. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/start_stop_base_options.py +0 -0
  52. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/start_stop_options.py +0 -0
  53. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/sweep_options.py +0 -0
  54. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/sweep.py +0 -0
  55. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/sweep_values.py +0 -0
  56. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/data/__init__.py +0 -0
  57. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/data/base_model.py +0 -0
  58. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/data/setting_node.py +0 -0
  59. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/data/settingnode_v2.html.jinja2 +0 -0
  60. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/data/value.py +0 -0
  61. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/errors/__init__.py +0 -0
  62. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/errors/exa_error.py +0 -0
  63. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/helpers/__init__.py +0 -0
  64. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/helpers/data_helper.py +0 -0
  65. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/helpers/deprecation.py +0 -0
  66. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/helpers/json_helper.py +0 -0
  67. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/helpers/numpy_helper.py +0 -0
  68. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/helpers/software_version_helper.py +0 -0
  69. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/helpers/yaml_helper.py +0 -0
  70. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/logger/__init__.py +0 -0
  71. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/logger/logger.py +0 -0
  72. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/qcm_data/__init__.py +0 -0
  73. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/qcm_data/chad_model.py +0 -0
  74. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/qcm_data/chip_topology.py +0 -0
  75. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/qcm_data/file_adapter.py +0 -0
  76. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/qcm_data/immutable_base_model.py +0 -0
  77. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/sweep/__init__.py +0 -0
  78. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/sweep/database_serialization.py +0 -0
  79. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/sweep/util.py +0 -0
  80. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/iqm_exa_common.egg-info/dependency_links.txt +0 -0
  81. {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/iqm_exa_common.egg-info/top_level.txt +0 -0
@@ -2,6 +2,15 @@
2
2
  Changelog
3
3
  =========
4
4
 
5
+ Version 26.22.0 (2025-06-13)
6
+ ============================
7
+
8
+ Features
9
+ --------
10
+
11
+ - Rename ``server_errors.py`` to ``station_control_errors.py`` for better clarity.
12
+ - Add two new :class:`StationControlError` subclasses, :class:`BadGatewayError` and :class:`GatewayTimeoutError`.
13
+
5
14
  Version 26.21.0 (2025-06-10)
6
15
  ============================
7
16
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-exa-common
3
- Version: 26.21.0
3
+ Version: 26.22.0
4
4
  Summary: Framework for control and measurement of superconducting qubits: common library
5
5
  Author-email: IQM Finland Oy <info@meetiqm.com>
6
6
  License: Apache License
@@ -213,7 +213,7 @@ Classifier: Intended Audience :: Science/Research
213
213
  Requires-Python: >=3.11
214
214
  Description-Content-Type: text/x-rst
215
215
  License-File: LICENSE.txt
216
- Requires-Dist: iqm-data-definitions<3.0,>=2.6
216
+ Requires-Dist: iqm-data-definitions<3.0,>=2.13
217
217
  Requires-Dist: numpy<3.0,>=1.26.4
218
218
  Requires-Dist: pydantic<3.0,>=2.10.4
219
219
  Requires-Dist: python-dotenv==0.21.1
@@ -1,4 +1,4 @@
1
- iqm-data-definitions >= 2.6, < 3.0
1
+ iqm-data-definitions >= 2.13, < 3.0
2
2
  numpy >= 1.26.4, < 3.0
3
3
  pydantic >= 2.10.4, < 3.0
4
4
  python-dotenv == 0.21.1
@@ -1,4 +1,4 @@
1
- iqm-data-definitions >= 2.6, < 3.0
1
+ iqm-data-definitions >= 2.13, < 3.0
2
2
  numpy >= 1.26.4, < 3.0
3
3
  pydantic >= 2.10.4, < 3.0
4
4
  python-dotenv == 0.21.1
@@ -71,7 +71,7 @@ import xarray as xr
71
71
  from exa.common.control.sweep.sweep_values import SweepValues
72
72
  from exa.common.data.base_model import BaseModel
73
73
  from exa.common.data.value import ObservationValue
74
- from exa.common.errors.server_errors import ValidationError
74
+ from exa.common.errors.station_control_errors import ValidationError
75
75
 
76
76
  CastType = str | list["CastType"] | None
77
77
 
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- """Errors used in the client-server communication."""
14
+ """Errors used in the station control client-server communication."""
15
15
 
16
16
  from http import HTTPStatus
17
17
 
@@ -19,11 +19,11 @@ from exa.common.errors.exa_error import ExaError
19
19
 
20
20
 
21
21
  class StationControlError(ExaError):
22
- """Base class for station control errors used in client-server communication."""
22
+ """Base class for station control errors."""
23
23
 
24
24
  # TODO: StationControlError shouldn't need to inherit ExaError
25
25
  # Some clients might still expect ExaErrors, thus inheriting here to avoid issues because of that.
26
- # Ideally, we would keep server errors (raised by station control) and any client side errors separately.
26
+ # Ideally, we would keep server errors (raised by station control) and any client side errors separate.
27
27
 
28
28
 
29
29
  class BadRequestError(StationControlError):
@@ -64,10 +64,18 @@ class InternalServerError(StationControlError):
64
64
  """
65
65
 
66
66
 
67
+ class BadGatewayError(StationControlError):
68
+ """Error raised when there are invalid responses from another server/proxy."""
69
+
70
+
67
71
  class ServiceUnavailableError(StationControlError):
68
72
  """Error raised when the service is unavailable."""
69
73
 
70
74
 
75
+ class GatewayTimeoutError(StationControlError):
76
+ """Error raised when the gateway server did not receive a timely response."""
77
+
78
+
71
79
  _ERROR_TO_STATUS_CODE_MAPPING = {
72
80
  BadRequestError: HTTPStatus.BAD_REQUEST, # 400
73
81
  UnauthorizedError: HTTPStatus.UNAUTHORIZED, # 401
@@ -76,7 +84,9 @@ _ERROR_TO_STATUS_CODE_MAPPING = {
76
84
  ConflictError: HTTPStatus.CONFLICT, # 409
77
85
  ValidationError: HTTPStatus.UNPROCESSABLE_ENTITY, # 422
78
86
  InternalServerError: HTTPStatus.INTERNAL_SERVER_ERROR, # 500
87
+ BadGatewayError: HTTPStatus.BAD_GATEWAY, # 502
79
88
  ServiceUnavailableError: HTTPStatus.SERVICE_UNAVAILABLE, # 503
89
+ GatewayTimeoutError: HTTPStatus.GATEWAY_TIMEOUT, # 504
80
90
  }
81
91
 
82
92
  _STATUS_CODE_TO_ERROR_MAPPING = {value: key for key, value in _ERROR_TO_STATUS_CODE_MAPPING.items()}
@@ -25,7 +25,7 @@ from packaging.version import Version
25
25
  import requests
26
26
 
27
27
  from exa.common.errors.exa_error import ExaError
28
- from exa.common.errors.server_errors import NotFoundError, ValidationError
28
+ from exa.common.errors.station_control_errors import NotFoundError, ValidationError
29
29
  from exa.common.qcm_data.file_adapter import FileAdapter
30
30
 
31
31
  MIN_SUPPORTED_CONTENT_FORMAT_VERSION = Version("1.0")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-exa-common
3
- Version: 26.21.0
3
+ Version: 26.22.0
4
4
  Summary: Framework for control and measurement of superconducting qubits: common library
5
5
  Author-email: IQM Finland Oy <info@meetiqm.com>
6
6
  License: Apache License
@@ -213,7 +213,7 @@ Classifier: Intended Audience :: Science/Research
213
213
  Requires-Python: >=3.11
214
214
  Description-Content-Type: text/x-rst
215
215
  License-File: LICENSE.txt
216
- Requires-Dist: iqm-data-definitions<3.0,>=2.6
216
+ Requires-Dist: iqm-data-definitions<3.0,>=2.13
217
217
  Requires-Dist: numpy<3.0,>=1.26.4
218
218
  Requires-Dist: pydantic<3.0,>=2.10.4
219
219
  Requires-Dist: python-dotenv==0.21.1
@@ -52,7 +52,7 @@ src/exa/common/data/settingnode_v2.html.jinja2
52
52
  src/exa/common/data/value.py
53
53
  src/exa/common/errors/__init__.py
54
54
  src/exa/common/errors/exa_error.py
55
- src/exa/common/errors/server_errors.py
55
+ src/exa/common/errors/station_control_errors.py
56
56
  src/exa/common/helpers/__init__.py
57
57
  src/exa/common/helpers/data_helper.py
58
58
  src/exa/common/helpers/deprecation.py
@@ -1,4 +1,4 @@
1
- iqm-data-definitions<3.0,>=2.6
1
+ iqm-data-definitions<3.0,>=2.13
2
2
  numpy<3.0,>=1.26.4
3
3
  pydantic<3.0,>=2.10.4
4
4
  python-dotenv==0.21.1
@@ -0,0 +1 @@
1
+ 26.22.0
@@ -1 +0,0 @@
1
- 26.21.0