aioplus¶
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())
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"triplet = ({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.