async_wrapper.queue.py

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

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, 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[source]

number of items in the queue.

property maxsize: float

number of items allowed in the queue.

empty() bool[source]

true if the queue is empty, false otherwise.

full() bool[source]

return true if there are maxsize items in the queue.

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

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[source]

put an item into the queue.

Parameters:
  • value – item

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

get() ValueT[source]

remove and return an item from the queue without blocking.

put(value: ValueT) None[source]

put an item into the queue without blocking.

async aclose() None[source]

close the stream as async

close() None[source]

close the stream as sync

property clone: _Clone[ValueT]

Create a queue factory for generating RestrictedQueue instances.

Returns:

A queue factory.

Added in version 0.5.2.

statistics() MemoryObjectStreamStatistics[source]

return statstics from stream

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

create queue like asyncio.Queue

Parameters:

max_size – queue size. Defaults to None.

Returns:

new Queue using anyio.abc.ObjectStream