concise publish/subscribe utility
A concise Publish/Subscribe utility module. It supports both free-form signal names and a stricter style where signals are declared first. You can also mix them.
import smoke class MyCls(smoke.Broker): appears = smoke.signal('appears') leaves = smoke.signal('leaves') def say_hello(what): print("hello %s" % (what,)) def say_goodbye(what): print("good bye %s" % (what,)) # Using broker o = MyCls() o.subscribe("appears", say_hello) o.publish("appears", what='world') # Using declared signals o = MyCls() o.leaves.subscribe(say_goodbye) o.leaves.publish(what='world') # Mixing o = MyCls() o.subscribe("appears", say_hello) o.appears.publish()
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.