A project to manage callbacks in asyncio projects.
Signal is a list of registered asynchronous callbacks.
The signal’s life-cycle has two stages: after creation its content
could be filled by using standard list operations:
After you call
sig.freeze() the signal is frozen: adding, removing
and dropping callbacks is forbidden.
The only available operation is calling the previously registered
callbacks by using
- class aiosignal.Signal(owner)¶
The signal, implements the
collections.abc.MutableSequenceinterface. The owner object is shown in the signal representation, and is there to make debugging easier.
- async send(*args, **kwargs)¶
Call all registered callbacks one by one starting from the beginning of the list.
Freeze the list. After calling, any content modification is forbidden.
$ pip install aiosignal
The library requires Python 3.6 or newer.
aiosignal depends on the frozenlist library.
aio-libs discourse group: https://aio-libs.discourse.group
Feel free to post your questions and ideas here.
gitter chat https://gitter.im/aio-libs/Lobby
Python >= 3.6
frozenlist >= 1.0.0
aiosignal is offered under the Apache 2 license.
The project is hosted on GitHub
Please file an issue in the bug tracker if you have found a bug or have some suggestions to improve the library.