iqm-exa-common 27.2.0__tar.gz → 27.3.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-27.2.0 → iqm_exa_common-27.3.0}/CHANGELOG.rst +8 -0
- {iqm_exa_common-27.2.0/src/iqm_exa_common.egg-info → iqm_exa_common-27.3.0}/PKG-INFO +2 -2
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/requirements/base.in +1 -1
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/requirements/base.txt +1 -1
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/data/base_model.py +1 -1
- iqm_exa_common-27.3.0/src/exa/common/helpers/deprecation.py +21 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/qcm_data/chip_topology.py +3 -3
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0/src/iqm_exa_common.egg-info}/PKG-INFO +2 -2
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/iqm_exa_common.egg-info/requires.txt +1 -1
- iqm_exa_common-27.3.0/version.txt +1 -0
- iqm_exa_common-27.2.0/src/exa/common/helpers/deprecation.py +0 -12
- iqm_exa_common-27.2.0/version.txt +0 -1
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/LICENSE.txt +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/MANIFEST.in +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/README.rst +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/docs/API.rst +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/docs/Makefile +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/docs/_static/.gitignore +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/docs/_static/css/custom.css +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/docs/_static/images/favicon.ico +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/docs/_static/images/logo.png +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/docs/_templates/autosummary-class-template.rst +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/docs/_templates/autosummary-module-template.rst +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/docs/changelog.rst +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/docs/conf.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/docs/index.rst +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/docs/license.rst +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/pyproject.toml +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/setup.cfg +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/setup.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/__init__.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/api/__init__.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/api/proto_serialization/__init__.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/api/proto_serialization/_parameter.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/api/proto_serialization/array.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/api/proto_serialization/datum.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/api/proto_serialization/nd_sweep.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/api/proto_serialization/sequence.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/api/proto_serialization/setting_node.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/__init__.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/sweep/__init__.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/sweep/option/__init__.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/sweep/option/center_span_base_options.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/sweep/option/center_span_options.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/sweep/option/constants.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/sweep/option/fixed_options.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/sweep/option/option_converter.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/sweep/option/start_stop_base_options.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/sweep/option/start_stop_options.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/sweep/option/sweep_options.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/sweep/sweep.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/sweep/sweep_values.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/data/__init__.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/data/parameter.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/data/setting_node.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/data/settingnode_v2.html.jinja2 +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/data/value.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/errors/__init__.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/errors/exa_error.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/errors/station_control_errors.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/helpers/__init__.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/helpers/data_helper.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/helpers/json_helper.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/helpers/numpy_helper.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/helpers/software_version_helper.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/helpers/yaml_helper.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/logger/__init__.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/logger/logger.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/py.typed +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/qcm_data/__init__.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/qcm_data/chad_model.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/qcm_data/chip_layout.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/qcm_data/file_adapter.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/qcm_data/immutable_base_model.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/qcm_data/qcm_data_client.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/sweep/__init__.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/sweep/database_serialization.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/sweep/util.py +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/iqm_exa_common.egg-info/SOURCES.txt +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/iqm_exa_common.egg-info/dependency_links.txt +0 -0
- {iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/iqm_exa_common.egg-info/top_level.txt +0 -0
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
Changelog
|
|
3
3
|
=========
|
|
4
4
|
|
|
5
|
+
Version 27.3.0 (2025-10-06)
|
|
6
|
+
===========================
|
|
7
|
+
|
|
8
|
+
Features
|
|
9
|
+
--------
|
|
10
|
+
|
|
11
|
+
- Minor update to ``format_deprecated`` to accept datetimes only in one format for consistency.
|
|
12
|
+
|
|
5
13
|
Version 27.2.0 (2025-10-03)
|
|
6
14
|
===========================
|
|
7
15
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: iqm-exa-common
|
|
3
|
-
Version: 27.
|
|
3
|
+
Version: 27.3.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.18
|
|
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
|
|
@@ -32,7 +32,7 @@ class BaseModel(pydantic.BaseModel):
|
|
|
32
32
|
"""
|
|
33
33
|
return super().model_copy(update=update, deep=deep)
|
|
34
34
|
|
|
35
|
-
@deprecated(format_deprecated(old="`copy` method", new="`model_copy`", since="28
|
|
35
|
+
@deprecated(format_deprecated(old="`copy` method", new="`model_copy`", since="2025-03-28"))
|
|
36
36
|
def copy(self, **kwargs) -> Self:
|
|
37
37
|
"""Returns a copy of the model."""
|
|
38
38
|
return super().copy(update=kwargs, deep=True)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from datetime import date
|
|
2
|
+
from typing import LiteralString, cast
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def _assert_iso_8601_format(since: str) -> None:
|
|
6
|
+
try:
|
|
7
|
+
# This is strict about the ISO calendar date form.
|
|
8
|
+
# '2025-9-3' will fail; '2025-09-03' passes.
|
|
9
|
+
date.fromisoformat(since)
|
|
10
|
+
except ValueError:
|
|
11
|
+
raise ValueError("Invalid date format. Use 'YYYY-MM-DD'.")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def format_deprecated(old: str, new: str | None, since: str) -> LiteralString:
|
|
15
|
+
_assert_iso_8601_format(since)
|
|
16
|
+
message: str = (
|
|
17
|
+
f"{old} is deprecated since {since}, it can be be removed from the codebase in the next major release."
|
|
18
|
+
)
|
|
19
|
+
if new:
|
|
20
|
+
message += f" Use {new} instead."
|
|
21
|
+
return cast(LiteralString, message)
|
|
@@ -141,17 +141,17 @@ class ChipTopology:
|
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
@classmethod
|
|
144
|
-
def from_chip_design_record(cls,
|
|
144
|
+
def from_chip_design_record(cls, chip_design_record: dict) -> ChipTopology:
|
|
145
145
|
"""Construct a ChipTopology instance from a raw Chip design record.
|
|
146
146
|
|
|
147
147
|
Args:
|
|
148
|
-
|
|
148
|
+
chip_design_record: Chip design record as returned by Station control.
|
|
149
149
|
|
|
150
150
|
Returns:
|
|
151
151
|
Corresponding chip topology
|
|
152
152
|
|
|
153
153
|
"""
|
|
154
|
-
return cls.from_chad(CHAD(**
|
|
154
|
+
return cls.from_chad(CHAD(**chip_design_record))
|
|
155
155
|
|
|
156
156
|
@classmethod
|
|
157
157
|
def from_chad(cls, chad: CHAD) -> ChipTopology:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: iqm-exa-common
|
|
3
|
-
Version: 27.
|
|
3
|
+
Version: 27.3.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.18
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
27.3.0
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
from datetime import datetime
|
|
2
|
-
from typing import LiteralString
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
def format_deprecated(old: str, new: str | None, since: str) -> LiteralString:
|
|
6
|
-
datetime.strptime(since, "%d.%m.%Y")
|
|
7
|
-
message: str = (
|
|
8
|
-
f"{old} is deprecated since {since}, it can be be removed from the codebase in the next major release."
|
|
9
|
-
)
|
|
10
|
-
if new:
|
|
11
|
-
message += f" Use {new} instead."
|
|
12
|
-
return message
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
27.2.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-27.2.0 → iqm_exa_common-27.3.0}/docs/_templates/autosummary-class-template.rst
RENAMED
|
File without changes
|
{iqm_exa_common-27.2.0 → iqm_exa_common-27.3.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-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/api/proto_serialization/__init__.py
RENAMED
|
File without changes
|
{iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/api/proto_serialization/_parameter.py
RENAMED
|
File without changes
|
{iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/api/proto_serialization/array.py
RENAMED
|
File without changes
|
{iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/api/proto_serialization/datum.py
RENAMED
|
File without changes
|
{iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/api/proto_serialization/nd_sweep.py
RENAMED
|
File without changes
|
{iqm_exa_common-27.2.0 → iqm_exa_common-27.3.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-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/sweep/option/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/sweep/option/constants.py
RENAMED
|
File without changes
|
{iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/sweep/option/fixed_options.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/control/sweep/option/sweep_options.py
RENAMED
|
File without changes
|
|
File without changes
|
{iqm_exa_common-27.2.0 → iqm_exa_common-27.3.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-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/data/settingnode_v2.html.jinja2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/errors/station_control_errors.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_exa_common-27.2.0 → iqm_exa_common-27.3.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
|
|
File without changes
|
{iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/qcm_data/immutable_base_model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/exa/common/sweep/database_serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_exa_common-27.2.0 → iqm_exa_common-27.3.0}/src/iqm_exa_common.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|