Skip to content

make CompiledSchedule.compiled instructions interactive in notebooks (SE-291)

Robert Sokolewicz requested to merge display_comp_instructions into main

Explanation of changes

  • (Compiled)Schedule.compiled_instructions will now display an interactive table with clickable tabs when in a notebook environment that supports HTML rendering in its cells (e.g. Jupyter notebooks), and if supported by the backend (currently only Qblox). Otherwise (e.g. terminals, or compiled for Zhinst hardware), will print the dictionary just as before.
  • when a schedule is compiled with the Qblox backend, it will make small modifications to the output like adding pretty-printed Q1ASM programs and plotting waveforms.
  • When compiled with Zhinst, the compiled instructions are printed as a dictionary

see interactive preview in the examples here preview

schedule = Schedule("x")
schedule.add(Reset("q0", "q1"))
schedule.add(X("q0"))
schedule.add(Measure("q0"))

schedule = compiler.compile(schedule)
schedule.compiled_instructions

before

image

after

preview

program

image

waveforms

image

sequencer settings

image

module settings

image

acquisition metadata

image


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 and AUTHORS.md have been updated (or N/A).
  • 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