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.
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/CHANGELOG.rst +9 -0
- {iqm_exa_common-26.21.0/src/iqm_exa_common.egg-info → iqm_exa_common-26.22.0}/PKG-INFO +2 -2
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/requirements/base.in +1 -1
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/requirements/base.txt +1 -1
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/data/parameter.py +1 -1
- 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
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/qcm_data/qcm_data_client.py +1 -1
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0/src/iqm_exa_common.egg-info}/PKG-INFO +2 -2
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/iqm_exa_common.egg-info/SOURCES.txt +1 -1
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/iqm_exa_common.egg-info/requires.txt +1 -1
- iqm_exa_common-26.22.0/version.txt +1 -0
- iqm_exa_common-26.21.0/version.txt +0 -1
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/LICENSE.txt +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/MANIFEST.in +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/README.rst +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/API.rst +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/Makefile +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/_static/.gitignore +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/_static/css/custom.css +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/_static/images/favicon.ico +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/_static/images/logo.png +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/_templates/autosummary-class-template.rst +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/_templates/autosummary-module-template.rst +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/changelog.rst +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/conf.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/index.rst +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/license.rst +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/pyproject.toml +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/setup.cfg +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/setup.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/__init__.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/__init__.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/__init__.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/_parameter.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/array.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/datum.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/nd_sweep.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/sequence.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/setting_node.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/__init__.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/__init__.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/exponential_sweep.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/fixed_sweep.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/linear_sweep.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/__init__.py +0 -0
- {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
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/center_span_options.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/constants.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/fixed_options.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/option_converter.py +0 -0
- {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
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/start_stop_options.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/sweep_options.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/sweep.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/sweep_values.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/data/__init__.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/data/base_model.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/data/setting_node.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/data/settingnode_v2.html.jinja2 +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/data/value.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/errors/__init__.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/errors/exa_error.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/helpers/__init__.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/helpers/data_helper.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/helpers/deprecation.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/helpers/json_helper.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/helpers/numpy_helper.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/helpers/software_version_helper.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/helpers/yaml_helper.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/logger/__init__.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/logger/logger.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/qcm_data/__init__.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/qcm_data/chad_model.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/qcm_data/chip_topology.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/qcm_data/file_adapter.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/qcm_data/immutable_base_model.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/sweep/__init__.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/sweep/database_serialization.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/sweep/util.py +0 -0
- {iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/iqm_exa_common.egg-info/dependency_links.txt +0 -0
- {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.
|
|
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.
|
|
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
|
|
@@ -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.
|
|
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
|
|
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
|
|
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()}
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/qcm_data/qcm_data_client.py
RENAMED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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/
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
26.22.0
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
26.21.0
|
|
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
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/_templates/autosummary-class-template.rst
RENAMED
|
File without changes
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/docs/_templates/autosummary-module-template.rst
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
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/array.py
RENAMED
|
File without changes
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/datum.py
RENAMED
|
File without changes
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/nd_sweep.py
RENAMED
|
File without changes
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/api/proto_serialization/sequence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/exponential_sweep.py
RENAMED
|
File without changes
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/fixed_sweep.py
RENAMED
|
File without changes
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/linear_sweep.py
RENAMED
|
File without changes
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/option/constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/control/sweep/sweep_values.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/data/settingnode_v2.html.jinja2
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
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/helpers/software_version_helper.py
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_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/qcm_data/immutable_base_model.py
RENAMED
|
File without changes
|
|
File without changes
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/exa/common/sweep/database_serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
{iqm_exa_common-26.21.0 → iqm_exa_common-26.22.0}/src/iqm_exa_common.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|