diff options
author | Annie Tallund <annie.tallund@arm.com> | 2023-01-12 07:49:06 +0100 |
---|---|---|
committer | Benjamin Klimczak <benjamin.klimczak@arm.com> | 2023-02-08 15:23:29 +0000 |
commit | 836efd40317a397761ec8b66e3f4398faac43ad0 (patch) | |
tree | 5133ffd51d8d6772551333a4b337d36a501a8a91 /src/mlia/target/registry.py | |
parent | a4fb8c72f15146c95df16c25e75f03344e9814fd (diff) | |
download | mlia-836efd40317a397761ec8b66e3f4398faac43ad0.tar.gz |
MLIA-770 List all available backends
- Rely on target and backend registry for support information
- Make above information less Ethos(TM)-U specific
Change-Id: I8dbfb84401016412a3d719a84eb592f21d79c46b
Diffstat (limited to 'src/mlia/target/registry.py')
-rw-r--r-- | src/mlia/target/registry.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/mlia/target/registry.py b/src/mlia/target/registry.py index 2d29f1b..325dd04 100644 --- a/src/mlia/target/registry.py +++ b/src/mlia/target/registry.py @@ -32,6 +32,30 @@ def supported_backends(target: str) -> list[str]: return registry.items[target].filter_supported_backends(check_system=False) +def get_backend_to_supported_targets() -> dict[str, list]: + """Get a dict that maps a list of supported targets given backend.""" + targets = dict(registry.items) + supported_backends_dict: dict[str, list] = {} + for target, info in targets.items(): + target_backends = info.supported_backends + for backend in target_backends: + supported_backends_dict.setdefault(backend, []).append(target) + return supported_backends_dict + + +def is_supported(backend: str, target: str | None = None) -> bool: + """Check if the backend (and optionally target) is supported.""" + backends = get_backend_to_supported_targets() + if target is None: + if backend in backends: + return True + return False + try: + return target in backends[backend] + except KeyError: + return False + + def supported_targets(advice: AdviceCategory) -> list[str]: """Get a list of all targets supporting the given advice category.""" return [ |