New submission from Andrew Svetlov <andrew.svet...@gmail.com>:

Yuri proposed it for Python 3.8 but at that time the change was premature.
Now we can reconsider it for 3.9

The problem is that asyncio.get_event_loop() not only returns a loop but also 
creates it on-demand if the thread is main and the loop doesn't exist.  

It leads to weird errors when get_event_loop() is called at import-time and 
asyncio.run() is used for asyncio code execution.

get_running_loop() is a much better alternative when used *inside* a running 
loop, run() should be preferred for calling async code at top-level. Low-level 
new_event_loop()/loop.run_until_complete() are still present to run async code 
if top-level run() is not suitable for any reason.

asyncio.run() was introduced in 3.7, deprecation on get_event_loop() in 3.8 was 
able to complicate support of 3.5/3.6 by third-party libraries.
3.5 now reached EOL, 3.6 is in the security-fix mode and going close to EOL. 
Most people are migrated to newer versions already if they care.
The maintenance burden of the introduced deprecation should be pretty low.

----------
messages: 361229
nosy: asvetlov
priority: normal
severity: normal
status: open
title: Deprecate get_event_loop()

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue39529>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to