async_wrapper.queue.py

class async_wrapper.queue.Queue(max_size: float | None = None)

Bases: Generic[ValueT]

obtained from asyncio.Queue

Example

>>> from __future__ import annotations
>>>
>>> from typing import Any
>>>
>>> import anyio
>>>
>>> from async_wrapper import Queue
>>>
>>>
>>> async def aput(queue: Queue[Any], value: Any) -> None:
>>>     async with queue:
>>>         await queue.aput(value)
>>>
>>>
>>> async def main() -> None:
>>>     queue: Queue[Any] = Queue(10)
>>>
>>>     async with anyio.create_task_group() as task_group:
>>>         async with queue.aputter:
>>>             for i in range(10):
>>>                 task_group.start_soon(aput, queue.clone(putter=True), i)
>>>
>>>     async with queue.agetter:
>>>         result = {x async for x in queue}
>>>
>>>     assert result == set(range(10))
>>>
>>>
>>> if __name__ == "__main__":
>>>     anyio.run(main)
property aputter: AsyncContextManager[Self]

aclose putter only

property agetter: AsyncContextManager[Self]

aclose getter only

property putter: ContextManager[Self]

close putter only

property getter: ContextManager[Self]

close getter only

qsize() int

number of items in the queue.

property maxsize: float

number of items allowed in the queue.

empty() bool

true if the queue is empty, false otherwise.

full() bool

return true if there are maxsize items in the queue.

async aget(*, timeout: float | None = None) ValueT

remove and return an item from the queue.

Parameters:

timeout – error occurs when over timeout. Defaults to None.

Returns:

item from queue

async aput(value: ValueT, *, timeout: float | None = None) None

put an item into the queue.

Parameters:
  • value – item

  • timeout – error occurs when over timeout. Defaults to None.

get() ValueT

remove and return an item from the queue without blocking.

put(value: ValueT) None

put an item into the queue without blocking.

async aclose() None

close the stream as async

close() None

close the stream as sync

clone(*, putter: bool = False, getter: bool = False) Queue[ValueT]

create clone of this queue.

Parameters:
  • putter – if true, clone putter. Defaults to False.

  • getter – if true, clone getter. Defaults to False.

Returns:

clone

statistics() MemoryObjectStreamStatistics

return statstics from stream

async_wrapper.queue.create_queue(max_size: float | None = None) Queue[Any]

create queue like asyncio.Queue

Parameters:

max_size – queue size. Defaults to None.

Returns:

new Queue using anyio.abc.ObjectStream