Caution, this is a 0.x.y version, the public interfaces might break at any time.
Sweetasync
A collection of simple functions, decorators and classes to make your asynchronous python code sweeter.
- only compatible with 3.5.2+ and 3.6+
- use Semantic Versioning
- the documentation is extracted with sphinx from the
source's docstrings:
sphinx-build ./ doc
- to run the test suite, use (adapt accordingly to your installation of
python):
python3.6 setup.py test
Features
- remove the boilerplate that comes with setting up and using
an event loop with the
aiorunner
context manager and the@sync
decorator for async functions; they also clean up after an exception happens so you don't get useless warnings about an unclosed event loop and the like - easily communicate between coroutines or between coroutines and threads
with the
Channel
andBufferedChannel
classes; they can be used as async iterators from coroutines and blocking iterators from threads - receive data from multiple channels with a
Bundle
by iterating on it - dispatch events to callbacks and async functions with
EventEmitter
; it even handles backpressure and errors - make your code sweeter with these small functions:
aiter
,asyncify
, andas_await
- implement synchronization primitives with
waiter
(such as channels!)
Examples
See the example directory for runnable examples.