AIOBase is a lightweight, asynchronous task orchestration utility that manages coroutines with built-in semaphore control. Ideal for concurrent operations like API calls, web scraping, or batch async I/O processing.
AIOBase is intended for educational, personal, and professional development purposes. You are responsible for ensuring compliance with any policies, terms, and laws relevant to your use case. No warranty — The creator of AIOBase does not take any responsibility for how this software is used. You must ensure that your usage complies with all applicable laws and regulations in your jurisdiction.
✔️ | Feature |
---|---|
✅ | Asynchronous Task Runner: Manage concurrent coroutines with built-in semaphore control. |
✅ | Add & Clear Task Queue: Utilities to easily add tasks to and clear the internal queue. |
✅ | Return Exceptions Optionally: Choose whether exceptions from tasks raise immediately or return. |
✅ | Minimalistic & Fast: Built on top of asyncio.gather for efficient async execution. |
✅ | Typed & Testable: Includes type hints and unit tests covering core behaviors for reliability. |
Requires Python 3.10 or higher
git clone https://github.com/0N3R0/AIOBase.git
cd AIOBase
pip install -r requirements.txt
Want to get started quickly with AIOBase? Follow these simple steps.
git clone https://github.com/0N3R0/AIOBase.git
cd AIOBase
Requires Python 3.10 or higher
pip install -r requirements.txt
Create a simple script called example.py
:
import asyncio
from AIOBase import AIOBase
async def add(x, y):
await asyncio.sleep(0.1)
return x + y
aio = AIOBase(_semaphore=2)
aio.add_task(add, 2, 3)
aio.add_task(add, 10, 5)
results = asyncio.run(aio.run_tasks())
print(results) # Output: [5, 15]
Run it:
python example.py
✅ Done! You now have a working asynchronous task runner with concurrency control. Easily add and manage your own tasks.
For testing run this command inside the project repository:
pytest
- Example tests include:
- Task queue management
- Return values from async operations
- Handling of raised exceptions
See tests/ directory for details.
Contributions are very welcome! To contribute:
- Fork the repository.
- Create a new branch: git checkout -b feature/your-feature-name
- Make your changes and add unit tests if applicable.
- Commit your changes: git commit -m "Add new feature"
- Push your branch: git push origin feature/your-feature-name
- Open a Pull Request, describing your changes in detail.
Please adhere to consistent code style, include documentation for new functionality, and ensure all existing tests pass.
This project is licensed under the MIT License. See the LICENSE file for details.
© 2025 0N3R0