summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/analyze-archive.py53
-rwxr-xr-xbin/analyze-kconfig.py11
-rw-r--r--lib/cli.py28
3 files changed, 39 insertions, 53 deletions
diff --git a/bin/analyze-archive.py b/bin/analyze-archive.py
index fef8005..f48afd8 100755
--- a/bin/analyze-archive.py
+++ b/bin/analyze-archive.py
@@ -357,7 +357,6 @@ if __name__ == "__main__":
pta = None
energymodel_export_file = None
trace_export_dir = None
- xv_method = None
xv_count = 10
parser = argparse.ArgumentParser(
@@ -518,10 +517,6 @@ if __name__ == "__main__":
show_models = args.show_models
show_quality = args.show_quality
- if args.cross_validate:
- xv_method, xv_count = args.cross_validate.split(":")
- xv_count = int(xv_count)
-
if args.filter_param:
args.filter_param = list(
map(lambda x: x.split("="), args.filter_param.split(","))
@@ -641,50 +636,18 @@ if __name__ == "__main__":
)
constructor_duration = time.time() - constructor_start
- if xv_method:
+ if args.info:
+ dfatool.cli.print_info_by_name(model, by_name)
+
+ if args.cross_validate:
+ xv_method, xv_count = args.cross_validate.split(":")
+ xv_count = int(xv_count)
xv = CrossValidator(
PTAModel, by_name, parameters, arg_count, force_tree=args.force_tree
)
xv.parameter_aware = args.parameter_aware_cross_validation
-
- if args.info:
- for state in model.states:
- print("{}:".format(state))
- print(f""" Number of Measurements: {len(by_name[state]["power"])}""")
- for param in model.parameters:
- print(
- " Parameter {} ∈ {}".format(
- param,
- model.attr_by_name[state][
- "power"
- ].stats.distinct_values_by_param_name[param],
- )
- )
- for transition in model.transitions:
- print("{}:".format(transition))
- print(
- f""" Number of Measurements: {len(by_name[transition]["duration"])}"""
- )
- for param in model.parameters:
- print(
- " Parameter {} ∈ {}".format(
- param,
- model.attr_by_name[transition][
- "duration"
- ].stats.distinct_values_by_param_name[param],
- )
- )
- for i in range(model._num_args[transition]):
- print(
- " Argument {} ∈ {}".format(
- i,
- model.attr_by_name[transition][
- "duration"
- ].stats.distinct_values_by_param_index[
- len(model.parameters) + i
- ],
- )
- )
+ else:
+ xv_method = None
if args.plot_unparam:
for kv in args.plot_unparam.split(";"):
diff --git a/bin/analyze-kconfig.py b/bin/analyze-kconfig.py
index a2deaf7..e8b946a 100755
--- a/bin/analyze-kconfig.py
+++ b/bin/analyze-kconfig.py
@@ -199,6 +199,9 @@ def main():
)
constructor_duration = time.time() - constructor_start
+ if args.info:
+ dfatool.cli.print_info_by_name(model, by_name)
+
if args.cross_validate:
xv_method, xv_count = args.cross_validate.split(":")
xv_count = int(xv_count)
@@ -292,14 +295,6 @@ def main():
smape = error["smape"]
print(f"{name:15s} {attribute:20s} ± {mae:10.2} / {smape:5.1f}%")
- if args.info:
- for name in model.names:
- print(f"{name}:")
- print(f""" Number of Measurements: {len(by_name[name]["param"])}""")
- for i, param in enumerate(model.parameters):
- param_values = model.distinct_param_values_by_name[name][i]
- print(f" Parameter {param} ∈ {param_values}")
-
if args.show_model_size:
dfatool.cli.print_model_size(model)
diff --git a/lib/cli.py b/lib/cli.py
index 7995fc7..1ee1f33 100644
--- a/lib/cli.py
+++ b/lib/cli.py
@@ -29,6 +29,34 @@ def print_static(model, static_model, name, attribute):
)
+def print_info_by_name(model, by_name):
+ for name in model.names:
+ attr = list(model.attributes(name))[0]
+ print(f"{name}:")
+ print(f""" Number of Measurements: {len(by_name[name][attr])}""")
+ for param in model.parameters:
+ print(
+ " Parameter {} ∈ {}".format(
+ param,
+ model.attr_by_name[name][attr].stats.distinct_values_by_param_name[
+ param
+ ],
+ )
+ )
+ if name in model._num_args:
+ for i in range(model._num_args[name]):
+ print(
+ " Argument {} ∈ {}".format(
+ i,
+ model.attr_by_name[name][
+ attr
+ ].stats.distinct_values_by_param_index[
+ len(model.parameters) + i
+ ],
+ )
+ )
+
+
def print_analyticinfo(prefix, info):
empty = ""
print(f"{prefix}: {info.model_function}")