Fix Task.__repr__()
of unpickled object
#11463
Merged
+29
−1
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.
#11378 added a
Task._repr
object that is defined duringTask.__init__()
. InTask.__repr__()
the object is tested but it doesn't account for the situation whereTask
may have been deserialized and thusTask.__init__()
is never called, causing that to fail as the attribute was never defined. One other way to fix this would have been to define a default value when the attribute is defined in the scope of the class, but that unfortunately doesn't work due to the__slots__ = tuple(__annotations__)
in the class. Another alternative to thehasattr
check could be to define a@property
with a different name and make__repr__()
simply return that, which would handle checks regardless of__init__()
being called, but I think that's too much bloat for little benefit.pre-commit run --all-files