Fix repr collisions

Explanation of changes

Use the hash of an operation as dictionary key

Motivation of changes

Using the string of an operation for logic is not a very stable design, and leads e.g. to #209 (closed) It also leads e.g. to implicit modifications of the gate. E.g. the string formatting can lead to implicit rounding of gate parameters (see https://gitlab.com/quantify-os/quantify-scheduler/-/blob/main/quantify_scheduler/operations/gate_library.py?ref_type=heads#L272)

Note

  • operation_repr should be renamed to operation_hash. This will be a separate MR to improve readability

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 (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
Edited by Tobias Bonsen

Merge request reports

Loading