def make_controller(name, devices): # print_dict(devices) controller = Controller(name) try: for name in devices: d = devices[name] cls = ControllerIO.get_device_class(d) mapping = ControllerIO.get_mapping(d) device = cls(name) controller.add_device(device, mapping) return controller except IndexError: raise IOError("Unable to build controller " + name) except AssertionError: raise IOError("Unable to build controller " + name)