iqm-pulse 12.4.0__tar.gz → 12.5.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-12.4.0 → iqm_pulse-12.5.0}/CHANGELOG.rst +8 -0
- {iqm_pulse-12.4.0/src/iqm_pulse.egg-info → iqm_pulse-12.5.0}/PKG-INFO +1 -1
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/gates/measure.py +3 -1
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/timebox.py +15 -14
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0/src/iqm_pulse.egg-info}/PKG-INFO +1 -1
- iqm_pulse-12.5.0/version.txt +1 -0
- iqm_pulse-12.4.0/version.txt +0 -1
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/LICENSE.txt +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/MANIFEST.in +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/README.rst +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/API.rst +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/Makefile +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/_static/.gitignore +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/_static/css/custom.css +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/_static/images/favicon.ico +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/_static/images/feedback_timing.svg +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/_static/images/logo.png +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/_static/images/playlist_breakdown.svg +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/_static/images/pulse_timing.svg +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/_static/images/readout_timing.svg +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/_templates/autosummary-class-template.rst +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/_templates/autosummary-module-template.rst +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/changelog.rst +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/concepts.rst +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/conf.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/custom_gates.rst +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/index.rst +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/license.rst +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/pulse_timing.rst +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/references.bib +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/references.rst +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/docs/using_builder.rst +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/pyproject.toml +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/requirements/base.in +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/requirements/base.txt +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/setup.cfg +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/setup.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/__init__.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/base_utils.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/builder.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/circuit_operations.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/gate_implementation.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/gates/__init__.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/gates/barrier.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/gates/conditional.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/gates/cz.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/gates/default_gates.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/gates/delay.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/gates/enums.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/gates/flux_multiplexer.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/gates/move.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/gates/prx.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/gates/reset.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/gates/rz.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/gates/sx.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/gates/u.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/playlist/__init__.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/playlist/channel.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/playlist/fast_drag.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/playlist/hd_drag.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/playlist/instructions.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/playlist/playlist.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/playlist/schedule.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/playlist/visualisation/__init__.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/playlist/visualisation/base.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/playlist/visualisation/templates/playlist_inspection.jinja2 +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/playlist/visualisation/templates/static/logo.png +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/playlist/visualisation/templates/static/moment.min.js +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/playlist/visualisation/templates/static/vis-timeline-graph2d.min.css +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/playlist/visualisation/templates/static/vis-timeline-graph2d.min.js +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/playlist/waveforms.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/py.typed +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/quantum_ops.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/scheduler.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/utils.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm/pulse/validation.py +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm_pulse.egg-info/SOURCES.txt +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm_pulse.egg-info/dependency_links.txt +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm_pulse.egg-info/requires.txt +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/src/iqm_pulse.egg-info/top_level.txt +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/tests/.pylintrc +0 -0
- {iqm_pulse-12.4.0 → iqm_pulse-12.5.0}/tests/__init__.py +0 -0
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
Changelog
|
|
3
3
|
=========
|
|
4
4
|
|
|
5
|
+
Version 12.5.0 (2025-10-09)
|
|
6
|
+
===========================
|
|
7
|
+
|
|
8
|
+
Bug fixes
|
|
9
|
+
---------
|
|
10
|
+
|
|
11
|
+
- Fix TimeBox __radd__ returning the children in wrong order under some conditions
|
|
12
|
+
|
|
5
13
|
Version 12.4.0 (2025-10-06)
|
|
6
14
|
===========================
|
|
7
15
|
|
|
@@ -871,7 +871,9 @@ class ShelvedMeasureTimeBox(TimeBox):
|
|
|
871
871
|
return super().__add__(other)
|
|
872
872
|
|
|
873
873
|
def __radd__(self, other: TimeBox | Iterable[TimeBox]) -> TimeBox:
|
|
874
|
-
|
|
874
|
+
if isinstance(other, MultiplexedProbeTimeBox):
|
|
875
|
+
return self.__add__(other) # this commutes
|
|
876
|
+
return super().__radd__(other)
|
|
875
877
|
|
|
876
878
|
|
|
877
879
|
SHELVED_OFFSET_TOLERANCE = 1e-12
|
|
@@ -210,6 +210,19 @@ class TimeBox:
|
|
|
210
210
|
raise ValueError(f"Tried to access a child of {self}, which is atomic.")
|
|
211
211
|
return self.children[item]
|
|
212
212
|
|
|
213
|
+
def _add_children(self, other: TimeBox) -> TimeBox:
|
|
214
|
+
"""Concat the children of self and other together."""
|
|
215
|
+
left = self.children if self.atom is None else (self,)
|
|
216
|
+
right = other.children if other.atom is None else (other,)
|
|
217
|
+
return TimeBox(
|
|
218
|
+
label=self.label,
|
|
219
|
+
locus_components=self.locus_components.union(other.locus_components),
|
|
220
|
+
atom=None,
|
|
221
|
+
children=left + right,
|
|
222
|
+
scheduling=self.scheduling,
|
|
223
|
+
scheduling_algorithm=self.scheduling_algorithm,
|
|
224
|
+
)
|
|
225
|
+
|
|
213
226
|
def __add__(self, other: TimeBox | Iterable[TimeBox]) -> TimeBox:
|
|
214
227
|
"""Return a new TimeBox which has the contents of this and another TimeBox concatenated.
|
|
215
228
|
|
|
@@ -231,16 +244,7 @@ class TimeBox:
|
|
|
231
244
|
# allow subclasses to override __add__ such that __radd__ also works consistent with that logic
|
|
232
245
|
return other.__radd__(self) # type: ignore[union-attr]
|
|
233
246
|
if isinstance(other, TimeBox):
|
|
234
|
-
|
|
235
|
-
right = other.children if other.atom is None else (other,)
|
|
236
|
-
return TimeBox(
|
|
237
|
-
label=self.label,
|
|
238
|
-
locus_components=self.locus_components.union(other.locus_components),
|
|
239
|
-
atom=None,
|
|
240
|
-
children=left + right,
|
|
241
|
-
scheduling=self.scheduling,
|
|
242
|
-
scheduling_algorithm=self.scheduling_algorithm,
|
|
243
|
-
)
|
|
247
|
+
return self._add_children(other)
|
|
244
248
|
try:
|
|
245
249
|
return reduce(lambda x, y: x + y, other, self)
|
|
246
250
|
except TypeError as err:
|
|
@@ -248,7 +252,7 @@ class TimeBox:
|
|
|
248
252
|
|
|
249
253
|
def __radd__(self, other: TimeBox | Iterable[TimeBox]) -> TimeBox:
|
|
250
254
|
if isinstance(other, TimeBox):
|
|
251
|
-
return
|
|
255
|
+
return other._add_children(self)
|
|
252
256
|
it = iter(other)
|
|
253
257
|
try:
|
|
254
258
|
first = next(it)
|
|
@@ -397,6 +401,3 @@ class MultiplexedProbeTimeBox(TimeBox):
|
|
|
397
401
|
scheduling_algorithm=SchedulingAlgorithm.HARD_BOUNDARY,
|
|
398
402
|
)
|
|
399
403
|
return box
|
|
400
|
-
|
|
401
|
-
def __radd__(self, other: TimeBox | Iterable[TimeBox]) -> TimeBox:
|
|
402
|
-
return self.__add__(other)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
12.5.0
|
iqm_pulse-12.4.0/version.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
12.4.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_pulse-12.4.0 → iqm_pulse-12.5.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
|
|
File without changes
|