def print_training_runs_tree()

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}"
                )