pip install blinker
python
from blinker import signal
my_signal = signal("my_signal")
python
sender_object = SomeClass()
extra_data = {"key": "value"}
my_signal.send(sender=sender_object, **extra_data)
python
def handle_signal(sender, **kwargs):
print("Signal received from:", sender)
print("Extra data:", kwargs)
my_signal.connect(handle_signal)
python
my_signal.disconnect(handle_signal)
python
@my_signal.connect
def handle_signal(sender, **kwargs):
print("Signal received from:", sender)
print("Extra data:", kwargs)
my_signal.send(sender=sender_object, **extra_data)