feat(live): add support for using asyncio.Task as an alternative to threading.Thread to handle live updates #3457
+98
−10
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.
Type of changes
Checklist
Description
This pull request adds support for using asyncio.Task as an alternative to threading.Thread to handle live updates.
The main reason for implementing this is that when using
__import__('pdb').set_trace()
or something similar, the screen keeps getting updated making it impossible to debug. Since__import__('pdb').set_trace()
interrupts the event loop, this problem wont happen when using async code to handle the updates. Additionally it seams natural to use the event loop to handle the updates when one is available.I set the default to determining the refresh method to
"auto"
, which determines the method based on if there is a running event loop.