Skip to content

syubogdanov/aioplus

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.

import asyncio

from aioplus import aall, arange

async def main() -> None:
    """Run the program."""
    aiterable = (num > 0 async for num in arange(2304))
    flg = await aall(aiterable)

if __name__ == "__main__":
    asyncio.run(main())

aany

For more, see the documentation.

import asyncio

from aioplus import aany, arange

async def main() -> None:
    """Run the program."""
    aiterable = (num % 2 == 0 async for num in arange(2304))
    flg = await aany(aiterable)

if __name__ == "__main__":
    asyncio.run(main())

abatched

For more, see the documentation.

import asyncio

from aioplus import abatched, arange

async def main() -> None:
    """Run the program."""
    async for batch in abatched(arange(23), n=4):
        print(batch)

if __name__ == "__main__":
    asyncio.run(main())

acount

For more, see the documentation.

import asyncio

from aioplus import acount

async def main() -> None:
    """Run the program."""
    async for num in acount(start=23, step=4):
        print(num)

if __name__ == "__main__":
    asyncio.run(main())

acycle

For more, see the documentation.

import asyncio

from aioplus import acycle, arange

async def main() -> None:
    """Run the program."""
    async for num in acycle(arange(23)):
        print(num)

if __name__ == "__main__":
    asyncio.run(main())

aenumerate

For more, see the documentation.

import asyncio

from aioplus import aenumerate, arange

async def main() -> None:
    """Run the program."""
    async for index, num in aenumerate(arange(2304)):
        print(index, num)

if __name__ == "__main__":
    asyncio.run(main())

afirst

For more, see the documentation.

import asyncio

from aioplus import afirst, arange

async def main() -> None:
    """Run the program."""
    aiterable = arange(4, 23)
    num = await afirst(aiterable)
    print(f"aiterable[0] = {num}")

if __name__ == "__main__":
    asyncio.run(main())

ahead

For more, see the documentation.

import asyncio

from aioplus import ahead, arange

async def main() -> None:
    """Run the program."""
    async for num in ahead(arange(23), n=4):
        print(num)

if __name__ == "__main__":
    asyncio.run(main())

aislice

For more, see the documentation.

import asyncio

from aioplus import aislice, arange

async def main() -> None:
    """Run the program."""
    async for num in aislice(arange(23), 4):
        print(num)

if __name__ == "__main__":
    asyncio.run(main())

alast

For more, see the documentation.

import asyncio

from aioplus import alast, arange

async def main() -> None:
    """Run the program."""
    aiterable = arange(4, 23)
    num = await alast(aiterable)
    print(f"aiterable[-1] = {num}")

if __name__ == "__main__":
    asyncio.run(main())

alen

For more, see the documentation.

import asyncio

from aioplus import alen, arange

async def main() -> None:
    """Run the program."""
    aiterable = arange(2304)
    length = await alen(aiterable)
    print(f"len(aiterable) == {length}")

if __name__ == "__main__":
    asyncio.run(main())

amax

For more, see the documentation.

import asyncio

from aioplus import amax, arange

async def main() -> None:
    """Run the program."""
    aiterable = arange(23)
    largest = await amax(aiterable)
    print(f"max(aiterable) == {largest}")

if __name__ == "__main__":
    asyncio.run(main())

amin

For more, see the documentation.

import asyncio

from aioplus import amin, arange

async def main() -> None:
    """Run the program."""
    aiterable = arange(23)
    smallest = await amin(aiterable)
    print(f"min(aiterable) == {smallest}")

if __name__ == "__main__":
    asyncio.run(main())

aminmax

For more, see the documentation.

import asyncio

from aioplus import aminmax, arange

async def main() -> None:
    """Run the program."""
    aiterable = arange(23)
    smallest, largest = await aminmax(aiterable)
    print(f"min(aiterable) == {smallest}")
    print(f"max(aiterable) == {largest}")

if __name__ == "__main__":
    asyncio.run(main())

anth

For more, see the documentation.

import asyncio

from aioplus import anth, arange

async def main() -> None:
    """Run the program."""
    aiterable = arange(23)
    value = await anth(aiterable, n=4)
    print(f"value = {value}")

if __name__ == "__main__":
    asyncio.run(main())

apairwise

For more, see the documentation.

import asyncio

from aioplus import apairwise, arange

async def main() -> None:
    """Run the program."""
    async for left, right in apairwise(arange(23)):
        print(f"pair = ({left}, {right})")

if __name__ == "__main__":
    asyncio.run(main())

arange

For more, see the documentation.

import asyncio

from aioplus import arange

async def main() -> None:
    """Run the program."""
    async for num in arange(2304):
        print(num)

if __name__ == "__main__":
    asyncio.run(main())

arepeat

For more, see the documentation.

import asyncio

from aioplus import arepeat

async def main() -> None:
    """Run the program."""
    async for num in arepeat(23, times=4):
        print(num)

if __name__ == "__main__":
    asyncio.run(main())

areversed

For more, see the documentation.

import asyncio

from aioplus import arange, areversed

async def main() -> None:
    """Run the program."""
    async for num in areversed(arange(2304)):
        print(num)

if __name__ == "__main__":
    asyncio.run(main())

atail

For more, see the documentation.

import asyncio

from aioplus import arange, atail

async def main() -> None:
    """Run the program."""
    async for num in atail(arange(23), n=4):
        print(num)

if __name__ == "__main__":
    asyncio.run(main())

atriplewise

For more, see the documentation.

import asyncio

from aioplus import arange, atriplewise

async def main() -> None:
    """Run the program."""
    async for left, middle, right in atriplewise(arange(23)):
        print(f"window = ({left}, {middle}, {right})")

if __name__ == "__main__":
    asyncio.run(main())

awaitify

For more, see the documentation.

import asyncio

from aioplus import awaitify

def func(num: int) -> None:
    """Print the number."""
    print(f"Num: {num}")

async def main() -> None:
    """Run the program."""
    afunc = awaitify(func)
    await afunc(num=2304)

if __name__ == "__main__":
    asyncio.run(main())

awindowed

For more, see the documentation.

import asyncio

from aioplus import arange, awindowed

async def main() -> None:
    """Run the program."""
    async for window in awindowed(arange(23), n=4):
        print(f"window = {window}")

if __name__ == "__main__":
    asyncio.run(main())

License

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