iqm-exa-common 26.6__tar.gz → 26.8__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 (80) hide show
  1. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/CHANGELOG.rst +16 -0
  2. {iqm_exa_common-26.6/src/iqm_exa_common.egg-info → iqm_exa_common-26.8}/PKG-INFO +1 -1
  3. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/docs/conf.py +2 -1
  4. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/control/sweep/exponential_sweep.py +4 -2
  5. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/control/sweep/fixed_sweep.py +4 -2
  6. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/control/sweep/linear_sweep.py +4 -2
  7. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/data/base_model.py +5 -5
  8. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/data/parameter.py +1 -1
  9. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/errors/exa_error.py +4 -2
  10. iqm_exa_common-26.8/src/exa/common/helpers/deprecation.py +12 -0
  11. {iqm_exa_common-26.6 → iqm_exa_common-26.8/src/iqm_exa_common.egg-info}/PKG-INFO +1 -1
  12. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/iqm_exa_common.egg-info/SOURCES.txt +1 -0
  13. iqm_exa_common-26.8/version.txt +1 -0
  14. iqm_exa_common-26.6/version.txt +0 -1
  15. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/LICENSE.txt +0 -0
  16. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/MANIFEST.in +0 -0
  17. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/README.rst +0 -0
  18. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/docs/API.rst +0 -0
  19. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/docs/Makefile +0 -0
  20. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/docs/_static/.gitignore +0 -0
  21. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/docs/_static/css/custom.css +0 -0
  22. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/docs/_static/images/favicon.ico +0 -0
  23. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/docs/_static/images/logo.png +0 -0
  24. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/docs/_templates/autosummary-class-template.rst +0 -0
  25. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/docs/_templates/autosummary-module-template.rst +0 -0
  26. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/docs/changelog.rst +0 -0
  27. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/docs/index.rst +0 -0
  28. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/docs/license.rst +0 -0
  29. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/pyproject.toml +0 -0
  30. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/requirements/base.in +0 -0
  31. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/requirements/base.txt +0 -0
  32. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/setup.cfg +0 -0
  33. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/setup.py +0 -0
  34. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/__init__.py +0 -0
  35. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/api/__init__.py +0 -0
  36. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/api/proto_serialization/__init__.py +0 -0
  37. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/api/proto_serialization/_parameter.py +0 -0
  38. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/api/proto_serialization/array.py +0 -0
  39. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/api/proto_serialization/datum.py +0 -0
  40. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/api/proto_serialization/nd_sweep.py +0 -0
  41. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/api/proto_serialization/sequence.py +0 -0
  42. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/api/proto_serialization/setting_node.py +0 -0
  43. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/control/__init__.py +0 -0
  44. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/control/sweep/__init__.py +0 -0
  45. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/control/sweep/option/__init__.py +0 -0
  46. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/control/sweep/option/center_span_base_options.py +0 -0
  47. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/control/sweep/option/center_span_options.py +0 -0
  48. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/control/sweep/option/constants.py +0 -0
  49. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/control/sweep/option/fixed_options.py +0 -0
  50. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/control/sweep/option/option_converter.py +0 -0
  51. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/control/sweep/option/start_stop_base_options.py +0 -0
  52. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/control/sweep/option/start_stop_options.py +0 -0
  53. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/control/sweep/option/sweep_options.py +0 -0
  54. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/control/sweep/sweep.py +0 -0
  55. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/control/sweep/sweep_values.py +0 -0
  56. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/data/__init__.py +0 -0
  57. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/data/setting_node.py +0 -0
  58. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/data/settingnode_v2.html.jinja2 +0 -0
  59. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/data/value.py +0 -0
  60. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/errors/__init__.py +0 -0
  61. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/errors/server_errors.py +0 -0
  62. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/helpers/__init__.py +0 -0
  63. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/helpers/data_helper.py +0 -0
  64. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/helpers/json_helper.py +0 -0
  65. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/helpers/numpy_helper.py +0 -0
  66. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/helpers/software_version_helper.py +0 -0
  67. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/logger/__init__.py +0 -0
  68. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/logger/logger.py +0 -0
  69. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/qcm_data/__init__.py +0 -0
  70. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/qcm_data/chad_model.py +0 -0
  71. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/qcm_data/chip_topology.py +0 -0
  72. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/qcm_data/file_adapter.py +0 -0
  73. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/qcm_data/immutable_base_model.py +0 -0
  74. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/qcm_data/qcm_data_client.py +0 -0
  75. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/sweep/__init__.py +0 -0
  76. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/sweep/database_serialization.py +0 -0
  77. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/exa/common/sweep/util.py +0 -0
  78. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/iqm_exa_common.egg-info/dependency_links.txt +0 -0
  79. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/iqm_exa_common.egg-info/requires.txt +0 -0
  80. {iqm_exa_common-26.6 → iqm_exa_common-26.8}/src/iqm_exa_common.egg-info/top_level.txt +0 -0
