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.

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: 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.2.0.tar.gz (3.5 kB view details)

Uploaded Source

File details

Details for the file aioconcurrency-0.2.0.tar.gz.

File metadata

  • Download URL: aioconcurrency-0.2.0.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.18.1 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.29.1 CPython/3.7.2

File hashes

Hashes for aioconcurrency-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d17bd407c3879c9e5f5351282ee6f49b720a03b9b77e615b1cd34b89615c422b
MD5 5f814156dff0610f7f60dd4cee5b78a0
BLAKE2b-256 550eaeae7d8ace82f1d0b9ae6e1c3ca196bd7aedced330aae2a8fc8f420c4fc3

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page