Skip to main content

Run a coroutine with each item in an iterable, concurrently

Project description

aioconcurrency Build Status

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 .

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

aioconcurrency-0.5.0.tar.gz (4.1 kB view hashes)

Uploaded source

Built Distribution

aioconcurrency-0.5.0-py3.7.egg (7.0 kB view hashes)

Uploaded 3 7

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page