The Wayback Machine - https://web.archive.org/web/20221223110341/https://github.com/python/cpython/issues/78530
Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

asyncio.wait should accept generator of tasks as first argument #78530

Open
jnwatson mannequin opened this issue Aug 6, 2018 · 6 comments
Open

asyncio.wait should accept generator of tasks as first argument #78530

jnwatson mannequin opened this issue Aug 6, 2018 · 6 comments
Assignees
Labels
3.12 expert-asyncio type-feature A feature request or enhancement

Comments

@jnwatson
Copy link
Mannequin

jnwatson mannequin commented Aug 6, 2018

BPO 34349
Nosy @asvetlov, @1st1, @jnwatson, @tirkarthi, @epiphyte

Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

Show more details

GitHub fields:

assignee = None
closed_at = None
created_at = <Date 2018-08-06.19:41:06.692>
labels = ['3.8', 'expert-asyncio']
title = 'asyncio.wait should accept generator of tasks as first argument'
updated_at = <Date 2018-08-07.14:20:15.310>
user = 'https://github.com/jnwatson'

bugs.python.org fields:

activity = <Date 2018-08-07.14:20:15.310>
actor = 'yselivanov'
assignee = 'none'
closed = False
closed_date = None
closer = None
components = ['asyncio']
creation = <Date 2018-08-06.19:41:06.692>
creator = 'jnwatson'
dependencies = []
files = []
hgrepos = []
issue_num = 34349
keywords = []
message_count = 2.0
messages = ['323217', '323241']
nosy_count = 5.0
nosy_names = ['asvetlov', 'yselivanov', 'jnwatson', 'xtreak', 'epiphyte']
pr_nums = []
priority = 'normal'
resolution = None
stage = None
status = 'open'
superseder = None
type = None
url = 'https://bugs.python.org/issue34349'
versions = ['Python 3.8']

@jnwatson
Copy link
Mannequin Author

jnwatson mannequin commented Aug 6, 2018

Currently, passing a generator of coroutines or futures as the first parameter of asyncio.wait raises a TypeError. This is in conflict with the documentation calling the first parameter a "sequence".

Line in question. https://github.com/python/cpython/blob/3.7/Lib/asyncio/tasks.py#L347

Generators are indeed coroutines, so the check to validate that the first parameter is not a coroutine or a future is too specific.

I'd suggest replacing that line with a check that the passed-in parameter is iterable, i.e. hasattr(futures, __iter__).

@1st1
Copy link
Member

1st1 commented Aug 7, 2018

Since we're deprecating generator-based coroutines anyways, I too think that the check can be relaxed.

@kumaraditya303
Copy link
Contributor

kumaraditya303 commented Dec 2, 2022

Since generator based coroutines are gone, I think we should relax this check and allow generators.

@kumaraditya303 kumaraditya303 added 3.12 and removed 3.8 labels Dec 2, 2022
@JelleZijlstra
Copy link
Member

JelleZijlstra commented Dec 2, 2022

Allowing generators in 3.12 seems like a good idea. It's probably also useful to change the documentation in 3.10 and 3.11 to clarify that generators don't work, as #99936 asked for.

@kumaraditya303
Copy link
Contributor

kumaraditya303 commented Dec 8, 2022

Let's do it.

@kumaraditya303 kumaraditya303 self-assigned this Dec 8, 2022
@kumaraditya303 kumaraditya303 added the type-feature A feature request or enhancement label Dec 8, 2022
@gvanrossum
Copy link
Member

gvanrossum commented Dec 22, 2022

So there are two separate tasks here, right:

  1. In 3.12, allow generators
  2. In the docs for 3.10 and 3.11, explain that generators are not allowed (maybe allude to 3.12 allowing them)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.12 expert-asyncio type-feature A feature request or enhancement
Projects
Status: Todo
Development

No branches or pull requests

4 participants