Asyncio queues with extended functionality: peeking, setting put and get callbacks.
Project description
aioqueueext
A package that provides asyncio Queues with additional functionality.
Work-in-Progress
The repository contains modules extracted from my other project and was refactored as a separate package.
In the current version, I have not verified all of the functions.
Additional functions I plan to implement are:
return_when_*()
- async functions to ease synchronization tasksset_on_get_callback()
set_on_put_callback()
peek_nowait()
- returns the "up-next" item without removing it from the queuepeek_and_get()
- async peek and conditionally get (pop) an item from the queue
Examples
Sync Peeking
async def sync_peeking_example() -> None:
queue1 = QueueExt()
await queue1.put("apple")
item = queue1.peek_nowait()
print(f"first peek: {item}") # "apple"
await queue1.put("banana")
item = queue1.peek_nowait()
print(f"second peek: {item}") # "apple"
item = await queue1.get() # popped "apple"
item = queue1.peek_nowait()
print(f"third peek: {item}") # "banana"
item = await queue1.get() # popped "banana"
# the next peek raises the QueueEmpty exception
try:
print(f"fourth peek: {queue1.peek_nowait()}")
except asyncio.QueueEmpty:
print("fourth peek failed: QueueEmpty")
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aioqueueext-0.2.1.tar.gz
(6.3 kB
view hashes)
Built Distribution
Close
Hashes for aioqueueext-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20ef95a2951482df38b742876c0ef1c769ec071d7aee1c5fbfbcc28456d28e2c |
|
MD5 | c88a807d29aa7b2d8aa773e156155dda |
|
BLAKE2b-256 | f6424ab0f3050a2b7799779c278dde3b56d6e98f4e360f8b2572fba65268a4d2 |