(use_resources: dict[str, str | None])
| 602 | |
| 603 | |
| 604 | def format_resources(use_resources: dict[str, str | None]) -> str: |
| 605 | all_resources = set(ALL_RESOURCES) |
| 606 | |
| 607 | values = [] |
| 608 | for name in sorted(use_resources): |
| 609 | if use_resources[name] is not None: |
| 610 | values.append(f'{name}={use_resources[name]}') |
| 611 | |
| 612 | # Express resources relative to "all" |
| 613 | relative_all = ['all'] |
| 614 | for name in sorted(all_resources - set(use_resources)): |
| 615 | relative_all.append(f'-{name}') |
| 616 | for name in sorted(set(use_resources) - all_resources): |
| 617 | if use_resources[name] is None: |
| 618 | relative_all.append(name) |
| 619 | all_text = ','.join(relative_all + values) |
| 620 | all_text = f"resources: {all_text}" |
| 621 | |
| 622 | # List of enabled resources |
| 623 | resources = [] |
| 624 | for name in sorted(use_resources): |
| 625 | if use_resources[name] is None: |
| 626 | resources.append(name) |
| 627 | text = ','.join(resources + values) |
| 628 | text = f"resources ({len(use_resources)}): {text}" |
| 629 | |
| 630 | # Pick the shortest string (prefer relative to all if lengths are equal) |
| 631 | if len(all_text) <= len(text): |
| 632 | return all_text |
| 633 | else: |
| 634 | return text |
| 635 | |
| 636 | |
| 637 | def display_header(use_resources: dict[str, str | None], |
searching dependent graphs…