Compare commits
2 Commits
ba6d5f4255
...
38a181652a
Author | SHA1 | Date | |
---|---|---|---|
38a181652a | |||
dd9f0f80d3 |
40
make_tree.py
40
make_tree.py
@ -8,38 +8,30 @@ def print_ingredients():
|
||||
|
||||
|
||||
ingredients = {}
|
||||
|
||||
ingredient = "start"
|
||||
i = 0
|
||||
while ingredient:
|
||||
node = "start"
|
||||
while node:
|
||||
print_ingredients()
|
||||
|
||||
ingredient = input("Add ingredient: ")
|
||||
node = input("Add node: ")
|
||||
|
||||
if ingredient:
|
||||
ingredients[i] = Node(ingredient, result=ingredient)
|
||||
i += 1
|
||||
|
||||
task = "start"
|
||||
while task:
|
||||
print_ingredients()
|
||||
|
||||
task = input("Add task: ")
|
||||
|
||||
if task:
|
||||
if node:
|
||||
needs = input("List needs (comma-separated): ")
|
||||
description = input("Detailed description: ")
|
||||
result = input("Result of task (e.g. chopped carrots): ")
|
||||
|
||||
new_task = Node(task, description=description, result=result)
|
||||
|
||||
ingredients[i] = new_task
|
||||
if needs:
|
||||
result = input("Result of node (e.g. chopped carrots): ")
|
||||
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
|
||||
else:
|
||||
new_node = Node(node, description=description, result=node)
|
||||
|
||||
ingredients[i] = new_node
|
||||
i += 1
|
||||
|
||||
for e in [int(key.strip()) for key in needs.split(",")]:
|
||||
ingredients.pop(e).parent = new_task
|
||||
|
||||
for pre, _, node in RenderTree(new_task):
|
||||
for pre, _, node in RenderTree(new_node):
|
||||
print(f"{pre}{node.name}")
|
||||
|
||||
name = input("Recipe name: ")
|
||||
@ -48,5 +40,5 @@ if name:
|
||||
name = name.replace(" ", "_")
|
||||
|
||||
with open(f"{name}.json", 'w') as f:
|
||||
JsonExporter(indent=2).write(new_task, f)
|
||||
JsonExporter(indent=2).write(new_node, f)
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
from anytree import LevelOrderGroupIter
|
||||
from anytree import LevelOrderIter, LevelOrderGroupIter
|
||||
from anytree.importer import JsonImporter
|
||||
from sys import argv
|
||||
|
||||
@ -20,7 +20,7 @@ def build_rows_depth_first(node, rows, leaf_count=0):
|
||||
rows[cur_row].append(f'<th>{node.name}</th>')
|
||||
|
||||
if colspan > 1:
|
||||
rows[cur_row].append(f'<td colspan="{colspan-1}"></td>')
|
||||
rows[cur_row].append(f'<td colspan="{colspan-1}" class="filler"></td>')
|
||||
|
||||
leaf_count += 1
|
||||
|
||||
@ -46,6 +46,23 @@ for i in range(len(root.leaves)):
|
||||
|
||||
build_rows_depth_first(root, output_rows)
|
||||
|
||||
print("<h2>Ingredients</h2>")
|
||||
print("<ul>")
|
||||
|
||||
for ingredient in root.leaves:
|
||||
print(f" <li>{ingredient.name}</li>")
|
||||
|
||||
print("</ul>")
|
||||
|
||||
print("<h2>Steps</h2>")
|
||||
print("<ol>")
|
||||
|
||||
tasks = [node for node in LevelOrderIter(root) if not node.is_leaf]
|
||||
for task in reversed(tasks):
|
||||
print(f"<li>{task.description}</li>")
|
||||
|
||||
print("</ol>")
|
||||
|
||||
print("<table cellspacing='0'>")
|
||||
|
||||
for row in output_rows:
|
||||
|
Loading…
x
Reference in New Issue
Block a user