aiosignal¶
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: sig.append()
etc.
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 await sig.send(data)
.
For concrete usage examples see the Signals section of the Web Server Advanced chapter of the aiohttp documentation.
API¶
- class aiosignal.Signal(owner)¶
The signal, implements the
collections.abc.MutableSequence
interface. 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()¶
Freeze the list. After calling, any content modification is forbidden.
Installation¶
$ pip install aiosignal
The library requires Python 3.6 or newer.
Dependencies¶
aiosignal depends on the frozenlist library.
Documentation¶
Communication channels¶
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
Requirements¶
Python >= 3.6
frozenlist >= 1.0.0
License¶
aiosignal
is offered under the Apache 2 license.
Source code¶
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.