diff options
author | Benjamin Klimczak <benjamin.klimczak@arm.com> | 2023-02-10 13:12:57 +0000 |
---|---|---|
committer | Benjamin Klimczak <benjamin.klimczak@arm.com> | 2023-02-10 14:56:43 +0000 |
commit | 718277eaece76902c4950f18d428907b39a18ef1 (patch) | |
tree | 6fda1b8f8c2c0151f3697a2e9f31c2f5551cc2ff /src/mlia/utils | |
parent | fa1fad9332e2912f12a44a1b07716ee434174308 (diff) | |
download | mlia-718277eaece76902c4950f18d428907b39a18ef1.tar.gz |
MLIA-769 Add "pretty names" for targets / backends
- Provide "pretty names" to print information for targets and backends.
- Use 'target_config' instead of 'target' if a target profile is
used.
- Fix minor issue in output regarding the output directory.
Change-Id: Ib38231f30b4d609a0d1e8f9c52b2fb547c69cb6a
Diffstat (limited to 'src/mlia/utils')
-rw-r--r-- | src/mlia/utils/registry.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/mlia/utils/registry.py b/src/mlia/utils/registry.py index 9b25a81..a886376 100644 --- a/src/mlia/utils/registry.py +++ b/src/mlia/utils/registry.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright 2022, Arm Limited and/or its affiliates. +# SPDX-FileCopyrightText: Copyright 2022-2023, Arm Limited and/or its affiliates. # SPDX-License-Identifier: Apache-2.0 """Generic registry class.""" from __future__ import annotations @@ -15,17 +15,25 @@ class Registry(Generic[T]): def __init__(self) -> None: """Create an empty registry.""" self.items: dict[str, T] = {} + self.pretty_names: dict[str, str] = {} def __str__(self) -> str: """List all registered items.""" return "\n".join( - f"- {name}: {item}" + f"- {self.pretty_names[name] if name in self.pretty_names else name}: " + f"{item}" for name, item in sorted(self.items.items(), key=lambda v: v[0]) ) - def register(self, name: str, item: T) -> bool: + def register(self, name: str, item: T, pretty_name: str | None = None) -> bool: """Register an item: returns `False` if already registered.""" if name in self.items: return False # already registered self.items[name] = item + if pretty_name: + self.pretty_names[name] = pretty_name return True + + def pretty_name(self, name: str) -> str: + """Get the pretty name (if available) or return the name as is otherwise.""" + return self.pretty_names[name] if name in self.pretty_names else name |