summaryrefslogtreecommitdiff
path: root/build_default.py
diff options
context:
space:
mode:
Diffstat (limited to 'build_default.py')
-rwxr-xr-xbuild_default.py56
1 files changed, 30 insertions, 26 deletions
diff --git a/build_default.py b/build_default.py
index 907bf4d..5adff22 100755
--- a/build_default.py
+++ b/build_default.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# SPDX-FileCopyrightText: Copyright 2021-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
+# SPDX-FileCopyrightText: Copyright 2021-2024 Arm Limited and/or its affiliates <open-source-office@arm.com>
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,25 +25,36 @@ import sys
import threading
from argparse import ArgumentDefaultsHelpFormatter
from argparse import ArgumentParser
-from collections import namedtuple
+from dataclasses import dataclass
from pathlib import Path
+from set_up_default_resources import SetupArgs
from set_up_default_resources import default_npu_config_names
from set_up_default_resources import get_default_npu_config_from_name
from set_up_default_resources import set_up_resources
from set_up_default_resources import valid_npu_config_names
-BuildArgs = namedtuple(
- "BuildArgs",
- [
- "toolchain",
- "download_resources",
- "run_vela_on_models",
- "npu_config_name",
- "make_jobs",
- "make_verbose",
- ],
-)
+
+@dataclass(frozen=True)
+class BuildArgs:
+ """
+ Args used to build the project.
+
+ Attributes:
+ toolchain (str) : Specifies if 'gnu' or 'arm' toolchain needs to be used.
+ download_resources (bool) : Specifies if 'Download resources' step is performed.
+ run_vela_on_models (bool) : Only if `download_resources` is True, specifies whether to
+ run Vela on downloaded models.
+ npu_config_name (str) : Ethos-U NPU configuration name. See "valid_npu_config_names"
+ make_jobs (int) : The number of make jobs to use (`-j` flag).
+ make_verbose (bool) : Runs make with VERBOSE=1.
+ """
+ toolchain: str
+ download_resources: bool
+ run_vela_on_models: bool
+ npu_config_name: str
+ make_jobs: int
+ make_verbose: bool
class PipeLogging(threading.Thread):
@@ -182,16 +193,7 @@ def run(args: BuildArgs):
Parameters:
----------
- args (BuildArgs) : Parsed set of build args expecting:
- - toolchain
- - download_resources
- - run_vela_on_models
- - np_config_name
- toolchain (str) : Specifies if 'gnu' or 'arm' toolchain needs to be used.
- download_resources (bool) : Specifies if 'Download resources' step is performed.
- run_vela_on_models (bool) : Only if `download_resources` is True, specifies if
- run vela on downloaded models.
- npu_config_name(str) : Ethos-U NPU configuration name. See "valid_npu_config_names"
+ args (BuildArgs) : Arguments used to build the project
"""
current_file_dir = Path(__file__).parent.resolve()
@@ -202,11 +204,13 @@ def run(args: BuildArgs):
# 2. Download models if specified
if args.download_resources is True:
logging.info("Downloading resources.")
- env_path = set_up_resources(
+ setup_args = SetupArgs(
run_vela_on_models=args.run_vela_on_models,
- additional_npu_config_names=(args.npu_config_name,),
- additional_requirements_file=current_file_dir / "scripts" / "py" / "requirements.txt"
+ additional_npu_config_names=[args.npu_config_name],
+ additional_requirements_file=current_file_dir / "scripts" / "py" / "requirements.txt",
+ use_case_resources_file=current_file_dir / "scripts" / "py" / "use_case_resources.json",
)
+ env_path = set_up_resources(setup_args)
# 3. Build default configuration
logging.info("Building default configuration.")