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.mdandAUTHORS.mdhave 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