def build(config): leaf = Leaf() t = Topology() TopologyBuilder.prebuild(config) for num, node in TopologyBuilder.numberingObjects.items(): if num == 0: root = node children = [] for child in node.children: children.append(TopologyBuilder.numberingObjects[child]) TopologyBuilder.numberingObjects[child].add_parent(node) node.clear_children() node.add_children(children) if not node.children: node.add_child(leaf) leaf.add_parent(node) TopologyBuilder.numberingObjects = None t.root = root return t
def build(config): leaf = Leaf() t = Topology() TopologyBuilder.prebuild(config) for num, node in TopologyBuilder.numberingObjects.items() : if num == 0 : root = node children = [] for child in node.children : children.append(TopologyBuilder.numberingObjects[child]) TopologyBuilder.numberingObjects[child].add_parent(node) node.clear_children() node.add_children(children) if not node.children : node.add_child(leaf) leaf.add_parent(node) TopologyBuilder.numberingObjects = None t.root = root return t
def prebuilds(definition, config): if not type(definition) is dict : raise Exception('TpologyBuilder.prebuilds: node definition must be dictionary. real [%s]' % type(definition)) num = definition['num'] children = definition['children'] name = definition['class'] root_yn = definition['root'] node = TopologyBuilder.newinstance(name, config) node.add_children(children) TopologyBuilder.numberingObjects[num] = node if root_yn : TopologyBuilder.numberingObjects[0].add_child(num)
def prebuilds(definition, config): if not type(definition) is dict: raise Exception( 'TpologyBuilder.prebuilds: node definition must be dictionary. real [%s]' % type(definition)) num = definition['num'] children = definition['children'] name = definition['class'] root_yn = definition['root'] node = TopologyBuilder.newinstance(name, config) node.add_children(children) TopologyBuilder.numberingObjects[num] = node if root_yn: TopologyBuilder.numberingObjects[0].add_child(num)