iqm-pulse 9.13.0__tar.gz → 9.15.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_pulse-9.13.0 → iqm_pulse-9.15.0}/CHANGELOG.rst +16 -0
- {iqm_pulse-9.13.0/src/iqm_pulse.egg-info → iqm_pulse-9.15.0}/PKG-INFO +2 -2
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/requirements/base.in +1 -1
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/requirements/base.txt +1 -1
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/playlist/visualisation/base.py +25 -1
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/playlist/visualisation/templates/playlist_inspection.jinja2 +1 -1
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0/src/iqm_pulse.egg-info}/PKG-INFO +2 -2
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm_pulse.egg-info/requires.txt +1 -1
- iqm_pulse-9.15.0/version.txt +1 -0
- iqm_pulse-9.13.0/version.txt +0 -1
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/LICENSE.txt +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/MANIFEST.in +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/README.rst +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/API.rst +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/Makefile +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/_static/.gitignore +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/_static/css/custom.css +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/_static/images/favicon.ico +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/_static/images/feedback_timing.svg +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/_static/images/logo.png +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/_static/images/playlist_breakdown.svg +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/_static/images/pulse_timing.svg +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/_static/images/readout_timing.svg +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/_templates/autosummary-class-template.rst +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/_templates/autosummary-module-template.rst +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/changelog.rst +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/concepts.rst +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/conf.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/custom_gates.rst +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/index.rst +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/license.rst +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/pulse_timing.rst +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/references.bib +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/references.rst +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/docs/using_builder.rst +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/pyproject.toml +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/setup.cfg +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/setup.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/__init__.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/base_utils.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/builder.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/circuit_operations.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/gate_implementation.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/gates/__init__.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/gates/barrier.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/gates/conditional.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/gates/cz.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/gates/default_gates.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/gates/delay.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/gates/enums.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/gates/flux_multiplexer.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/gates/measure.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/gates/move.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/gates/prx.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/gates/reset.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/gates/rz.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/gates/sx.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/gates/u.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/playlist/__init__.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/playlist/channel.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/playlist/fast_drag.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/playlist/hd_drag.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/playlist/instructions.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/playlist/playlist.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/playlist/schedule.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/playlist/visualisation/__init__.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/playlist/visualisation/templates/static/logo.png +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/playlist/visualisation/templates/static/moment.min.js +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/playlist/visualisation/templates/static/vis-timeline-graph2d.min.css +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/playlist/visualisation/templates/static/vis-timeline-graph2d.min.js +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/playlist/waveforms.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/quantum_ops.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/scheduler.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/timebox.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/utils.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/validation.py +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm_pulse.egg-info/SOURCES.txt +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm_pulse.egg-info/dependency_links.txt +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm_pulse.egg-info/top_level.txt +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/tests/.pylintrc +0 -0
- {iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/tests/__init__.py +0 -0
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
Changelog
|
|
3
3
|
=========
|
|
4
4
|
|
|
5
|
+
Version 9.15.0 (2025-06-17)
|
|
6
|
+
===========================
|
|
7
|
+
|
|
8
|
+
Bug fixes
|
|
9
|
+
---------
|
|
10
|
+
|
|
11
|
+
- Convert ``numpy`` types to Python's built-in types so that playlist inspector HTML is rendered correctly. :mr:`1086`
|
|
12
|
+
|
|
13
|
+
Version 9.14.0 (2025-06-13)
|
|
14
|
+
===========================
|
|
15
|
+
|
|
16
|
+
Features
|
|
17
|
+
--------
|
|
18
|
+
|
|
19
|
+
- Bump iqm-data-definitions
|
|
20
|
+
|
|
5
21
|
Version 9.13.0 (2025-06-11)
|
|
6
22
|
===========================
|
|
7
23
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: iqm-pulse
|
|
3
|
-
Version: 9.
|
|
3
|
+
Version: 9.15.0
|
|
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
|
|
@@ -214,7 +214,7 @@ Requires-Python: >=3.11
|
|
|
214
214
|
Description-Content-Type: text/x-rst
|
|
215
215
|
License-File: LICENSE.txt
|
|
216
216
|
Requires-Dist: iqm-exa-common<27,>=26
|
|
217
|
-
Requires-Dist: iqm-data-definitions<3.0,>=2.
|
|
217
|
+
Requires-Dist: iqm-data-definitions<3.0,>=2.13
|
|
218
218
|
Requires-Dist: python-rapidjson==1.20
|
|
219
219
|
Requires-Dist: jinja2==3.0.3
|
|
220
220
|
Requires-Dist: numpy<3.0,>=1.26.4
|
|
@@ -22,6 +22,7 @@ import html
|
|
|
22
22
|
import io
|
|
23
23
|
import json
|
|
24
24
|
from pathlib import Path
|
|
25
|
+
from typing import Any
|
|
25
26
|
|
|
26
27
|
from iqm.models.playlist.waveforms import Waveform
|
|
27
28
|
from jinja2 import Environment, FileSystemLoader
|
|
@@ -30,6 +31,29 @@ import numpy as np
|
|
|
30
31
|
from iqm.pulse.playlist.playlist import Playlist
|
|
31
32
|
|
|
32
33
|
|
|
34
|
+
def _numpy_to_builtin_types(data: list[tuple[str, Any]]):
|
|
35
|
+
"""Convert selected ``numpy`` types to Python's built-in types.
|
|
36
|
+
|
|
37
|
+
This helper function is to be used for converting dataclasses into
|
|
38
|
+
dictionaries with ``asdict``.
|
|
39
|
+
|
|
40
|
+
For example, ``Playlist`` dataclasses can get converted to dictionaries to
|
|
41
|
+
be rendered as HTML/JavaScript in "playlist inspector". If such classes
|
|
42
|
+
were to contain ``numpy`` types they could not be handled by JavaScript.
|
|
43
|
+
"""
|
|
44
|
+
converted_data = {}
|
|
45
|
+
|
|
46
|
+
for key, value in data:
|
|
47
|
+
if isinstance(value, np.float64):
|
|
48
|
+
converted_data[key] = float(value)
|
|
49
|
+
elif isinstance(value, np.ndarray):
|
|
50
|
+
converted_data[key] = value.tolist()
|
|
51
|
+
else:
|
|
52
|
+
converted_data[key] = value
|
|
53
|
+
|
|
54
|
+
return converted_data
|
|
55
|
+
|
|
56
|
+
|
|
33
57
|
def _get_waveform(wave: Waveform, scale: float, wave_q: Waveform | None = None, scale_q: float | None = None) -> str:
|
|
34
58
|
import matplotlib.pyplot as plt
|
|
35
59
|
|
|
@@ -74,7 +98,7 @@ def _playlist_as_a_dict(playlist: Playlist, segment_indices: Sequence[int]) -> d
|
|
|
74
98
|
instruction = channel_desc.instruction_table[instruction_idx]
|
|
75
99
|
instruction_dict = {}
|
|
76
100
|
instruction_dict["name"] = instruction.operation.__class__.__name__
|
|
77
|
-
params = asdict(instruction.operation)
|
|
101
|
+
params = asdict(instruction.operation, dict_factory=_numpy_to_builtin_types)
|
|
78
102
|
if instruction.operation.__class__.__name__ == "RealPulse":
|
|
79
103
|
instruction_dict["wave_img_idx"] = instruction_idx
|
|
80
104
|
if str(instruction_idx) not in waveform_dict[channel]:
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
var fullscreen_state = false;
|
|
120
120
|
|
|
121
121
|
// The schedules to render
|
|
122
|
-
var schedules = {{jsonobj.playlists
|
|
122
|
+
var schedules = {{jsonobj.playlists}}
|
|
123
123
|
var waveforms = {{jsonobj.waveforms}}
|
|
124
124
|
var segment_indices = {{segment_indices}}
|
|
125
125
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: iqm-pulse
|
|
3
|
-
Version: 9.
|
|
3
|
+
Version: 9.15.0
|
|
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
|
|
@@ -214,7 +214,7 @@ Requires-Python: >=3.11
|
|
|
214
214
|
Description-Content-Type: text/x-rst
|
|
215
215
|
License-File: LICENSE.txt
|
|
216
216
|
Requires-Dist: iqm-exa-common<27,>=26
|
|
217
|
-
Requires-Dist: iqm-data-definitions<3.0,>=2.
|
|
217
|
+
Requires-Dist: iqm-data-definitions<3.0,>=2.13
|
|
218
218
|
Requires-Dist: python-rapidjson==1.20
|
|
219
219
|
Requires-Dist: jinja2==3.0.3
|
|
220
220
|
Requires-Dist: numpy<3.0,>=1.26.4
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
9.15.0
|
iqm_pulse-9.13.0/version.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
9.13.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
|
|
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
|
|
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
|
{iqm_pulse-9.13.0 → iqm_pulse-9.15.0}/src/iqm/pulse/playlist/visualisation/templates/static/logo.png
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|