On 2015-04-22 9:04 PM, Guido van Rossum wrote: > On Wed, Apr 22, 2015 at 5:55 PM, Yury Selivanov <yselivanov.ml at gmail.com> > wrote: > >> On 2015-04-22 8:35 PM, Guido van Rossum wrote: >> >>> On Wed, Apr 22, 2015 at 5:12 PM, Greg Ewing <greg.ewing at canterbury.ac.nz> >>> wrote: >>> >>> Guido van Rossum wrote: >>>> On Wed, Apr 22, > OTOH I'm still struggling with what you have to do to >>>>> wrap a coroutine in a Task, the way its done in asyncio by the Task() >>>>> constructor, the loop.create_task() method, and the async() function >>>>> >>>>> That's easy. You can always use costart() to adapt a cofunction >>>> for use with something expecting a generator-based coroutine, >>>> e.g. >>>> >>>> codef my_task_func(arg): >>>> ... >>>> >>>> my_task = Task(costart(my_task_func, arg)) >>>> >>>> If you're willing to make changes, Task() et al could be made to >>>> recognise cofunctions and apply costart() where needed. >>>> >>> Hm, that feels backwards incompatible (since currently I can write >>> Task(my_task_func(arg)) and also a step backwards in elegance (having to >>> pass the args separately). >>> >>> OTOH the benefit is that it's much harder to accidentally forget to wait >>> for a coroutine. And maybe the backward compatibility issue is not really >>> a >>> problem because you have to opt in by using codef or async def. >>> >>> So I'm still torn. :-) >>> >>> Somebody would need to take a mature asyncio app and see how often this is >>> used (i.e. how many place would require adding costart() as in the above >>> example). >>> >> Somewhere in this thread Victor Stinner wrote: >> >> """A huge part of the asyncio module is based on "yield from fut" where >> fut is a Future object.""" >> >> So how would we do "await fut" if await requires parentheses? >> > We could make Future a valid co-callable object. So you would have to write 'await fut()'? This is non-intuitive. To make Greg's proposal work it'd be a *requirement* for 'await' (enforced by the grammar!) to have '()' after it. Yury
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4