feat: Add state-modifying retry policies #2957
Open
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.
Add state-modifying retry policies
Description
This PR adds support for state-modifying retry policies by allowing a dictionary mapping of exceptions to state-modifying functions in the RetryPolicy class. This enhancement enables users to modify the workflow state before retry attempts based on specific exceptions.
I think this feature can be very usefull as I am not the only one who needs it. See this discussion
Changes
RetryPolicy
'sretry_on
parameter to acceptdict[Type[Exception], Callable[[Any, Exception], None]]
Tests
I have not added a test for this feature as I did not find a a fitting file name for this case and did not want to make my own test file.
If needed I can add a test for this new feature, I would appreciate guidance on the preferred location for adding tests.
All existing tests pass.