Better asyncio handling in Python <3.7 using threading #364
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.
Description:
Related issue (if applicable): nvidia-sniper/103
Apprise leverages
asyncio
right out of the box (by default), which works perfect in most situations. Asyncio significantly evolved once Python v3.7 was released. The problem is that not everyone is using Python v3.7, and not everyone has adapted their tool sets to use the newasyncio
approaches yet.Users of Python v3.6 and lower can encounter an error when using Apprise if the application it was built under leverages threading. By default there is no event_loop that exists within a Python thread. This pull request attempts to detect these situations so that it can spin up a new event loop (similar to how Python v3.7+ would) making the Apprise experience/integration more developer/user friendly. This PR also eliminates any potential
RuntimeError
from occurring on these older versions of Python.Checklist
flake8
)