Simplify repeat_delay and fix support for it when using iterable frames. #18901
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.
Simplify the implementation of
repeat_delay
: instead of switchingcallbacks back and forth, just set the timer interval at each
iteration to either the normal delay or the end-of-loop delay.
Fix support for
repeat_delay
whenframes
is an iterable: theprevious implementation handled looping in
iter_frames
and therefore_step
never saw the end of the iterable. Instead, just iteratethrough
frames
once initer_frames
, but stilltee
the iterableso that
_step
can take care of repeating the animation.Can be checked with
Previously repeat_delay would not be applied (this was likely intro'ed by
#14068, so this PR could be considered as a bugfix, hence the milestoning).
PR Summary
PR Checklist
pytest
passes).flake8
on changed files to check).flake8-docstrings
and runflake8 --docstring-convention=all
).doc/users/next_whats_new/
(follow instructions in README.rst there).doc/api/next_api_changes/
(follow instructions in README.rst there).