Clean up
This commit is contained in:
parent
1f5fc58e06
commit
a971b7e064
3 changed files with 35 additions and 100 deletions
|
|
@ -1,65 +0,0 @@
|
||||||
import asyncio
|
|
||||||
|
|
||||||
__all__ = ["Callbacks"]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Callbacks():
|
|
||||||
"""
|
|
||||||
Manage callbacks asynchronously
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
self._callbacks = {}
|
|
||||||
|
|
||||||
def add(self, event, callback):
|
|
||||||
"""
|
|
||||||
add(event, callback) -> None
|
|
||||||
|
|
||||||
Add a function to be called on event.
|
|
||||||
"""
|
|
||||||
|
|
||||||
if not event in self._callbacks:
|
|
||||||
self._callbacks[event] = []
|
|
||||||
self._callbacks[event].append(callback)
|
|
||||||
|
|
||||||
def remove(self, event):
|
|
||||||
"""
|
|
||||||
remove(event) -> None
|
|
||||||
|
|
||||||
Remove all callbacks attached to that event.
|
|
||||||
"""
|
|
||||||
|
|
||||||
if event in self._callbacks:
|
|
||||||
del self._callbacks[event]
|
|
||||||
|
|
||||||
async def call(self, event, *args, **kwargs):
|
|
||||||
"""
|
|
||||||
await call(event) -> None
|
|
||||||
|
|
||||||
Call all callbacks subscribed to the event with *args and **kwargs".
|
|
||||||
"""
|
|
||||||
|
|
||||||
tasks = [asyncio.ensure_future(callback(*args, **kwargs))
|
|
||||||
for callback in self._callbacks.get(event, [])]
|
|
||||||
|
|
||||||
for task in tasks:
|
|
||||||
await task
|
|
||||||
|
|
||||||
def exists(self, event):
|
|
||||||
"""
|
|
||||||
exists(event) -> bool
|
|
||||||
|
|
||||||
Are any functions subscribed to this event?
|
|
||||||
"""
|
|
||||||
|
|
||||||
return event in self._callbacks
|
|
||||||
|
|
||||||
def list(self):
|
|
||||||
"""
|
|
||||||
list() -> callbacks
|
|
||||||
|
|
||||||
Returns a list of current callbacks
|
|
||||||
"""
|
|
||||||
|
|
||||||
return list(self._callbacks.keys())
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue