Fix: "Schedule serialization not working"
Explanation of changes
- The class method
from_json(inquantify_scheduler>schedules>schedule.py>ScheduleBase) was not working as intended: it was recreating a schedule object with the data returned bySchedulerJSONDecoder. However,SchedulerJSONDecoderis already returning aScheduleobject (a schedule object was thus created twice, and led to the unintended output). - Including a
ReferenceMagnitudein the scheduler created an issue in the deserialized scheduler. It was deserialized as{'value': 0, 'unit': 'dBm'}instead ofReferenceMagnitude(value=0, unit='dBm). To recreate theReferenceMagnitudethe__getstate__and__setstate__methods were implemented in theReferenceMagnitudeclass.
Motivation of changes
- The
from_jsonmethod now returns the output fromSchedulerJSONDecoderdirectly, since this is already the desired return. - The
SchedulerJSONDecoderandSchedulerJSONEncoderrely on an object's__getstate__and__setstate__methods to serialize and deserialize it.
closes #486 (closed)
Merge checklist
See also merge request guidelines
-
Merge request has been reviewed (in-depth by a knowledgeable contributor), and is approved by a project maintainer. -
New code is covered by unit tests (or N/A). -
New code is documented and docstrings use numpydoc format (or N/A). -
New functionality: considered making private instead of extending public API (or N/A). -
Public API changed: added @deprecatedand entry in deprecated code suggestions (or N/A). -
Newly added/adjusted documentation and docstrings render properly (or N/A). -
Pipeline fix or dependency update: post in #software-for-developerschannel to mergemainback in or update local packages (or N/A). -
Tested on hardware (or N/A). -
CHANGELOG.mdfor breaking changes andAUTHORS.mdhave been updated (or N/A). -
Update Hardware backends documentation if backend interface change or N/A -
Check whether performance is significantly affected by looking at the Performance metrics results. -
Windows tests in CI pipeline pass (manually triggered by maintainers before merging). - Maintainers do not hit Auto-merge, we need to actively check as manual tests do not block pipeline
For reference, the issues workflow is described in the contribution guidelines.
Edited by Robert Sokolewicz