diff options
author | Daniel Friesel <daniel.friesel@uos.de> | 2022-06-22 09:28:31 +0200 |
---|---|---|
committer | Daniel Friesel <daniel.friesel@uos.de> | 2022-06-22 09:28:31 +0200 |
commit | d6a496e6fb879d8eb701fc5f90d76915e44bbbf9 (patch) | |
tree | e702f6851449bab3d8f4c15df3c2f36522bf2dd8 | |
parent | f66449ac4f9c88ad3da834d041a25e1da6eb8d8c (diff) |
analyze-kconfig: allow individual parameters to be ignored
-rwxr-xr-x | bin/analyze-kconfig.py | 12 | ||||
-rw-r--r-- | lib/utils.py | 6 |
2 files changed, 18 insertions, 0 deletions
diff --git a/bin/analyze-kconfig.py b/bin/analyze-kconfig.py index 4b84921..a51451a 100755 --- a/bin/analyze-kconfig.py +++ b/bin/analyze-kconfig.py @@ -107,6 +107,12 @@ def main(): "all: all of the above.\n" "tex: print tex/pgfplots-compatible model quality data on stdout.", ) + parser.add_argument( + "--ignore-param", + metavar="<parameter name>[,<parameter name>,...]", + type=str, + help="Ignore listed parameters during model generation", + ) parser.add_argument("kconfig_path", type=str, help="Path to Kconfig file") parser.add_argument( "model", @@ -126,6 +132,9 @@ def main(): if args.export_dref: dref = dict() + if args.ignore_param: + args.ignore_param = args.ignore_param.split(",") + if os.path.isdir(args.model): attributes = KConfigAttributes(args.kconfig_path, args.model) if args.export_dref: @@ -197,6 +206,9 @@ def main(): if args.boolean_parameters: dfatool.utils.observations_enum_to_bool(observations, kconfig=True) + if args.ignore_param: + dfatool.utils.observations_ignore_param(observations, args.ignore_param) + if args.param_shift: param_shift = dfatool.cli.parse_param_shift(args.param_shift) dfatool.utils.shift_param_in_observations(observations, param_shift) diff --git a/lib/utils.py b/lib/utils.py index 12bd7c2..f8ce6ad 100644 --- a/lib/utils.py +++ b/lib/utils.py @@ -302,6 +302,12 @@ def observations_enum_to_bool(observations: list, kconfig=False): binary_keys.add(binary_key) +def observations_ignore_param(observations: list, ignored_parameters: list) -> list: + for observation in observations: + for ignored_parameter in ignored_parameters: + observation["param"].pop(ignored_parameter) + + def observations_to_by_name(observations: list): """ Convert observation list to by_name dictionary for AnalyticModel analysis |