diff --git a/synapse/util/distributor.py b/synapse/util/distributor.py
index 1f803aef6d..31097d6439 100644
--- a/synapse/util/distributor.py
+++ b/synapse/util/distributor.py
@@ -12,6 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import logging
+from typing import Any, Callable, Dict, List
from twisted.internet import defer
@@ -37,11 +38,11 @@ class Distributor:
model will do for today.
"""
- def __init__(self):
- self.signals = {}
- self.pre_registration = {}
+ def __init__(self) -> None:
+ self.signals: Dict[str, Signal] = {}
+ self.pre_registration: Dict[str, List[Callable]] = {}
- def declare(self, name):
+ def declare(self, name: str) -> None:
if name in self.signals:
raise KeyError("%r already has a signal named %s" % (self, name))
@@ -52,7 +53,7 @@ class Distributor:
for observer in self.pre_registration[name]:
signal.observe(observer)
- def observe(self, name, observer):
+ def observe(self, name: str, observer: Callable) -> None:
if name in self.signals:
self.signals[name].observe(observer)
else:
@@ -62,7 +63,7 @@ class Distributor:
self.pre_registration[name] = []
self.pre_registration[name].append(observer)
- def fire(self, name, *args, **kwargs):
+ def fire(self, name: str, *args, **kwargs) -> None:
"""Dispatches the given signal to the registered observers.
Runs the observers as a background process. Does not return a deferred.
@@ -83,18 +84,18 @@ class Signal:
method into all of the observers.
"""
- def __init__(self, name):
- self.name = name
- self.observers = []
+ def __init__(self, name: str):
+ self.name: str = name
+ self.observers: List[Callable] = []
- def observe(self, observer):
+ def observe(self, observer: Callable) -> None:
"""Adds a new callable to the observer list which will be invoked by
the 'fire' method.
Each observer callable may return a Deferred."""
self.observers.append(observer)
- def fire(self, *args, **kwargs):
+ def fire(self, *args, **kwargs) -> "defer.Deferred[List[Any]]":
"""Invokes every callable in the observer list, passing in the args and
kwargs. Exceptions thrown by observers are logged but ignored. It is
not an error to fire a signal with no observers.
|