From 675a0f8538ee50542076818e2769c1d762fb42b5 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Tue, 14 Jun 2022 21:19:12 +0200 Subject: analyze-kconfig: add param-shift support --- bin/analyze-kconfig.py | 4 ++++ lib/utils.py | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/bin/analyze-kconfig.py b/bin/analyze-kconfig.py index 04b8c7b..2223a4d 100755 --- a/bin/analyze-kconfig.py +++ b/bin/analyze-kconfig.py @@ -187,6 +187,10 @@ def main(): if args.boolean_parameters: dfatool.utils.observations_enum_to_bool(observations, kconfig=True) + if args.param_shift: + param_shift = dfatool.cli.parse_param_shift(args.param_shift) + dfatool.utils.shift_param_in_observations(observations, param_shift) + by_name, parameter_names = dfatool.utils.observations_to_by_name(observations) # Release memory diff --git a/lib/utils.py b/lib/utils.py index a8acb51..ed21f0f 100644 --- a/lib/utils.py +++ b/lib/utils.py @@ -403,6 +403,22 @@ def by_param_to_by_name(by_param: dict) -> dict: return by_name +def shift_param_in_observations(observations, parameter_shift): + for param_name, param_shift_function in parameter_shift: + if param_name == "*": + for observation in observations: + for param_name in observation["param"].keys(): + observation["param"][param_name] = param_shift_function( + observation["param"][param_name] + ) + else: + for observation in observations: + if observation["param"][param_name] is not None: + observation["param"][param_name] = param_shift_function( + observation["param"][param_name] + ) + + def shift_param_in_aggregate(aggregate, parameters, parameter_shift): """ Remove entries which do not have certain parameter values from `aggregate`. -- cgit v1.2.3