def add_node(node: Union[Branch, Leaf], parent: ET): # We're building this: # # <li> # <pre>Split information</pre> # <ul>...</ul # <li> li = ET.Element("li") parent.append(li) code = ET.Element("code") if isinstance(node, Branch): code.text = node.repr_split li.append(code) ul = ET.Element("ul") for child in node.children: add_node(node=child, parent=ul) li.append(ul) else: code.text = repr(node) li.append(code)
def create_sprites_xml(sprites_dict: Dict[str, Any], root: ET, subtree: ET) -> Dict[str, Any]: d: Dict[str, Any] = sprites_dict name = re.sub(r"\.(gif|png)$", "", d['NAME']) print(f"Processing {name} --> sprite.GMX") if (d["TYPE"] == "file"): elem = ET.Element("sprite") elem.text = f"sprites\\{name}" return elem elif (d["TYPE"] == "directory"): elem = ET.Element("sprites") attr = "sprites" if name == "." else name elem.set('name', attr) recursive_tree = lambda x: create_sprites_xml(x, root, subtree) for i in d["CONTENTS"]: elem.append(recursive_tree(i)) subtree.append(elem) return elem