summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/analyze-archive.py21
-rwxr-xr-xbin/analyze-kconfig.py7
-rwxr-xr-xbin/analyze-log.py7
-rw-r--r--lib/cli.py6
4 files changed, 30 insertions, 11 deletions
diff --git a/bin/analyze-archive.py b/bin/analyze-archive.py
index e79d690..a5c0002 100755
--- a/bin/analyze-archive.py
+++ b/bin/analyze-archive.py
@@ -283,13 +283,6 @@ def main():
show_quality = args.show_quality
- if args.filter_param:
- args.filter_param = list(
- map(dfatool.cli.parse_filter_string, args.filter_param.split(";"))
- )
- else:
- args.filter_param = list()
-
if args.filter_observation:
args.filter_observation = list(
map(lambda x: tuple(x.split(":")), args.filter_observation.split(","))
@@ -388,6 +381,20 @@ def main():
args.ignore_param = args.ignore_param.split(",")
dfatool.utils.ignore_param(by_name, parameters, args.ignore_param)
+ if args.filter_param:
+ print(parameters)
+ args.filter_param = list(
+ map(
+ lambda entry: dfatool.cli.parse_filter_string(
+ entry, parameter_names=parameters
+ ),
+ args.filter_param.split(";"),
+ )
+ )
+ print(args.filter_param)
+ else:
+ args.filter_param = list()
+
dfatool.utils.filter_aggregate_by_param(by_name, parameters, args.filter_param)
dfatool.utils.filter_aggregate_by_observation(by_name, args.filter_observation)
diff --git a/bin/analyze-kconfig.py b/bin/analyze-kconfig.py
index 3187609..5791e57 100755
--- a/bin/analyze-kconfig.py
+++ b/bin/analyze-kconfig.py
@@ -295,7 +295,12 @@ def main():
if args.filter_param:
args.filter_param = list(
- map(dfatool.cli.parse_filter_string, args.filter_param.split(";"))
+ map(
+ lambda entry: dfatool.cli.parse_filter_string(
+ entry, parameter_names=parameters
+ ),
+ args.filter_param.split(";"),
+ )
)
dfatool.utils.filter_aggregate_by_param(
by_name, parameter_names, args.filter_param
diff --git a/bin/analyze-log.py b/bin/analyze-log.py
index 6fa279a..05814e6 100755
--- a/bin/analyze-log.py
+++ b/bin/analyze-log.py
@@ -63,7 +63,12 @@ def main():
if args.filter_param:
args.filter_param = list(
- map(dfatool.cli.parse_filter_string, args.filter_param.split(";"))
+ map(
+ lambda entry: dfatool.cli.parse_filter_string(
+ entry, parameter_names=parameters
+ ),
+ args.filter_param.split(";"),
+ )
)
else:
args.filter_param = list()
diff --git a/lib/cli.py b/lib/cli.py
index 4fd292b..436f32e 100644
--- a/lib/cli.py
+++ b/lib/cli.py
@@ -670,7 +670,7 @@ def add_standard_arguments(parser):
)
-def parse_filter_string(filter_string):
+def parse_filter_string(filter_string, parameter_names=None):
if "<=" in filter_string:
p, v = filter_string.split("<=")
return (p, "≤", v)
@@ -679,7 +679,9 @@ def parse_filter_string(filter_string):
return (p, "≥", v)
if "!=" in filter_string:
p, v = filter_string.split("!=")
- return (p, "≠", v)
+ if parameter_names is None or p in parameter_names:
+ return (p, "≠", v)
+ # otherwise, '!' belongs to the parameter name and is not part of the condition.
for op in ("<", ">", "≤", "≥", "=", "∈", "≠"):
if op in filter_string:
p, v = filter_string.split(op)