def __new__(mcs, name, bases, dict): from Orange.canvas.registry.description import ( input_channel_from_args, output_channel_from_args) cls = type.__new__(mcs, name, bases, dict) if not cls.name: # not a widget return cls cls.inputs = [input_channel_from_args(inp) for inp in cls.inputs] cls.outputs = [output_channel_from_args(outp) for outp in cls.outputs] for inp in cls.inputs: if not hasattr(cls, inp.handler): raise AttributeError( "missing input signal handler '{}' in {}".format( inp.handler, cls.name)) # TODO Remove this when all widgets are migrated to Orange 3.0 if (hasattr(cls, "settingsToWidgetCallback") or hasattr(cls, "settingsFromWidgetCallback")): raise TypeError("Reimplement settingsToWidgetCallback and " "settingsFromWidgetCallback") cls.settingsHandler = SettingsHandler.create( cls, template=cls.settingsHandler) return cls
def __new__(mcs, name, bases, kwargs): from Orange.canvas.registry.description import ( input_channel_from_args, output_channel_from_args) cls = type.__new__(mcs, name, bases, kwargs) if not cls.name: # not a widget return cls cls.inputs = [input_channel_from_args(inp) for inp in cls.inputs] cls.outputs = [output_channel_from_args(outp) for outp in cls.outputs] for inp in cls.inputs: if not hasattr(cls, inp.handler): raise AttributeError("missing input signal handler '{}' in {}". format(inp.handler, cls.name)) # TODO Remove this when all widgets are migrated to Orange 3.0 if (hasattr(cls, "settingsToWidgetCallback") or hasattr(cls, "settingsFromWidgetCallback")): raise TypeError("Reimplement settingsToWidgetCallback and " "settingsFromWidgetCallback") cls.settingsHandler = SettingsHandler.create(cls, template=cls.settingsHandler) return cls