class Runner(object): def __init__(self, path, startstates=[]): self.path = path self.fsm = FSM() self.loader = Loader(path) self.startstates = startstates def prepare(self): self.loader.load() self.fsm.startstates = self.startstates self.fsm.actionset = self.loader.actions self.fsm.explore() def run(self): self.fsm.execute() def savesvg(self): self.fsm.savesvg()
status['app'] = 'off' return status if __name__ == '__main__': fsm = FSM() action1 = Action() action1.transfer = transfer_blackon action1.name = 'black_on' action2 = Action() action2.transfer = transfer_blackoff action2.name = 'black_off' action3 = Action() action3.transfer = transfer_appin action3.name = 'app_in' action4 = Action() action4.transfer = transfer_appon action4.name = 'app_on' action5 = Action() action5.transfer = transfer_appoff action5.name = 'app_off' fsm.startstates = [{'app':'na', 'black':'na'}] fsm.actionset = [action3,action5,action4,action1,action2] fsm.explore() fsm.dumpcase()