Tiny helper for running your async code
Project description
😈 What the heck?
aioGo is the tiny helper library that doing two simple thinks:
- run your async code
and
- correct terminate your async code
Default python asyncio have troubles with this: when you hit Ctrl+C asyncio just cancel all your coroutines.
This can lead to many race conditions and hanging your application at exit point.
📘 How to use?
Install from pypi:
pip install aiogo
or, if you prefer poetry:
poetry add aiogo
And just:
from asyncio import Future
from aiogo import go
async def main(termination: Future[bool]) -> None:
await termination
if __name__ == "__main__":
go(main)
That's all. You just wait while termination future was resolved (when your application got SIGINT or SIGTERM).
When you will be use this library in real world, just:
import asyncio
async def main(termination: asyncio.Future[bool]) -> None:
done, _ = asyncio.wait((termination, your_awesome_read_task), return_when=asyncio.FIRST_COMPLETED)
and check done set.
I want custom event loop (uvloop)!
That I have! Again, just:
import uvloop
from aiogo import go
go(main, event_loop_factory=uvloop.new_event_loop)
I want forced exit!
If you can't write correct exit behaviour, well... Do that:
from aiogo import go
go(main, exit_timeout=10)
And all your coroutines will be got CancelledError, as doing old good asyncio.run.
🌎 Hot to contribute?
- Make a repository fork
- Apply your changes (don't forget install pre-commit before making commit)
- Make a pull request
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aiogo-0.1.1.tar.gz.
File metadata
- Download URL: aiogo-0.1.1.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.5 CPython/3.13.1 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18ddb8f30e5772eac294880ae3b4d846627b41775afabf20796f1c8640cbd4b2
|
|
| MD5 |
d5313693435ee3f1938e7a7966cd70c8
|
|
| BLAKE2b-256 |
4d0cc1db21ce95a9f98e49d0a407f97f283981a4de0c77b0deb1ea05f8b51df5
|
File details
Details for the file aiogo-0.1.1-py3-none-any.whl.
File metadata
- Download URL: aiogo-0.1.1-py3-none-any.whl
- Upload date:
- Size: 4.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.5 CPython/3.13.1 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99f6eb1ae8c972d84e5f109c8cead24c8f3742139e211b7aac2742d529dddba8
|
|
| MD5 |
871755cce83379cca248d6746967e241
|
|
| BLAKE2b-256 |
de123cf47b5820394830cd6c4519131d128c266501151d4056c164c79564b104
|