def inner(*args, **kwargs): #Add a graph comp = func(*args, **kwargs) g = Multigraph(comp.name+'_'+'wrapper') g.add_node(comp) #For each port, add #an "once" component for (in_name, in_port) in comp.inputs.items(): in_node = SubIn('IN_'+in_name) once_node = Once('once_'+in_name) g.add_node(in_node) g.add_node(once_node) #Connect in_node.outputs.OUT.connect(once_node.inputs.IN) once_node.outputs.OUT.connect(in_port) #Export inputs g.inputs.export(in_node.inputs.IN, in_name) #Export outputs for (out_name, out_port) in comp.outputs.items(): g.outputs.export(out_port, out_name) return g
def second_level(*args, **kwargs): comp = func(*args, **kwargs) g = Multigraph(comp.name + '_' + 'wrapper') g.add_node(comp)