| 589 | |
| 590 | |
| 591 | def format_resources(use_resources: Iterable[str]) -> str: |
| 592 | use_resources = set(use_resources) |
| 593 | all_resources = set(ALL_RESOURCES) |
| 594 | |
| 595 | # Express resources relative to "all" |
| 596 | relative_all = ['all'] |
| 597 | for name in sorted(all_resources - use_resources): |
| 598 | relative_all.append(f'-{name}') |
| 599 | for name in sorted(use_resources - all_resources): |
| 600 | relative_all.append(f'{name}') |
| 601 | all_text = ','.join(relative_all) |
| 602 | all_text = f"resources: {all_text}" |
| 603 | |
| 604 | # List of enabled resources |
| 605 | text = ','.join(sorted(use_resources)) |
| 606 | text = f"resources ({len(use_resources)}): {text}" |
| 607 | |
| 608 | # Pick the shortest string (prefer relative to all if lengths are equal) |
| 609 | if len(all_text) <= len(text): |
| 610 | return all_text |
| 611 | else: |
| 612 | return text |
| 613 | |
| 614 | |
| 615 | def display_header(use_resources: tuple[str, ...], |