aboutsummaryrefslogtreecommitdiff
path: root/src/mlia/backend/config.py
diff options
context:
space:
mode:
authorBenjamin Klimczak <benjamin.klimczak@arm.com>2022-06-28 10:29:35 +0100
committerBenjamin Klimczak <benjamin.klimczak@arm.com>2022-07-08 10:57:19 +0100
commitc9b4089b3037b5943565d76242d3016b8776f8d2 (patch)
tree3de24f79dedf0f26f492a7fa1562bf684e13a055 /src/mlia/backend/config.py
parentba2c7fcccf37e8c81946f0776714c64f73191787 (diff)
downloadmlia-c9b4089b3037b5943565d76242d3016b8776f8d2.tar.gz
MLIA-546 Merge AIET into MLIA
Merge the deprecated AIET interface for backend execution into MLIA: - Execute backends directly (without subprocess and the aiet CLI) - Fix issues with the unit tests - Remove src/aiet and tests/aiet - Re-factor code to replace 'aiet' with 'backend' - Adapt and improve unit tests after re-factoring - Remove dependencies that are not needed anymore (click and cloup) Change-Id: I450734c6a3f705ba9afde41862b29e797e511f7c
Diffstat (limited to 'src/mlia/backend/config.py')
-rw-r--r--src/mlia/backend/config.py93
1 files changed, 93 insertions, 0 deletions
diff --git a/src/mlia/backend/config.py b/src/mlia/backend/config.py
new file mode 100644
index 0000000..657adef
--- /dev/null
+++ b/src/mlia/backend/config.py
@@ -0,0 +1,93 @@
+# SPDX-FileCopyrightText: Copyright 2022, Arm Limited and/or its affiliates.
+# SPDX-License-Identifier: Apache-2.0
+"""Contain definition of backend configuration."""
+from pathlib import Path
+from typing import Dict
+from typing import List
+from typing import Literal
+from typing import Optional
+from typing import Tuple
+from typing import TypedDict
+from typing import Union
+
+
+class UserParamConfig(TypedDict, total=False):
+ """User parameter configuration."""
+
+ name: Optional[str]
+ 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
+ build_dir: str
+ variables: Dict[str, str]
+ lock: bool
+
+
+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, Union[str, List[str]]]
+
+
+class ApplicationConfig(BaseBackendConfig, total=False):
+ """Application configuration."""
+
+ supported_systems: List[str]
+ deploy_data: List[Tuple[str, str]]
+
+
+class ExtendedApplicationConfig(BaseBackendConfig, total=False):
+ """Extended application configuration."""
+
+ supported_systems: List[NamedExecutionConfig]
+ deploy_data: List[Tuple[str, str]]
+
+
+class ProtocolConfig(TypedDict, total=False):
+ """Protocol config."""
+
+ protocol: Literal["local", "ssh"]
+
+
+class SSHConfig(ProtocolConfig, total=False):
+ """SSH configuration."""
+
+ username: str
+ password: str
+ hostname: str
+ port: str
+
+
+class LocalProtocolConfig(ProtocolConfig, total=False):
+ """Local protocol config."""
+
+
+class SystemConfig(BaseBackendConfig, total=False):
+ """System configuration."""
+
+ data_transfer: Union[SSHConfig, LocalProtocolConfig]
+ reporting: Dict[str, Dict]
+
+
+BackendItemConfig = Union[ApplicationConfig, SystemConfig]
+BackendConfig = Union[List[ExtendedApplicationConfig], List[SystemConfig]]