Fix pickle and repr for Duration
. (backport #14174)
#14193
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Adds missing Python pickle support for the new
Duration
type added in Qiskit 2.0.Details and comments
To get this working, I needed to manually register the PyO3 generated
Duration_xx
Python classes at the module level, sincepickle
looks for them during deserialization. I'm not sure if there's a better way, but I'm open to suggestions if you can think of something cleaner. Pickle doesn't have explicit support in PyO3, so we're lucky to have any working solution here.While fixing this, I also noticed that
__repr__
was defined inside animpl
block that wasn't decorated with#[pymethods]
, meaning it wasn't actually being used before. That's fixed here too.Fixes #14169
This is an automatic backport of pull request #14174 done by Mergify.