aboutsummaryrefslogtreecommitdiff
path: root/src/mlia/backend/executor/config.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mlia/backend/executor/config.py')
-rw-r--r--src/mlia/backend/executor/config.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/mlia/backend/executor/config.py b/src/mlia/backend/executor/config.py
new file mode 100644
index 0000000..dca53da
--- /dev/null
+++ b/src/mlia/backend/executor/config.py
@@ -0,0 +1,68 @@
+# SPDX-FileCopyrightText: Copyright 2022, Arm Limited and/or its affiliates.
+# SPDX-License-Identifier: Apache-2.0
+"""Contain definition of backend configuration."""
+from __future__ import annotations
+
+from pathlib import Path
+from typing import Dict
+from typing import List
+from typing import TypedDict
+from typing import Union
+
+
+class UserParamConfig(TypedDict, total=False):
+ """User parameter configuration."""
+
+ name: str | None
+ default_value: str
+ values: list[str]
+ description: str
+ alias: str
+
+
+UserParamsConfig = Dict[str, List[UserParamConfig]]
+
+
+class ExecutionConfig(TypedDict, total=False):
+ """Execution configuration."""
+
+ commands: dict[str, list[str]]
+ user_params: UserParamsConfig
+ variables: dict[str, str]
+
+
+class NamedExecutionConfig(ExecutionConfig):
+ """Execution configuration with name."""
+
+ name: str
+
+
+class BaseBackendConfig(ExecutionConfig, total=False):
+ """Base backend configuration."""
+
+ name: str
+ description: str
+ config_location: Path
+ annotations: dict[str, str | list[str]]
+
+
+class ApplicationConfig(BaseBackendConfig, total=False):
+ """Application configuration."""
+
+ supported_systems: list[str]
+
+
+class ExtendedApplicationConfig(BaseBackendConfig, total=False):
+ """Extended application configuration."""
+
+ supported_systems: list[NamedExecutionConfig]
+
+
+class SystemConfig(BaseBackendConfig, total=False):
+ """System configuration."""
+
+ reporting: dict[str, dict]
+
+
+BackendItemConfig = Union[ApplicationConfig, SystemConfig]
+BackendConfig = Union[List[ExtendedApplicationConfig], List[SystemConfig]]