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.
-
async
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.
Authors and License¶
The aiosignal
package was originally part of the
aiohttp project, written by Nikolay Kim and Andrew Svetlov.
It is now being maintained by Martijn Pieters.
It’s Apache 2 licensed and freely available.
Feel free to improve this package and send a pull request to GitHub.