From 5bba5141f5abbbf194902dcebed417685ba7ca43 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Tue, 8 Nov 2022 15:59:11 +0100 Subject: ... ajust IGNORE_{STRING,NUMERIC} for compact observation storage layout --- bin/analyze-kconfig.py | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) (limited to 'bin') diff --git a/bin/analyze-kconfig.py b/bin/analyze-kconfig.py index 7a6d2fb..a89e7e8 100755 --- a/bin/analyze-kconfig.py +++ b/bin/analyze-kconfig.py @@ -272,13 +272,27 @@ def main(): int(os.getenv("DFATOOL_KCONF_IGNORE_NUMERIC", 0)) ): attributes = KConfigAttributes(args.kconfig_path, None) - for observation in observations: - to_remove = list() - for param in observation["param"].keys(): - if param not in attributes.symbol_names: - to_remove.append(param) - for param in to_remove: - observation["param"].pop(param) + if type(observations) is dict: + ignore_index = dict() + new_param_names = list() + for i, param in enumerate(observations["param_names"]): + if param in attributes.symbol_names: + new_param_names.append(param) + else: + ignore_index[i] = True + observations["param_names"] = new_param_names + for data in observations["by_name"].values(): + for i in range(len(data["param"])): + for j in sorted(ignore_index.keys(), reverse=True): + data["param"][i].pop(j) + else: + for observation in observations: + to_remove = list() + for param in observation["param"].keys(): + if param not in attributes.symbol_names: + to_remove.append(param) + for param in to_remove: + observation["param"].pop(param) if args.boolean_parameters: if type(observations) is list: -- cgit v1.2.3