def __call__(self, *inputs, **kwargs): if (len(inputs) > self._schema.MaxNumInput() or len(inputs) < self._schema.MinNumInput()): raise ValueError( ("Operator {} expects [{}, " + "{}] inputs, but received {}") .format(type(self).__name__, self._schema.MinNumInput(), self._schema.MaxNumInput(), len(inputs))) op_instance = _OperatorInstance(inputs, self, **kwargs) t_name = "PythonFunctionImpl" + "_id_" + str(op_instance.id) t = EdgeReference(t_name, self._device, op_instance) op_instance.spec.AddOutput(t.name, t.device) op_instance.append_output(t) op_instance.spec.AddArg("function_id", id(self.function)) return t