3 from cola
.compat
import set
4 from cola
.decorators
import memoize
7 debug
= os
.environ
.get('COLA_NOTIFIER_DEBUG', False)
15 class Notifier(object):
16 """Object for sending and receiving notification messages"""
23 def broadcast(self
, signal
, *args
, **opts
):
25 print('broadcast: %s(%s, %s)' % (signal
,
28 self
.emit(signal
, *args
, **opts
)
30 def emit(self
, signal
, *args
, **opts
):
31 subscribers
= self
.channels
.get(signal
, None)
34 for fxn
in subscribers
:
37 def connect(self
, signal
, callback
):
38 subscribers
= self
.channels
.setdefault(signal
, set())
39 subscribers
.add(callback
)