| 608 | results[group]["samples"] = sum(sizes) |
| 609 | |
| 610 | def print_tasks(task_hierarchy, results, tab=0): |
| 611 | results_agg = collections.defaultdict(dict) |
| 612 | groups_agg = collections.defaultdict(dict) |
| 613 | |
| 614 | (group_name, task_list), *_ = task_hierarchy.items() |
| 615 | task_list = sorted(task_list) |
| 616 | |
| 617 | results_agg[group_name] = results[group_name].copy() |
| 618 | # results_agg[group_name]["tab"] = tab |
| 619 | if "samples" in results_agg[group_name]: |
| 620 | results_agg[group_name].pop("samples") |
| 621 | |
| 622 | tab_string = " " * tab + "- " if tab > 0 else "" |
| 623 | |
| 624 | if "alias" in results_agg[group_name]: |
| 625 | results_agg[group_name]["alias"] = ( |
| 626 | tab_string + results_agg[group_name]["alias"] |
| 627 | ) |
| 628 | else: |
| 629 | results_agg[group_name]["alias"] = tab_string + group_name |
| 630 | |
| 631 | if len(task_list) > 0: |
| 632 | groups_agg[group_name] = results[group_name].copy() |
| 633 | # groups_agg[group_name]["tab"] = tab |
| 634 | if "samples" in groups_agg[group_name]: |
| 635 | groups_agg[group_name].pop("samples") |
| 636 | |
| 637 | if "alias" in groups_agg[group_name]: |
| 638 | groups_agg[group_name]["alias"] = ( |
| 639 | tab_string + groups_agg[group_name]["alias"] |
| 640 | ) |
| 641 | else: |
| 642 | groups_agg[group_name]["alias"] = tab_string + group_name |
| 643 | |
| 644 | for task_name in task_list: |
| 645 | if task_name in task_hierarchy: |
| 646 | _task_hierarchy = { |
| 647 | **{task_name: task_hierarchy[task_name]}, |
| 648 | **task_hierarchy, |
| 649 | } |
| 650 | else: |
| 651 | _task_hierarchy = { |
| 652 | **{task_name: []}, |
| 653 | **task_hierarchy, |
| 654 | } |
| 655 | |
| 656 | _results_agg, _groups_agg = print_tasks( |
| 657 | _task_hierarchy, results, tab + 1 |
| 658 | ) |
| 659 | results_agg = {**results_agg, **_results_agg} |
| 660 | groups_agg = {**groups_agg, **_groups_agg} |
| 661 | |
| 662 | return results_agg, groups_agg |
| 663 | |
| 664 | results_agg = collections.defaultdict(dict) |
| 665 | groups_agg = collections.defaultdict(dict) |