Skip to main content

Because asyncio.gather() is not enough!

Project description

aioplus

PyPI Version PyPI Downloads License Python Version Documentation

Key Features

  • As easy as built-ins - but asynchronous;
  • Early returns never cause unawaited coroutine warnings;
  • Nearly the same API as the Python 3.13 standard blocking API.

Getting Started

Installation

The library is available as aioplus on PyPI:

pip install aioplus

Usage

aall

For more, see the documentation.

>>> aiterable = arange(23)
>>> await aall(aiterable)
False

aany

For more, see the documentation.

>>> aiterable = arange(23)
>>> await aany(aiterable)
True

abatched

For more, see the documentation.

>>> aiterable = arange(23)
>>> [batch async for batch in abatched(aiterable, n=3)]
[(0, 1, 2), (3, 4, 5), ..., (18, 19, 20), (21, 22)]

acount

For more, see the documentation.

>>> [num async for num in acount(start=23, step=4)]
[23, 27, 31, 35, 39, 43, 47, ...]

acycle

For more, see the documentation.

>>> aiterable = arange(23)
>>> [num async for num in acycle(aiterable)]
[0, 1, ..., 22, 23, 0, 1, ..., 22, 23, ...]

aenumerate

For more, see the documentation.

>>> aiterable = arange(4, 23)
>>> [(index, num) async for index, num in aenumerate(aiterable)]
[(0, 4), (1, 5), (2, 6), (3, 7), ..., (17, 21), (18, 22)]

afirst

For more, see the documentation.

>>> aiterable = arange(23)
>>> await afirst(aiterable)
0

ahead

For more, see the documentation.

>>> aiterable = arange(23)
>>> [num async for num in ahead(aiterable, n=4)]
[0, 1, 2, 3]

aislice

For more, see the documentation.

>>> aiterable = arange(2003)
>>> [num async for num in aislice(aiterable, 4, 23)]
[4, 5, 6, 7, 8, ..., 20, 21, 22]

alast

For more, see the documentation.

>>> aiterable = arange(23)
>>> await alast(aiterable)
22

alen

For more, see the documentation.

>>> aiterable = arange(23)
>>> await alen(aiterable)
23

amax

For more, see the documentation.

>>> aiterable = arange(23)
>>> await amax(aiterable)
22

amin

For more, see the documentation.

>>> aiterable = arange(23)
>>> await amin(aiterable)
0

aminmax

For more, see the documentation.

>>> aiterable = arange(23)
>>> await aminmax(aiterable)
(0, 22)

anth

For more, see the documentation.

>>> aiterable = arange(23)
>>> await anth(aiterable, n=4)
4

apairwise

For more, see the documentation.

>>> aiterable = arange(23)
>>> [pair async for pair in apairwise(aiterable)]
[(0, 1), (1, 2), (2, 3), ..., (20, 21), (21, 22)]

arange

For more, see the documentation.

>>> [num async for num in arange(23)]
[0, 1, 2, 3, 4, ..., 19, 20, 21, 22]

arepeat

For more, see the documentation.

>>> [num async for num in arepeat(23, times=4)]
[23, 23, 23, 23]

areversed

For more, see the documentation.

>>> aiterable = arange(23)
>>> [num async for num in areversed(aiterable)]
[22, 21, 20, 19, 18, ..., 4, 3, 2, 1, 0]

asum

For more, see the documentation.

>>> aiterable = arange(23)
>>> await asum(aiterable)
253

atail

For more, see the documentation.

>>> aiterable = arange(23)
>>> [num async for num in atail(aiterable, n=4)]
[19, 20, 21, 22]

atriplewise

For more, see the documentation.

>>> aiterable = arange(23)
>>> [triplet async for triplet in atriplewise(aiterable)]
[(0, 1, 2), (1, 2, 3), ..., (19, 20, 21), (20, 21, 22)]

awaitify

For more, see the documentation.

>>> aprint = awaitify(print)
>>> await aprint("4 -> 23")
4 -> 23

awindowed

For more, see the documentation.

>>> aiterable = arange(23)
>>> [window async for window in awindowed(aiterable, n=3)]
[(0, 1, 2), (1, 2, 3), ..., (19, 20, 21), (20, 21, 22)]

License

MIT License, Copyright (c) 2025 Sergei Y. Bogdanov. See LICENSE file.

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

aioplus-0.4.0.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aioplus-0.4.0-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

Details for the file aioplus-0.4.0.tar.gz.

File metadata

  • Download URL: aioplus-0.4.0.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.13.5 Windows/10

File hashes

Hashes for aioplus-0.4.0.tar.gz
Algorithm Hash digest
SHA256 fa917a2bd136aefd8dcd0882b0c924529e1a37773d4c34b63602c7769dde5697
MD5 8f0939f296acf6fcdb2c3f144e4be14c
BLAKE2b-256 1f825be23f8c7d4ee26c8749cb15093b5218087c79bb3dde8ddb6c296add4466

See more details on using hashes here.

File details

Details for the file aioplus-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: aioplus-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 27.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.13.5 Windows/10

File hashes

Hashes for aioplus-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0c3c99c989a3cf52d332dcae5d33c545deb978a6e450d6d3e056ac844ec5a561
MD5 af29351691314227144e39b6c2ca311d
BLAKE2b-256 70c97e399c27ddde0202531abb6afd796cafbbb8658b07a4262bf126b920cf9c

See more details on using hashes here.

Supported by

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