Skip to content

Simplify consumers by making queue.Queue an iterable #120499

@nineteendo

Description

@nineteendo

Feature or enhancement

Proposal:

class Iterator:
    def __init__(self, queue):
        self.queue = queue

    def __iter__(self):
        return self

    async def __next__(self):
        try:
            return self.queue.get_nowait()
        except (Empty, ShutDown):
            raise StopIteration

class Queue:
    ...
    def __iter__(self):
        return Iterator(self)

Has this already been discussed elsewhere?

This is a minor feature, which does not need previous discussion elsewhere

Links to previous discussion of this feature:

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    type-featureA feature request or enhancement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions