iqm-pulse 9.0__tar.gz → 9.2__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_pulse-9.0 → iqm_pulse-9.2}/CHANGELOG.rst +17 -0
  2. {iqm_pulse-9.0/src/iqm_pulse.egg-info → iqm_pulse-9.2}/PKG-INFO +1 -2
  3. {iqm_pulse-9.0 → iqm_pulse-9.2}/requirements/base.in +0 -1
  4. {iqm_pulse-9.0 → iqm_pulse-9.2}/requirements/base.txt +0 -1
  5. {iqm_pulse-9.0 → iqm_pulse-9.2}/setup.py +1 -1
  6. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/builder.py +1 -1
  7. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/utils.py +1 -18
  8. {iqm_pulse-9.0 → iqm_pulse-9.2/src/iqm_pulse.egg-info}/PKG-INFO +1 -2
  9. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm_pulse.egg-info/requires.txt +0 -1
  10. iqm_pulse-9.2/version.txt +1 -0
  11. iqm_pulse-9.0/version.txt +0 -1
  12. {iqm_pulse-9.0 → iqm_pulse-9.2}/LICENSE.txt +0 -0
  13. {iqm_pulse-9.0 → iqm_pulse-9.2}/MANIFEST.in +0 -0
  14. {iqm_pulse-9.0 → iqm_pulse-9.2}/README.rst +0 -0
  15. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/API.rst +0 -0
  16. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/Makefile +0 -0
  17. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/_static/.gitignore +0 -0
  18. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/_static/css/custom.css +0 -0
  19. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/_static/images/favicon.ico +0 -0
  20. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/_static/images/feedback_timing.svg +0 -0
  21. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/_static/images/logo.png +0 -0
  22. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/_static/images/playlist_breakdown.svg +0 -0
  23. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/_static/images/pulse_timing.svg +0 -0
  24. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/_static/images/readout_timing.svg +0 -0
  25. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/_templates/autosummary-class-template.rst +0 -0
  26. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/_templates/autosummary-module-template.rst +0 -0
  27. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/changelog.rst +0 -0
  28. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/concepts.rst +0 -0
  29. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/conf.py +0 -0
  30. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/custom_gates.rst +0 -0
  31. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/index.rst +0 -0
  32. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/license.rst +0 -0
  33. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/pulse_timing.rst +0 -0
  34. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/references.bib +0 -0
  35. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/references.rst +0 -0
  36. {iqm_pulse-9.0 → iqm_pulse-9.2}/docs/using_builder.rst +0 -0
  37. {iqm_pulse-9.0 → iqm_pulse-9.2}/pyproject.toml +0 -0
  38. {iqm_pulse-9.0 → iqm_pulse-9.2}/setup.cfg +0 -0
  39. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/__init__.py +0 -0
  40. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/base_utils.py +0 -0
  41. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/circuit_operations.py +0 -0
  42. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/gate_implementation.py +0 -0
  43. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/gates/__init__.py +0 -0
  44. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/gates/barrier.py +0 -0
  45. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/gates/conditional.py +0 -0
  46. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/gates/cz.py +0 -0
  47. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/gates/default_gates.py +0 -0
  48. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/gates/delay.py +0 -0
  49. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/gates/enums.py +0 -0
  50. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/gates/flux_multiplexer.py +0 -0
  51. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/gates/measure.py +0 -0
  52. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/gates/move.py +0 -0
  53. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/gates/prx.py +0 -0
  54. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/gates/reset.py +0 -0
  55. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/gates/rz.py +0 -0
  56. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/gates/sx.py +0 -0
  57. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/gates/u.py +0 -0
  58. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/playlist/__init__.py +0 -0
  59. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/playlist/channel.py +0 -0
  60. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/playlist/fast_drag.py +0 -0
  61. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/playlist/hd_drag.py +0 -0
  62. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/playlist/instructions.py +0 -0
  63. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/playlist/playlist.py +0 -0
  64. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/playlist/schedule.py +0 -0
  65. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/playlist/visualisation/__init__.py +0 -0
  66. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/playlist/visualisation/base.py +0 -0
  67. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/playlist/visualisation/templates/playlist_inspection.jinja2 +0 -0
  68. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/playlist/visualisation/templates/static/logo.png +0 -0
  69. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/playlist/visualisation/templates/static/moment.min.js +0 -0
  70. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/playlist/visualisation/templates/static/vis-timeline-graph2d.min.css +0 -0
  71. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/playlist/visualisation/templates/static/vis-timeline-graph2d.min.js +0 -0
  72. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/playlist/waveforms.py +0 -0
  73. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/quantum_ops.py +0 -0
  74. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/scheduler.py +0 -0
  75. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/timebox.py +0 -0
  76. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm/pulse/validation.py +0 -0
  77. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm_pulse.egg-info/SOURCES.txt +0 -0
  78. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm_pulse.egg-info/dependency_links.txt +0 -0
  79. {iqm_pulse-9.0 → iqm_pulse-9.2}/src/iqm_pulse.egg-info/top_level.txt +0 -0
  80. {iqm_pulse-9.0 → iqm_pulse-9.2}/tests/.pylintrc +0 -0
  81. {iqm_pulse-9.0 → iqm_pulse-9.2}/tests/__init__.py +0 -0
@@ -2,6 +2,23 @@
2
2
  Changelog
3
3
  =========
4
4
 
5
+ Version 9.2 (2025-04-11)
6
+ ========================
7
+
8
+ Bug fixes
9
+ ---------
10
+
11
+ - Update license
12
+
13
+ Version 9.1 (2025-04-10)
14
+ ========================
15
+
16
+ Features
17
+ --------
18
+
19
+ - Fix vulnerability issue with YAML loading, use safe_load to avoid potential harmful remote code execution.
20
+ :issue:`SW-1378`
21
+
5
22
  Version 9.0 (2025-04-09)
