from NodeGraphQt import BaseNode class AverageNode(BaseNode): """ Average Node: - Inputs: A, B, C (adjustable as needed) - Output: Result (the average of the inputs) """ __identifier__ = 'io.github.nicole.average' NODE_NAME = 'Average' def __init__(self): super(AverageNode, self).__init__() self.values = {} # Ensure values is a dictionary. self.add_input('A') self.add_input('B') self.add_input('C') self.add_output('Result') self.value = 0 self.set_name("Average: 0") def process_input(self): values = [] for port_name in ['A', 'B', 'C']: port = self.input(port_name) connected = port.connected_ports() if port is not None else [] if connected: connected_port = connected[0] parent_node = connected_port.node() try: values.append(float(getattr(parent_node, 'value', 0))) except (ValueError, TypeError): pass avg = sum(values) / len(values) if values else 0 self.value = avg self.set_name(f"Average: {avg}")