Useful utilities for working with asyncio.
Project description
asyncio_tools
Useful utilities for working with asyncio.
gather
Provides a convenient wrapper around asyncio.gather
.
from asyncio_tools import gather, CompoundException
async def good():
return 'OK'
async def bad():
raise ValueError()
async def main():
response = await gather(
good(),
bad(),
good()
)
# Check if a particular exception was raised.
ValueError in response.exception_types
# >>> True
# To get all exceptions:
print(response.exceptions)
# >>> [ValueError()]
# To get all instances of a particular exception:
response.exceptions_of_type(ValueError)
# >>> [ValueError()]
# To get the number of exceptions:
print(response.exception_count)
# >>> 1
# You can still access all of the results:
print(response.all)
# >>> ['OK', ValueError(), 'OK']
# And can access all successes (i.e. non-exceptions):
print(response.successes)
# >>> ['OK', 'OK']
# To get the number of successes:
print(response.success_count)
# >>> 2
try:
# To combines all of the exceptions into a single one, which merges the
# messages.
raise response.compound_exception()
except CompoundException as compound_exception:
print("Caught it")
if ValueError in compound_exception.exception_types:
print("Caught a ValueError")
Read some background on why gather
is useful:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
asyncio_tools-1.0.0.tar.gz
(3.7 kB
view hashes)
Built Distribution
Close
Hashes for asyncio_tools-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54f5033699df063b393d99bb744895cf9fad28062ff83717f9b2f54344f89c97 |
|
MD5 | 2a31f935d7f78b1d6bdbb8ceb683ee6e |
|
BLAKE2b-256 | 167cb0fde3dc52ce369a485767472d9b17301714522976b1f82efaf43ff5d49a |