iqm-exa-common 27.1.0__py3-none-any.whl → 27.3.0__py3-none-any.whl

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.
@@ -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.3.2025"))
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)
@@ -1,12 +1,21 @@
1
- from datetime import datetime
2
- from typing import LiteralString
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'.")
3
12
 
4
13
 
5
14
  def format_deprecated(old: str, new: str | None, since: str) -> LiteralString:
6
- datetime.strptime(since, "%d.%m.%Y")
15
+ _assert_iso_8601_format(since)
7
16
  message: str = (
8
17
  f"{old} is deprecated since {since}, it can be be removed from the codebase in the next major release."
9
18
  )
10
19
  if new:
11
20
  message += f" Use {new} instead."
12
- return message
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, record: dict) -> ChipTopology:
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
- record: Record as returned by Station control.
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(**record))
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.1.0
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.13
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
@@ -22,7 +22,7 @@ exa/common/control/sweep/option/start_stop_base_options.py,sha256=09P03pexASngGW
22
22
  exa/common/control/sweep/option/start_stop_options.py,sha256=vJottC6QX80MhVyg9_R9UFx6W1ijSHOVRzU9fDO3FLA,3113
23
23
  exa/common/control/sweep/option/sweep_options.py,sha256=BhKB7RHP0VXJ9iUQKVzeQOM4j_x9AsMhRJgoR3gkiaY,933
24
24
  exa/common/data/__init__.py,sha256=F5SRe5QHBTjef4XJVQ63kO5Oxc_AiZnPbV560i7La0Y,644
25
- exa/common/data/base_model.py,sha256=U508YCtvZabBGnKe1fqUimunmwGulOTM6DOKTUqnYp8,1835
25
+ exa/common/data/base_model.py,sha256=foW3gtxoBtHfkDOjZPS7Eo1lcVKZwsDtyn-_0B7WnR8,1836
26
26
  exa/common/data/parameter.py,sha256=4CtvR6u5XT-5TJb_bTe9DYvBhOCNMlvOMepeGgr80FA,24500
27
27
  exa/common/data/setting_node.py,sha256=rTXo-D9v42L8HkJoNoCMtm8cyUEuNtpYGhHfi45ZPhA,44782
28
28
  exa/common/data/settingnode_v2.html.jinja2,sha256=mo-rlLLmU-Xxf6znJAisispAZK8sbV-2C13byKAtj_Q,3166
@@ -32,7 +32,7 @@ exa/common/errors/exa_error.py,sha256=wFfJbdeGs15XVF0VJvXPEjNavC2hXVJjchFcLfCfAi
32
32
  exa/common/errors/station_control_errors.py,sha256=s0LimSOthQF8NWKyW556p-9vEapOxtn_W5ZiZVPTv_g,4489
33
33
  exa/common/helpers/__init__.py,sha256=IgtVD3tojIFA4MTV2mT5uYM6jb2qny9kBIIhEZT2PuI,610
34
34
  exa/common/helpers/data_helper.py,sha256=-AP0vwrf7WgyumLsicDtNP2VP5rhG4_oiOZgG4alNb4,2001
35
- exa/common/helpers/deprecation.py,sha256=nY8484iun63JOBfBeh49Q6VD5xZ4_gT9fjPmH1RAXoI,397
35
+ exa/common/helpers/deprecation.py,sha256=n9_9Ii8UVW0dry7mvH_DOpSOwGQpbgw48EvhtLcgUc0,710
36
36
  exa/common/helpers/json_helper.py,sha256=LoTrL6FREML1o0X3Zznf1baI4kn0kh03NE1nqBHgYss,2699
37
37
  exa/common/helpers/numpy_helper.py,sha256=KKKyZ_fD0O1gn7_InEQROYnX3WGMA6C1qHh8KzzjtUI,1062
38
38
  exa/common/helpers/software_version_helper.py,sha256=q7SVw7dSFBZIJQGwEpAR3rAFDlrC_s48-bM3Tqu5CQ0,5428
@@ -42,15 +42,15 @@ exa/common/logger/logger.py,sha256=TA9HxFZDyFB7ai8C6mCZOm1cx3JMRAhB8DcMCwDAKt0,5
42
42
  exa/common/qcm_data/__init__.py,sha256=VtsYkGoaniSjCkY0oQlqkcYJCtmC2sTDxfrIe_kpqZg,567
43
43
  exa/common/qcm_data/chad_model.py,sha256=1vWpB8gsrnIEDqEOqqQAXrofN2jM6c8AypZvOSH5I18,11279
44
44
  exa/common/qcm_data/chip_layout.py,sha256=jDEMsujltH_KqLjj2Ja-XEEJubfsMg_HPlqnC4-L9YE,4555
45
- exa/common/qcm_data/chip_topology.py,sha256=-IsWh0hev_vnAWs0z3iWBvProe6LypgKs1Erp8HCb0M,20027
45
+ exa/common/qcm_data/chip_topology.py,sha256=cQTxuIouQ3yGSfMNbKzu76vERQGlK_TguhkJYN_ehB0,20075
46
46
  exa/common/qcm_data/file_adapter.py,sha256=VAvyV4FrCE93bvy7YP2DDlS_cgHQe-uwPdMQwMlZveQ,2319
47
47
  exa/common/qcm_data/immutable_base_model.py,sha256=QXmKIWQbsbWQvovXwKT1d9jtyf2LNJtjQquIwO52zOU,901
48
48
  exa/common/qcm_data/qcm_data_client.py,sha256=Rze6yQd0xUeH6eUMv3wduYbiDCTP3C4WECtCe7ONmyc,6061
49
49
  exa/common/sweep/__init__.py,sha256=uEKk5AtzSgSnf8Y0geRPwUpqXIBIXpeCxsN64sX7F1o,591
50
50
  exa/common/sweep/database_serialization.py,sha256=9n96OqmEnjy1x2F1HwaNOQgwX_39HjLtE9EUoetSw0E,7493
51
51
  exa/common/sweep/util.py,sha256=-QE2AaH-WDkYAVH5-Z-30leLgY0x4efmby4kc1JTCgY,3732
52
- iqm_exa_common-27.1.0.dist-info/LICENSE.txt,sha256=R6Q7eUrLyoCQgWYorQ8WJmVmWKYU3dxA3jYUp0wwQAw,11332
53
- iqm_exa_common-27.1.0.dist-info/METADATA,sha256=v0HF1PdZTa9VbkJGKB0PS0UOfVBkAcxCVvjH5AX8SKc,14741
54
- iqm_exa_common-27.1.0.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
55
- iqm_exa_common-27.1.0.dist-info/top_level.txt,sha256=Clphg2toaZ3_jSFRPhjMNEmLurkMNMc4lkK2EFYsSlM,4
56
- iqm_exa_common-27.1.0.dist-info/RECORD,,
52
+ iqm_exa_common-27.3.0.dist-info/LICENSE.txt,sha256=R6Q7eUrLyoCQgWYorQ8WJmVmWKYU3dxA3jYUp0wwQAw,11332
53
+ iqm_exa_common-27.3.0.dist-info/METADATA,sha256=xI4NHb0q82_lpCSEzifmhTWGsj3nRvD25jmeOHFGnO8,14741
54
+ iqm_exa_common-27.3.0.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
55
+ iqm_exa_common-27.3.0.dist-info/top_level.txt,sha256=Clphg2toaZ3_jSFRPhjMNEmLurkMNMc4lkK2EFYsSlM,4
56
+ iqm_exa_common-27.3.0.dist-info/RECORD,,