Skip to content

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

Description

@jnwatson
mannequin
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']

Linked PRs

Activity

  1. jnwatson commented on Aug 6, 2018

    jnwatsonmannequin
    MannequinAuthor

    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__).

  2. 1st1 commented on Aug 7, 2018

    @1st1
    Member

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

  3. added and removed on Aug 7, 2018
  4. transferred this issue fromon Apr 10, 2022
  5. kumaraditya303 commented on Dec 2, 2022

    @kumaraditya303
    Contributor

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

  6. added
    3.12only security fixes
    and removed on Dec 2, 2022
  7. JelleZijlstra commented on Dec 2, 2022

    @JelleZijlstra
    Member

    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.

  8. kumaraditya303 commented on Dec 8, 2022

    @kumaraditya303
    Contributor

    Let's do it.

  9. gvanrossum commented on Dec 22, 2022

    @gvanrossum
    Member

    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)
  10. gvanrossum commented on Mar 17, 2023

    @gvanrossum
    Member

    According to GH, the PR will close this issue. But it should remain open until the 3.10/3.11 docs are also updated.

  11. added a commit that references this issue on Mar 17, 2023
  12. added a commit that references this issue on Mar 17, 2023
  13. added a commit that references this issue on Mar 27, 2023
  14. added a commit that references this issue on Apr 11, 2023
  15. added a commit that references this issue on Apr 24, 2023
  16. kumaraditya303 commented on Apr 24, 2023

    @kumaraditya303
    Contributor

    Fixed by #103748

  17. moved this from Todo to Done in asyncioon Apr 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Projects

  • Status
    Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions