diff --git a/make_tree.py b/make_tree.py index 95335c2..7f3a1c9 100644 --- a/make_tree.py +++ b/make_tree.py @@ -1,17 +1,19 @@ +import json + from anytree import Node, RenderTree -from anytree.exporter import JsonExporter +from anytree.exporter import DictExporter -def print_ingredients(): - for i, node in ingredients.items(): +def print_nodes(): + for i, node in nodes.items(): print(f" {i}.) {node.result}") -ingredients = {} +nodes = {} i = 0 node = "start" while node: - print_ingredients() + print_nodes() node = input("Add node: ") @@ -24,21 +26,31 @@ while node: new_node = Node(node, description=description, result=result) for e in [int(key.strip()) for key in needs.split(",")]: - ingredients.pop(e).parent = new_node + nodes.pop(e).parent = new_node else: new_node = Node(node, description=description, result=node) - ingredients[i] = new_node + nodes[i] = new_node i += 1 -for pre, _, node in RenderTree(new_node): - print(f"{pre}{node.name}") +root_keys = nodes.keys() + +for key in root_keys: + for pre, _, node in RenderTree(nodes[key]): + print(f"{pre}{node.name}") name = input("Recipe name: ") - +description = input("Recipe description: ") if name: - name = name.replace(" ", "_") + sub_recipes = [] + exporter = DictExporter() + for key in root_keys: + sub_recipes.append(exporter.export(nodes[key])) - with open(f"{name}.json", 'w') as f: - JsonExporter(indent=2).write(new_node, f) + recipe = {"name": name, "description": description, "sub_recipes": sub_recipes} + + filename = name.replace(" ", "_").lower() + + with open(f"{filename}.json", 'w') as f: + f.write(json.dumps(recipe)) diff --git a/output_html.py b/output_html.py index 9b07e91..14356aa 100644 --- a/output_html.py +++ b/output_html.py @@ -1,5 +1,7 @@ +import json + from anytree import LevelOrderIter, LevelOrderGroupIter -from anytree.importer import JsonImporter +from anytree.importer import DictImporter from sys import argv @@ -37,38 +39,48 @@ if len(argv) < 2: exit() with open(argv[1], 'r') as f: - root = JsonImporter().read(f) + recipe = json.loads(f.read()) -output_rows = [] +recipe_name = recipe.get("name") +recipe_desc = recipe.get("description") +importer = DictImporter() +sub_recipes = [importer.import_(data) for data in recipe["sub_recipes"]] -for i in range(len(root.leaves)): - output_rows.append([]) - -build_rows_depth_first(root, output_rows) - -print("
{recipe_desc}
") +print("