On Fri, May 20, 2016 at 10:53 AM, Ilya Kulakov firstname.lastname@example.org wrote:
On 20 May 2016, at 12:22, Guido van Rossum email@example.com wrote:
OK, I finally see the point. There are legitimate situations where get_event_loop() returns None (this is how most of asyncio's tests are running).
Unless there are tests that expect that get_event_loop() would return None when called from within coroutine it should be fine.
The tests are supposed to fail if something doesn't explicitly pass the loop; this is how we test that all code in asyncio itself always correctly passes the loop rather than accidentally relying on get_event_loop().
So we want a separate function, e.g. get_current_event_loop(). Send a PR to the GitHub project.
Also see related bug: http://bugs.python.org/issue26969 Yuri did some work, but he argumented in favor of modifying get_event_loop.
Should we continue discussion of implementation here or in that issue?
I consider it a feature that you can make get_event_loop() return None. But I think it would be a bug (in the Policy class) if it returned some other loop that's not the one that's running.
I also think it's fine for a particular library or app to request that get_event_loop() not return None. User code is simpler that way.