6
23
  ========================
7
24
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-pulse
3
- Version: 9.0
3
+ Version: 9.2
4
4
  Summary: A Python-based project for providing interface and implementations for control pulses.
5
5
  Author-email: IQM Finland Oy <info@meetiqm.com>
6
6
  License: Apache License
@@ -217,7 +217,6 @@ Requires-Dist: iqm-exa-common<27,>=26
217
217
  Requires-Dist: iqm-data-definitions<3.0,>=2.6
218
218
  Requires-Dist: python-rapidjson==1.20
219
219
  Requires-Dist: jinja2==3.0.3
220
- Requires-Dist: ruamel.yaml==0.17.32
221
220
  Requires-Dist: numpy<3.0,>=1.25.2
222
221
  Requires-Dist: scipy<1.16,>=1.11.4
223
222
 
@@ -1,6 +1,5 @@
1
1
  iqm-data-definitions >= 2.6, < 3.0
2
2
  python-rapidjson == 1.20
3
3
  jinja2 == 3.0.3
4
- ruamel.yaml == 0.17.32
5
4
  numpy >= 1.25.2,<3.0
6
5
  scipy >= 1.11.4,<1.16
@@ -2,6 +2,5 @@ iqm-exa-common>=26,<27
2
2
  iqm-data-definitions >= 2.6, < 3.0
3
3
  python-rapidjson == 1.20
4
4
  jinja2 == 3.0.3
5
- ruamel.yaml == 0.17.32
6
5
  numpy >= 1.25.2,<3.0
7
6
  scipy >= 1.11.4,<1.16
@@ -1,5 +1,5 @@
1
1
  # ********************************************************************************
2
- # Copyright (c) 2019-2024 IQM Finland Oy.
2
+ # Copyright (c) 2019-2025 IQM Finland Oy.
3
3
  # All rights reserved. Confidential and proprietary.
4
4
  #
5
5
  # Distribution or reproduction of any information contained herein
@@ -34,6 +34,7 @@ import iqm.models.playlist.instructions as sc_instructions # TODO make SC use i
34
34
  from iqm.models.playlist.segment import Segment as SC_Schedule # iqm.models names are temporary
35
35
  from iqm.models.playlist.waveforms import to_canonical
36
36
 
37
+ from exa.common.helpers.yaml_helper import load_yaml
37
38
  from exa.common.qcm_data.chip_topology import ChipTopology, sort_components
38
39
  from iqm.pulse.base_utils import _dicts_differ, merge_dicts
39
40
  from iqm.pulse.gate_implementation import (
@@ -76,7 +77,6 @@ from iqm.pulse.utils import (
76
77
  _process_implementations,
77
78
  _validate_locus_defaults,
78
79
  _validate_op_attributes,
79
- load_yaml,
80
80
  )
81
81
 
82
82
  logger = logging.getLogger(__name__)
@@ -19,10 +19,9 @@ from __future__ import annotations
19
19
 
20
20
  from collections.abc import Iterable
21
21
  import copy
22
- from typing import Any, get_args, get_origin
22
+ from typing import get_args, get_origin
23
23
 
24
24
  import numpy as np
25
- from ruamel.yaml import YAML
26
25
 
27
26
  from exa.common.data.parameter import CollectionType, DataType
28
27
  from iqm.pulse.quantum_ops import QuantumOpTable
@@ -70,22 +69,6 @@ def map_waveform_param_types(type_hint: type) -> tuple[DataType, CollectionType]
70
69
  return (data_type, collection_type)
71
70
 
72
71
 
73
- def load_yaml(path: str) -> dict[str, Any]:
74
- """Load a YAML file from the given path, raise error if the file can't be loaded.
75
-
76
- Args:
77
- path: path to a YAML file
78
-
79
- Returns:
80
- contents of the YAML file as Python types
81
-
82
- """
83
- with open(path, encoding="utf-8") as f:
84
- yaml = YAML(typ="safe") # default, if not specified, is 'rt' (round-trip)
85
- data = yaml.load(f)
86
- return data
87
-
88
-
89
72
  def normalize_angle(angle: float) -> float:
90
73
  """Normalize the given angle to (-pi, pi].
91
74
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iqm-pulse
3
- Version: 9.0
3
+ Version: 9.2
4
4
  Summary: A Python-based project for providing interface and implementations for control pulses.
5
5
  Author-email: IQM Finland Oy <info@meetiqm.com>
6
6
  License: Apache License
@@ -217,7 +217,6 @@ Requires-Dist: iqm-exa-common<27,>=26
217
217
  Requires-Dist: iqm-data-definitions<3.0,>=2.6
218
218
  Requires-Dist: python-rapidjson==1.20
219
219
  Requires-Dist: jinja2==3.0.3
220
- Requires-Dist: ruamel.yaml==0.17.32
221
220
  Requires-Dist: numpy<3.0,>=1.25.2
222
221
  Requires-Dist: scipy<1.16,>=1.11.4
223
222
 
@@ -2,6 +2,5 @@ iqm-exa-common<27,>=26
2
2
  iqm-data-definitions<3.0,>=2.6
3
3
  python-rapidjson==1.20
4
4
  jinja2==3.0.3
5
- ruamel.yaml==0.17.32
6
5
  numpy<3.0,>=1.25.2
7
6
  scipy<1.16,>=1.11.4
@@ -0,0 +1 @@
1
+ 9.2
iqm_pulse-9.0/version.txt DELETED
@@ -1 +0,0 @@
1
- 9.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
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
File without changes