from collections import defaultdict __ALL__ = ['pub'] class PubSub(object): ''' A super simplified clone of Wx.lib.pubsub since it doesn't exist on linux *grumble grumble* Stupid abandoned wx project... >:( *grumble* ''' def __init__(self): self.registry = defaultdict(list) def subscribe(self, handler, event): self.registry[event].append(handler) def send_message(self, event, **kwargs): for event_handler in self.registry.get(event, []): event_handler(**kwargs) pub = PubSub()