from update import update class Message: def update_model(self, model): raise NotImplementedError("This message does not implement update_model method") def reset(self): return True class ClickMessage(Message): def __init__(self, event): event.stopPropagation() def msg(message, params): if not issubclass(type(message), Message): window.console.log("Not scheduling a Message type, this will not work!") return lambda: None def callback(event): message.on_event(event) #message_class(event, params) update.schedule(message) return callback