@@ -2,6 +2,22 @@
2
2
  Changelog
3
3
  =========
4
4
 
5
+ Version 26.8 (2025-04-02)
6
+ =========================
7
+
8
+ Features
9
+ ********
10
+
11
+ - Update the documentation footer to display the package version.
12
+
13
+ Version 26.7 (2025-04-01)
14
+ =========================
15
+
16
+ Features
17
+ --------
18
+
19
+ - Use standard process of deprecation. No functional changes. :issue:`SW-450`
20
+
5
21
  Version 26.6 (2025-03-21)
6
22
  =========================
7
23
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-exa-common
3
- Version: 26.6
3
+ Version: 26.8
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
@@ -45,7 +45,6 @@ master_doc = "index"
45
45
 
46
46
  # General information about the project.
47
47
  project = "exa-common"
48
- copyright = "2019-2022, IQM Finland Oy"
49
48
 
50
49
  # The version info for the project you're documenting, acts as replacement for
51
50
  # |version| and |release|, also used in various other places throughout the
@@ -61,6 +60,8 @@ except ImportError:
61
60
  else:
62
61
  version = parse(release).base_version
63
62
 
63
+ copyright = "2019-2025, IQM Finland Oy, Release {}".format(release)
64
+
64
65
  # The language for content autogenerated by Sphinx. Refer to documentation
65
66
  # for a list of supported languages.
66
67
  # language = None
@@ -15,14 +15,17 @@
15
15
  """Sweep specification with exponentially spaced values."""
16
16
 
17
17
  from typing import Any
18
- import warnings
18
+
19
+ from typing_extensions import deprecated
19
20
 
20
21
  from exa.common.control.sweep.option import CenterSpanBaseOptions, StartStopBaseOptions
21
22
  from exa.common.control.sweep.sweep import Sweep
22
23
  from exa.common.data.parameter import Parameter
23
24
  from exa.common.errors.exa_error import InvalidSweepOptionsTypeError
25
+ from exa.common.helpers.deprecation import format_deprecated
24
26
 
25
27
 
28
+ @deprecated(format_deprecated(old="`ExponentialSweep`", new="`Sweep`", since="28.3.2025"))
26
29
  class ExponentialSweep(Sweep):
27
30
  """Generates parameter values spaced evenly on a geometric progression based on `options`.
28
31
 
@@ -45,7 +48,6 @@ class ExponentialSweep(Sweep):
45
48
  data: list[Any] | None = None,
46
49
  **kwargs,
47
50
  ) -> None:
48
- warnings.warn("ExponentialSweep is deprecated, use Sweep instead.", DeprecationWarning)
49
51
  if options and not isinstance(options, StartStopBaseOptions | CenterSpanBaseOptions):
50
52
  raise InvalidSweepOptionsTypeError(str(type(options)))
51
53
  super().__init__(parameter, options, data=data, **kwargs)
@@ -15,21 +15,23 @@
15
15
  """Sweep specification with arbitrary values."""
16
16
 
17
17
  from typing import Any
18
- import warnings
18
+
19
+ from typing_extensions import deprecated
19
20
 
20
21
  from exa.common.control.sweep.option import FixedOptions
21
22
  from exa.common.control.sweep.sweep import Sweep
22
23
  from exa.common.data.parameter import Parameter
23
24
  from exa.common.errors.exa_error import InvalidSweepOptionsTypeError
25
+ from exa.common.helpers.deprecation import format_deprecated
24
26
 
25
27
 
28
+ @deprecated(format_deprecated(old="`FixedSweep`", new="`Sweep`", since="28.3.2025"))
26
29
  class FixedSweep(Sweep):
27
30
  """A sweep over arbitrary set of values, given by `options`."""
28
31
 
29
32
  def __init__(
30
33
  self, parameter: Parameter, options: FixedOptions | None = None, *, data: list[Any] | None = None, **kwargs
31
34
  ) -> None:
32
- warnings.warn("FixedSweep is deprecated, use Sweep instead.", DeprecationWarning)
33
35
  if options and not isinstance(options, FixedOptions):
34
36
  raise InvalidSweepOptionsTypeError(str(type(options)))
35
37
  super().__init__(parameter, options, data=data, **kwargs)
@@ -15,14 +15,17 @@
15
15
  """Sweep specification with linearly spaced values."""
16
16
 
17
17
  from typing import Any
18
- import warnings
18
+
19
+ from typing_extensions import deprecated
19
20
 
20
21
  from exa.common.control.sweep.option import CenterSpanOptions, StartStopOptions
21
22
  from exa.common.control.sweep.sweep import Sweep
22
23
  from exa.common.data.parameter import Parameter
23
24
  from exa.common.errors.exa_error import InvalidSweepOptionsTypeError
25
+ from exa.common.helpers.deprecation import format_deprecated
24
26
 
25
27
 
28
+ @deprecated(format_deprecated(old="`LinearSweep`", new="`Sweep`", since="28.3.2025"))
26
29
  class LinearSweep(Sweep):
27
30
  """Generates evenly spaced parameter values based on `options`.
