add exceptiongroup support to retry_if_exception #501
+56
−2
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.
This makes tenacity transparently handle any exceptions wrapped inside an ExceptionGroup, so it'll handle a
ValueError()
the same asExceptionGroup("...", [ValueError()])
.If you want it to be more explicit it could be added as a parameter "allow_group".
I have not implemented it for
retry_if_exception_cause_type
as it gets quite messy conceptually: "retry if any of the causes of any of the raised exceptions, recursively checked both on any exceptiongroup and their containing exceptions, is of one or more types". This doesn't sound like something any sane person would ever want.I have not implemented
retry_if[_not]_exception_message
. This one is less weird and I can probably just do it as "retry if the messages of all the exceptions in a group matches" and ignore the exceptiongroup message, but that's still somewhat sketchy.When reading the tests I also found a random unused
_retryable
helper. I'm guessing I can just remove it?Since #480 is not merged I also quickly added py313 to tox & CI
TODO:
@Zac-HD