Metadata-Version: 2.1
Name: aioconcurrency
Version: 0.4.1
Summary: Run a coroutine with each item in an iterable, concurrently
Home-page: http://github.com/dflupu/aioconcurrency
Author: Daniel Lupu
Author-email: dflupu@gmail.com
License: MIT
Description: # aioconcurrency [![Build Status](https://travis-ci.org/dflupu/aioconcurrency.svg?branch=master)](https://travis-ci.org/dflupu/aioconcurrency)
        
        Run a coroutine with each item in an iterable, concurrently
        
        ## Install
        
        `pip install aioconcurrency`
        
        ## Usage example
        
        ```
        import aioconcurrency
        
        items = [1, 2, 3, 4]
        async def f(item):
            return item * 2
        
        async def main():
            await aioconcurrency.map(items, f, concurrency=2)  # Returns [2, 4, 6, 8]
        
            async for result in aioconcurrency.each(items, f, concurrency=2):
                print(result)  # Prints 2 4 6 8 in random order
        ```
        
        ## Api
        
        ### aioconcurrency.map
        
        Runs the given coroutine concurrently with each item in an iterable.
        The list of the return values will be ordered as if ran serially.
        
        `items`
        
        An iterable object.
        
        `coro`
        
        Coroutine to feed each item to.
        
        `optional: concurrency`
        
        Number of concurrent runs of `coro`. Defaults to `aioconcurrency.Infinite`.
        
        `optional: executor`
        
        Can be an instance of ThreadPoolExecutor.
        
        `optional: loop`
        
        The asyncio event loop that will be used.
        
        ### aioconcurrency.each
        
        Runs the given coroutine concurrently with each item in an iterable.
        Returns a generator that may be used to iterate over the return values. The generator yields values as soon as they are available.
        
        `items`
        
        An iterable object. If an `asyncio.Queue` is passed then `.each` will read from it indefinitely.
        
        `coro`
        
        Coroutine to feed each item to.
        
        `optional: concurrency`
        
        Number of concurrent runs of `coro`. Defaults to `aioconcurrency.Infinite`.
        
        `optional: executor`
        
        Can be an instance of ThreadPoolExecutor.
        
        `optional: loop`
        
        The asyncio event loop that will be used.
        
        `optional: discard_results`
        
        If truthy, discard the return value of `coro`. Defaults to false.
        
        `property: wait()`
        
        Coroutine. May be used to wait until all items have been processed.
        
        `property: processed_count`
        
        The number of items that have been processed so far.
        
        `property: cancel()`
        
        Cancels all runs of `coro`.
        
        ## Tests
        
        `pytest .`
        
Keywords: asyncio aio each map limit semaphore concurrency generator synchronization
Platform: UNKNOWN
Description-Content-Type: text/markdown