28
31
 
@@ -43,7 +46,6 @@ class LinearSweep(Sweep):
43
46
  data: list[Any] | None = None,
44
47
  **kwargs,
45
48
  ) -> None:
46
- warnings.warn("LinearSweep is deprecated, use Sweep instead.", DeprecationWarning)
47
49
  if options and not isinstance(options, StartStopOptions | CenterSpanOptions):
48
50
  raise InvalidSweepOptionsTypeError(str(type(options)))
49
51
  super().__init__(parameter, options, data=data, **kwargs)
@@ -2,6 +2,9 @@ from typing import Any, Self
2
2
 
3
3
  import pydantic
4
4
  from pydantic import ConfigDict
5
+ from typing_extensions import deprecated
6
+
7
+ from exa.common.helpers.deprecation import format_deprecated
5
8
 
6
9
 
7
10
  class BaseModel(pydantic.BaseModel):
@@ -28,10 +31,7 @@ class BaseModel(pydantic.BaseModel):
28
31
  """
29
32
  return super().model_copy(update=update, deep=deep)
30
33
 
34
+ @deprecated(format_deprecated(old="`copy` method", new="`model_copy`", since="28.3.2025"))
31
35
  def copy(self, **kwargs) -> Self:
32
- """Returns a copy of the model.
33
-
34
- DEPRECATED: Use model_copy(update: dict[str, Any], deep: bool) instead.
35
- """
36
- # Call deprecated copy() here deliberately to trigger deprecation warning from Pydantic.
36
+ """Returns a copy of the model."""
37
37
  return super().copy(update=kwargs, deep=True)
@@ -209,7 +209,7 @@ class Parameter(BaseModel):
209
209
  label = name
210
210
  if data_type == DataType.NUMBER:
211
211
  warnings.warn(
212
- "data_type 'DataType.NUMBER' is deprecated, using 'DataType.FLOAT' instead.",
212
+ "data_type 'DataType.NUMBER' is deprecated, use 'DataType.FLOAT' instead.",
213
213
  DeprecationWarning,
214
214
  )
215
215
  # Consider DataType.NUMBER as a deprecated alias for DataType.FLOAT
@@ -1,4 +1,6 @@
1
- import warnings
1
+ from typing_extensions import deprecated
2
+
3
+ from exa.common.helpers.deprecation import format_deprecated
2
4
 
3
5
 
4
6
  class ExaError(Exception):
@@ -25,9 +27,9 @@ class EmptyComponentListError(ExaError, ValueError):
25
27
  """Error raised when an empty list is given as components for running an experiment."""
26
28
 
27
29
 
30
+ @deprecated(format_deprecated(old="`InvalidSweepOptionsTypeError`", new="`Sweep.data`", since="28.3.2025"))
28
31
  class InvalidSweepOptionsTypeError(ExaError, TypeError):
29
32
  """The type of sweep options is invalid."""
30
33
 
31
34
  def __init__(self, options: str, *args):
32
- warnings.warn("InvalidSweepOptionsTypeError is deprecated.", DeprecationWarning)
33
35
  super().__init__(f"Options have unsupported type of {options}", *args)
@@ -0,0 +1,12 @@
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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-exa-common
3
- Version: 26.6
3
+ Version: 26.8
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
@@ -55,6 +55,7 @@ src/exa/common/errors/exa_error.py
55
55
  src/exa/common/errors/server_errors.py
56
56
  src/exa/common/helpers/__init__.py
57
57
  src/exa/common/helpers/data_helper.py
58
+ src/exa/common/helpers/deprecation.py
58
59
  src/exa/common/helpers/json_helper.py
59
60
  src/exa/common/helpers/numpy_helper.py
60
61
  src/exa/common/helpers/software_version_helper.py
@@ -0,0 +1 @@
1
+ 26.8
@@ -1 +0,0 @@
1
- 26.6
File without changes
File without changes
File without changes
File without changes
File without changes