diff --git a/scripts/code.py b/scripts/code.py index 710eeb63..09aa9116 100755 --- a/scripts/code.py +++ b/scripts/code.py @@ -373,7 +373,15 @@ def table(Result, results, diff_results=None, *, diff_table = { ','.join(str(getattr(r, k) or '') for k in by): r for r in diff_results or []} - names = list(table.keys() | diff_table.keys()) + names = [name + for name in table.keys() | diff_table.keys() + if diff_results is None + or all_ + or any( + types[k].ratio( + getattr(table.get(name), k, None), + getattr(diff_table.get(name), k, None)) + for k in fields)] # sort again, now with diff info, note that python's sort is stable names.sort() @@ -474,12 +482,6 @@ def table(Result, results, diff_results=None, *, diff_r = None else: diff_r = diff_table.get(name) - if not all_ and not any( - types[k].ratio( - getattr(r, k, None), - getattr(diff_r, k, None)) - for k in fields): - continue lines.append(table_entry(name, r, diff_r)) # total diff --git a/scripts/cov.py b/scripts/cov.py index 212f0889..0b83842c 100755 --- a/scripts/cov.py +++ b/scripts/cov.py @@ -361,7 +361,15 @@ def table(Result, results, diff_results=None, *, diff_table = { ','.join(str(getattr(r, k) or '') for k in by): r for r in diff_results or []} - names = list(table.keys() | diff_table.keys()) + names = [name + for name in table.keys() | diff_table.keys() + if diff_results is None + or all_ + or any( + types[k].ratio( + getattr(table.get(name), k, None), + getattr(diff_table.get(name), k, None)) + for k in fields)] # sort again, now with diff info, note that python's sort is stable names.sort() @@ -462,12 +470,6 @@ def table(Result, results, diff_results=None, *, diff_r = None else: diff_r = diff_table.get(name) - if not all_ and not any( - types[k].ratio( - getattr(r, k, None), - getattr(diff_r, k, None)) - for k in fields): - continue lines.append(table_entry(name, r, diff_r)) # total diff --git a/scripts/data.py b/scripts/data.py index 7cd488e4..ccb1dfae 100755 --- a/scripts/data.py +++ b/scripts/data.py @@ -373,7 +373,15 @@ def table(Result, results, diff_results=None, *, diff_table = { ','.join(str(getattr(r, k) or '') for k in by): r for r in diff_results or []} - names = list(table.keys() | diff_table.keys()) + names = [name + for name in table.keys() | diff_table.keys() + if diff_results is None + or all_ + or any( + types[k].ratio( + getattr(table.get(name), k, None), + getattr(diff_table.get(name), k, None)) + for k in fields)] # sort again, now with diff info, note that python's sort is stable names.sort() @@ -474,12 +482,6 @@ def table(Result, results, diff_results=None, *, diff_r = None else: diff_r = diff_table.get(name) - if not all_ and not any( - types[k].ratio( - getattr(r, k, None), - getattr(diff_r, k, None)) - for k in fields): - continue lines.append(table_entry(name, r, diff_r)) # total diff --git a/scripts/perf.py b/scripts/perf.py index 7957c599..a23272d4 100755 --- a/scripts/perf.py +++ b/scripts/perf.py @@ -698,7 +698,15 @@ def table(Result, results, diff_results=None, *, diff_table = { ','.join(str(getattr(r, k) or '') for k in by): r for r in diff_results or []} - names = list(table.keys() | diff_table.keys()) + names = [name + for name in table.keys() | diff_table.keys() + if diff_results is None + or all_ + or any( + types[k].ratio( + getattr(table.get(name), k, None), + getattr(diff_table.get(name), k, None)) + for k in fields)] # sort again, now with diff info, note that python's sort is stable names.sort() @@ -799,12 +807,6 @@ def table(Result, results, diff_results=None, *, diff_r = None else: diff_r = diff_table.get(name) - if not all_ and not any( - types[k].ratio( - getattr(r, k, None), - getattr(diff_r, k, None)) - for k in fields): - continue lines.append(table_entry(name, r, diff_r)) # total diff --git a/scripts/perfbd.py b/scripts/perfbd.py index e8c134da..e6a87fea 100755 --- a/scripts/perfbd.py +++ b/scripts/perfbd.py @@ -662,7 +662,15 @@ def table(Result, results, diff_results=None, *, diff_table = { ','.join(str(getattr(r, k) or '') for k in by): r for r in diff_results or []} - names = list(table.keys() | diff_table.keys()) + names = [name + for name in table.keys() | diff_table.keys() + if diff_results is None + or all_ + or any( + types[k].ratio( + getattr(table.get(name), k, None), + getattr(diff_table.get(name), k, None)) + for k in fields)] # sort again, now with diff info, note that python's sort is stable names.sort() @@ -763,12 +771,6 @@ def table(Result, results, diff_results=None, *, diff_r = None else: diff_r = diff_table.get(name) - if not all_ and not any( - types[k].ratio( - getattr(r, k, None), - getattr(diff_r, k, None)) - for k in fields): - continue lines.append(table_entry(name, r, diff_r)) # total diff --git a/scripts/stack.py b/scripts/stack.py index d0d0b232..8a2a41d5 100755 --- a/scripts/stack.py +++ b/scripts/stack.py @@ -344,7 +344,15 @@ def table(Result, results, diff_results=None, *, diff_table = { ','.join(str(getattr(r, k) or '') for k in by): r for r in diff_results or []} - names = list(table.keys() | diff_table.keys()) + names = [name + for name in table.keys() | diff_table.keys() + if diff_results is None + or all_ + or any( + types[k].ratio( + getattr(table.get(name), k, None), + getattr(diff_table.get(name), k, None)) + for k in fields)] # sort again, now with diff info, note that python's sort is stable names.sort() @@ -445,12 +453,6 @@ def table(Result, results, diff_results=None, *, diff_r = None else: diff_r = diff_table.get(name) - if not all_ and not any( - types[k].ratio( - getattr(r, k, None), - getattr(diff_r, k, None)) - for k in fields): - continue lines.append(table_entry(name, r, diff_r)) # total diff --git a/scripts/structs.py b/scripts/structs.py index 6f79a547..eec1f49f 100755 --- a/scripts/structs.py +++ b/scripts/structs.py @@ -322,7 +322,15 @@ def table(Result, results, diff_results=None, *, diff_table = { ','.join(str(getattr(r, k) or '') for k in by): r for r in diff_results or []} - names = list(table.keys() | diff_table.keys()) + names = [name + for name in table.keys() | diff_table.keys() + if diff_results is None + or all_ + or any( + types[k].ratio( + getattr(table.get(name), k, None), + getattr(diff_table.get(name), k, None)) + for k in fields)] # sort again, now with diff info, note that python's sort is stable names.sort() @@ -423,12 +431,6 @@ def table(Result, results, diff_results=None, *, diff_r = None else: diff_r = diff_table.get(name) - if not all_ and not any( - types[k].ratio( - getattr(r, k, None), - getattr(diff_r, k, None)) - for k in fields): - continue lines.append(table_entry(name, r, diff_r)) # total diff --git a/scripts/summary.py b/scripts/summary.py index 17b54d79..4e70fe36 100755 --- a/scripts/summary.py +++ b/scripts/summary.py @@ -453,7 +453,15 @@ def table(Result, results, diff_results=None, *, diff_table = { ','.join(str(getattr(r, k) or '') for k in by): r for r in diff_results or []} - names = list(table.keys() | diff_table.keys()) + names = [name + for name in table.keys() | diff_table.keys() + if diff_results is None + or all_ + or any( + types[k].ratio( + getattr(table.get(name), k, None), + getattr(diff_table.get(name), k, None)) + for k in fields)] # sort again, now with diff info, note that python's sort is stable names.sort() @@ -554,12 +562,6 @@ def table(Result, results, diff_results=None, *, diff_r = None else: diff_r = diff_table.get(name) - if not all_ and not any( - types[k].ratio( - getattr(r, k, None), - getattr(diff_r, k, None)) - for k in fields): - continue lines.append(table_entry(name, r, diff_r)) # total