I think there's a plan to add a run() function to asyncio, which would be
something akin to

def run(coro):
    return get_event_loop().run_until_complete(coro)

(but perhaps with better cleanup).

Then you could start with `from asyncio import run` and from then on you'd
have your handy little function. When using standard Python you can even
put such handy imports in your $PYTHONSTARTUP file. Presumably with Jupyter
there are other, more powerful mechanisms.

--Guido

On Sat, Nov 12, 2016 at 12:45 PM, Andrew Svetlov <andrew.svet...@gmail.com>
wrote:

> On other hand having builtin for making toy examples in interactive mode
> looks very redundant.
>
> On Sat, Nov 12, 2016 at 10:38 PM Ivan Levkivskyi <levkivs...@gmail.com>
> wrote:
>
>> Hi,
>>
>> async/await syntax is a very nice recent feature, but there is something
>> that I miss for coroutines defined with async def, as compared to
>> generators. Coroutines represent an interesting mental model that goes
>> beyond only asynchronous IO, so that I play with them in REPL often. But
>> there is no built-in function to actually run a coroutine, so that
>> typically I use something like:
>>
>> >>> def run(coro):
>> ...     try:
>> ...         coro.send(None)
>> ...     except StopIteration as e:
>> ...         return e.value
>>
>> >>> async def f():
>> ...     return 42
>>
>> >>> run(f())
>> 42
>>
>> There is a simple yet useful function for interactive play with
>> generators - ``next``, but not for coroutines. There is an option to do:
>>
>> >>> import asyncio
>> >>> loop = asyncio.get_event_loop()
>> >>> loop.run_until_complete(f())
>> 42
>>
>> But this feels a bit redundant for an interactive play. I would propose
>> to add something like an above described ``run`` function to built-ins.
>>
>> Yes, I know, there is a very high bar for adding a built-in function, but
>> I believe such a function will help to promote async/await to a wider
>> community (especially to novices).
>>
>> --
>> Ivan
>>
>>
>> _______________________________________________
>> Python-ideas mailing list
>> Python-ideas@python.org
>> https://mail.python.org/mailman/listinfo/python-ideas
>> Code of Conduct: http://python.org/psf/codeofconduct/
>
> --
> Thanks,
> Andrew Svetlov
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas@python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>



-- 
--Guido van Rossum (python.org/~guido)
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to