Metadata-Version: 2.1
Name: asyncio_tools
Version: 0.1.1
Summary: Useful utilities for working with asyncio.
Home-page: https://github.com/piccolo-orm/asyncio_tools
Author: Daniel Townsend
Author-email: dan@dantownsend.co.uk
License: MIT
Description: # asyncio_tools
        
        Useful utilities for working with asyncio.
        
        ## gather
        
        Provides a convenient wrapper around `asyncio.gather`.
        
        ```python
        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")
        
        ```
        
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.8.0
Description-Content-Type: text/markdown
