This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author asvetlov
Recipients asvetlov
Date 2020-02-02.11:11:37
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1580641897.21.0.210075972969.issue39529@roundup.psfhosted.org>
In-reply-to
Content
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.
History
Date User Action Args
2020-02-02 11:11:37asvetlovsetrecipients: + asvetlov
2020-02-02 11:11:37asvetlovsetmessageid: <1580641897.21.0.210075972969.issue39529@roundup.psfhosted.org>
2020-02-02 11:11:37asvetlovlinkissue39529 messages
2020-02-02 11:11:37asvetlovcreate