Skip to content

Fix: "Schedule serialization not working"

Explanation of changes

  • The class method from_json (in quantify_scheduler > schedules > schedule.py > ScheduleBase) was not working as intended: it was recreating a schedule object with the data returned by SchedulerJSONDecoder. However, SchedulerJSONDecoder is already returning a Schedule object (a schedule object was thus created twice, and led to the unintended output).
  • Including a ReferenceMagnitude in the scheduler created an issue in the deserialized scheduler. It was deserialized as {'value': 0, 'unit': 'dBm'} instead of ReferenceMagnitude(value=0, unit='dBm). To recreate the ReferenceMagnitude the __getstate__ and __setstate__ methods were implemented in the ReferenceMagnitude class.

Motivation of changes

  • The from_json method now returns the output from SchedulerJSONDecoder directly, since this is already the desired return.
  • The SchedulerJSONDecoder and SchedulerJSONEncoder rely 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 @deprecated and 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-developers channel to merge main back in or update local packages (or N/A).
  • Tested on hardware (or N/A).
  • CHANGELOG.md for breaking changes and AUTHORS.md have 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

Merge request reports

Loading