in utils/model_registry.py [0:0]
def print_training_runs_tree(runs_by_training_pair: dict[str, list[TrainingRun]]):
"""
This is a debugging function that prints the training runs as a tree. This function
was AI generated, but human reviewed.
"""
last_langpair_index = len(runs_by_training_pair) - 1
print("\nTraining Runs")
for langpair_index, (langpair, training_runs) in enumerate(runs_by_training_pair.items()):
prefix_langpair = "└──" if langpair_index == last_langpair_index else "├──"
print(f"{prefix_langpair} {langpair}")
last_run_index = len(training_runs) - 1
for run_index, training_run in enumerate(training_runs):
prefix_run = "└──" if run_index == last_run_index else "├──"
connector = " " if langpair_index == last_langpair_index else "│ "
print(f"{connector}{prefix_run} {training_run.name}")
task_groups = training_run.task_group_ids
last_task_index = len(task_groups) - 1
for task_index, task_group_id in enumerate(task_groups):
prefix_task = "└──" if task_index == last_task_index else "├──"
sub_connector = " " if run_index == last_run_index else "│ "
print(
f"{connector}{sub_connector}{prefix_task} https://firefox-ci-tc.services.mozilla.com/tasks/groups/{task_group_id}"
)