1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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]]
|