From 613fa0f27a0974f1f22d6020439c58b746d4c773 Mon Sep 17 00:00:00 2001 From: Christopher Haster Date: Sat, 12 Apr 2025 00:47:40 -0500 Subject: [PATCH] scripts: Reverted to -p/--percent not providing a path So now the result scripts always require -d/--diff to diff: - before: ./scripts/csv.py a.csv -pb.csv - after: ./scripts/csv.py a.csv -db.csv -p For a couple reasons: - Easier to toggle - Simpler internally to only have one diff path flag - The previous behavior was a bit unintuitive --- scripts/code.py | 24 +++++++++++------------- scripts/cov.py | 24 +++++++++++------------- scripts/csv.py | 24 +++++++++++------------- scripts/ctx.py | 24 +++++++++++------------- scripts/data.py | 24 +++++++++++------------- scripts/perf.py | 24 +++++++++++------------- scripts/perfbd.py | 24 +++++++++++------------- scripts/stack.py | 24 +++++++++++------------- scripts/structs.py | 24 +++++++++++------------- 9 files changed, 99 insertions(+), 117 deletions(-) diff --git a/scripts/code.py b/scripts/code.py index 65aa4372..d57cc398 100755 --- a/scripts/code.py +++ b/scripts/code.py @@ -594,8 +594,7 @@ def table(Result, results, diff_results=None, *, labels=None, depth=1, hot=None, - diff=None, - percent=None, + percent=False, all=False, compare=None, no_header=False, @@ -646,10 +645,10 @@ def table(Result, results, diff_results=None, *, ' (%d added, %d removed)' % ( sum(1 for n in table if n not in diff_table), sum(1 for n in diff_table if n not in table)) - if diff else '') + if diff_results is not None and not percent else '') if not small_header and not small_table and not summary else ''] - if not diff: + if diff_results is None or percent: for k in fields: header.append(k) else: @@ -673,8 +672,7 @@ def table(Result, results, diff_results=None, *, # normal entry? if ((compare is None or r == compare_r) - and not percent - and not diff): + and diff_results is None): for k in fields: entry.append( (getattr(r, k).table(), @@ -682,7 +680,7 @@ def table(Result, results, diff_results=None, *, if getattr(r, k, None) is not None else types[k].none) # compare entry? - elif not percent and not diff: + elif diff_results is None: for k in fields: entry.append( (getattr(r, k).table() @@ -695,7 +693,7 @@ def table(Result, results, diff_results=None, *, getattr(r, k, None), getattr(compare_r, k, None))))) # percent entry? - elif not diff: + elif percent: for k in fields: entry.append( (getattr(r, k).table() @@ -786,7 +784,7 @@ def table(Result, results, diff_results=None, *, getattr(table_.get(n), k, None), getattr(diff_table_.get(n), k, None)) for k in fields)) - if diff or percent + if diff_results is not None else (), # move compare entry to the top, note this can be # overridden by explicitly sorting by fields @@ -1059,10 +1057,10 @@ def main(obj_paths, *, # find previous results? diff_results = None - if args.get('diff') or args.get('percent'): + if args.get('diff'): try: diff_results = read_csv( - args.get('diff') or args.get('percent'), + args.get('diff'), CodeResult, **args) except FileNotFoundError: @@ -1127,8 +1125,8 @@ if __name__ == "__main__": help="Specify CSV/JSON file to diff against.") parser.add_argument( '-p', '--percent', - help="Specify CSV/JSON file to diff against, but only show " - "percentage change, not a full diff.") + action='store_true', + help="Only show percentage change, not a full diff.") parser.add_argument( '-c', '--compare', type=lambda x: tuple(v.strip() for v in x.split(',')), diff --git a/scripts/cov.py b/scripts/cov.py index 87aefa0f..1df42ce7 100755 --- a/scripts/cov.py +++ b/scripts/cov.py @@ -449,8 +449,7 @@ def table(Result, results, diff_results=None, *, labels=None, depth=1, hot=None, - diff=None, - percent=None, + percent=False, all=False, compare=None, no_header=False, @@ -501,10 +500,10 @@ def table(Result, results, diff_results=None, *, ' (%d added, %d removed)' % ( sum(1 for n in table if n not in diff_table), sum(1 for n in diff_table if n not in table)) - if diff else '') + if diff_results is not None and not percent else '') if not small_header and not small_table and not summary else ''] - if not diff: + if diff_results is None or percent: for k in fields: header.append(k) else: @@ -528,8 +527,7 @@ def table(Result, results, diff_results=None, *, # normal entry? if ((compare is None or r == compare_r) - and not percent - and not diff): + and diff_results is None): for k in fields: entry.append( (getattr(r, k).table(), @@ -537,7 +535,7 @@ def table(Result, results, diff_results=None, *, if getattr(r, k, None) is not None else types[k].none) # compare entry? - elif not percent and not diff: + elif diff_results is None: for k in fields: entry.append( (getattr(r, k).table() @@ -550,7 +548,7 @@ def table(Result, results, diff_results=None, *, getattr(r, k, None), getattr(compare_r, k, None))))) # percent entry? - elif not diff: + elif percent: for k in fields: entry.append( (getattr(r, k).table() @@ -641,7 +639,7 @@ def table(Result, results, diff_results=None, *, getattr(table_.get(n), k, None), getattr(diff_table_.get(n), k, None)) for k in fields)) - if diff or percent + if diff_results is not None else (), # move compare entry to the top, note this can be # overridden by explicitly sorting by fields @@ -1011,10 +1009,10 @@ def main(gcda_paths, *, # find previous results? diff_results = None - if args.get('diff') or args.get('percent'): + if args.get('diff'): try: diff_results = read_csv( - args.get('diff') or args.get('percent'), + args.get('diff'), CovResult, **args) except FileNotFoundError: @@ -1092,8 +1090,8 @@ if __name__ == "__main__": help="Specify CSV/JSON file to diff against.") parser.add_argument( '-p', '--percent', - help="Specify CSV/JSON file to diff against, but only show " - "percentage change, not a full diff.") + action='store_true', + help="Only show percentage change, not a full diff.") parser.add_argument( '-c', '--compare', type=lambda x: tuple(v.strip() for v in x.split(',')), diff --git a/scripts/csv.py b/scripts/csv.py index 16edb7cc..ac81e57d 100755 --- a/scripts/csv.py +++ b/scripts/csv.py @@ -1738,8 +1738,7 @@ def table(Result, results, diff_results=None, *, labels=None, depth=1, hot=None, - diff=None, - percent=None, + percent=False, all=False, compare=None, no_header=False, @@ -1790,10 +1789,10 @@ def table(Result, results, diff_results=None, *, ' (%d added, %d removed)' % ( sum(1 for n in table if n not in diff_table), sum(1 for n in diff_table if n not in table)) - if diff else '') + if diff_results is not None and not percent else '') if not small_header and not small_table and not summary else ''] - if not diff: + if diff_results is None or percent: for k in fields: header.append(k) else: @@ -1817,8 +1816,7 @@ def table(Result, results, diff_results=None, *, # normal entry? if ((compare is None or r == compare_r) - and not percent - and not diff): + and diff_results is None): for k in fields: entry.append( (getattr(r, k).table(), @@ -1826,7 +1824,7 @@ def table(Result, results, diff_results=None, *, if getattr(r, k, None) is not None else types[k].none) # compare entry? - elif not percent and not diff: + elif diff_results is None: for k in fields: entry.append( (getattr(r, k).table() @@ -1839,7 +1837,7 @@ def table(Result, results, diff_results=None, *, getattr(r, k, None), getattr(compare_r, k, None))))) # percent entry? - elif not diff: + elif percent: for k in fields: entry.append( (getattr(r, k).table() @@ -1930,7 +1928,7 @@ def table(Result, results, diff_results=None, *, getattr(table_.get(n), k, None), getattr(diff_table_.get(n), k, None)) for k in fields)) - if diff or percent + if diff_results is not None else (), # move compare entry to the top, note this can be # overridden by explicitly sorting by fields @@ -2325,7 +2323,7 @@ def main(csv_paths, *, # find previous results? diff_results = None - if args.get('diff') or args.get('percent'): + if args.get('diff'): # note! don't use read_csv here # # it's tempting now that we have a Result type, but we want to @@ -2333,7 +2331,7 @@ def main(csv_paths, *, # same order try: _, diff_results = collect_csv( - [args.get('diff') or args.get('percent')], + [args.get('diff')], depth=depth, children=children, notes=notes, @@ -2421,8 +2419,8 @@ if __name__ == "__main__": help="Specify CSV/JSON file to diff against.") parser.add_argument( '-p', '--percent', - help="Specify CSV/JSON file to diff against, but only show " - "percentage change, not a full diff.") + action='store_true', + help="Only show percentage change, not a full diff.") parser.add_argument( '-c', '--compare', type=lambda x: tuple(v.strip() for v in x.split(',')), diff --git a/scripts/ctx.py b/scripts/ctx.py index 342ddf04..299c5c70 100755 --- a/scripts/ctx.py +++ b/scripts/ctx.py @@ -854,8 +854,7 @@ def table(Result, results, diff_results=None, *, labels=None, depth=1, hot=None, - diff=None, - percent=None, + percent=False, all=False, compare=None, no_header=False, @@ -906,10 +905,10 @@ def table(Result, results, diff_results=None, *, ' (%d added, %d removed)' % ( sum(1 for n in table if n not in diff_table), sum(1 for n in diff_table if n not in table)) - if diff else '') + if diff_results is not None and not percent else '') if not small_header and not small_table and not summary else ''] - if not diff: + if diff_results is None or percent: for k in fields: header.append(k) else: @@ -933,8 +932,7 @@ def table(Result, results, diff_results=None, *, # normal entry? if ((compare is None or r == compare_r) - and not percent - and not diff): + and diff_results is None): for k in fields: entry.append( (getattr(r, k).table(), @@ -942,7 +940,7 @@ def table(Result, results, diff_results=None, *, if getattr(r, k, None) is not None else types[k].none) # compare entry? - elif not percent and not diff: + elif diff_results is None: for k in fields: entry.append( (getattr(r, k).table() @@ -955,7 +953,7 @@ def table(Result, results, diff_results=None, *, getattr(r, k, None), getattr(compare_r, k, None))))) # percent entry? - elif not diff: + elif percent: for k in fields: entry.append( (getattr(r, k).table() @@ -1046,7 +1044,7 @@ def table(Result, results, diff_results=None, *, getattr(table_.get(n), k, None), getattr(diff_table_.get(n), k, None)) for k in fields)) - if diff or percent + if diff_results is not None else (), # move compare entry to the top, note this can be # overridden by explicitly sorting by fields @@ -1343,10 +1341,10 @@ def main(obj_paths, *, # find previous results? diff_results = None - if args.get('diff') or args.get('percent'): + if args.get('diff'): try: diff_results = read_csv( - args.get('diff') or args.get('percent'), + args.get('diff'), CtxResult, depth=depth, **args) @@ -1423,8 +1421,8 @@ if __name__ == "__main__": help="Specify CSV/JSON file to diff against.") parser.add_argument( '-p', '--percent', - help="Specify CSV/JSON file to diff against, but only show " - "percentage change, not a full diff.") + action='store_true', + help="Only show percentage change, not a full diff.") parser.add_argument( '-c', '--compare', type=lambda x: tuple(v.strip() for v in x.split(',')), diff --git a/scripts/data.py b/scripts/data.py index 362695ab..8d9d52d2 100755 --- a/scripts/data.py +++ b/scripts/data.py @@ -594,8 +594,7 @@ def table(Result, results, diff_results=None, *, labels=None, depth=1, hot=None, - diff=None, - percent=None, + percent=False, all=False, compare=None, no_header=False, @@ -646,10 +645,10 @@ def table(Result, results, diff_results=None, *, ' (%d added, %d removed)' % ( sum(1 for n in table if n not in diff_table), sum(1 for n in diff_table if n not in table)) - if diff else '') + if diff_results is not None and not percent else '') if not small_header and not small_table and not summary else ''] - if not diff: + if diff_results is None or percent: for k in fields: header.append(k) else: @@ -673,8 +672,7 @@ def table(Result, results, diff_results=None, *, # normal entry? if ((compare is None or r == compare_r) - and not percent - and not diff): + and diff_results is None): for k in fields: entry.append( (getattr(r, k).table(), @@ -682,7 +680,7 @@ def table(Result, results, diff_results=None, *, if getattr(r, k, None) is not None else types[k].none) # compare entry? - elif not percent and not diff: + elif diff_results is None: for k in fields: entry.append( (getattr(r, k).table() @@ -695,7 +693,7 @@ def table(Result, results, diff_results=None, *, getattr(r, k, None), getattr(compare_r, k, None))))) # percent entry? - elif not diff: + elif percent: for k in fields: entry.append( (getattr(r, k).table() @@ -786,7 +784,7 @@ def table(Result, results, diff_results=None, *, getattr(table_.get(n), k, None), getattr(diff_table_.get(n), k, None)) for k in fields)) - if diff or percent + if diff_results is not None else (), # move compare entry to the top, note this can be # overridden by explicitly sorting by fields @@ -1059,10 +1057,10 @@ def main(obj_paths, *, # find previous results? diff_results = None - if args.get('diff') or args.get('percent'): + if args.get('diff'): try: diff_results = read_csv( - args.get('diff') or args.get('percent'), + args.get('diff'), DataResult, **args) except FileNotFoundError: @@ -1127,8 +1125,8 @@ if __name__ == "__main__": help="Specify CSV/JSON file to diff against.") parser.add_argument( '-p', '--percent', - help="Specify CSV/JSON file to diff against, but only show " - "percentage change, not a full diff.") + action='store_true', + help="Only show percentage change, not a full diff.") parser.add_argument( '-c', '--compare', type=lambda x: tuple(v.strip() for v in x.split(',')), diff --git a/scripts/perf.py b/scripts/perf.py index 44a1c20e..caafe3bd 100755 --- a/scripts/perf.py +++ b/scripts/perf.py @@ -955,8 +955,7 @@ def table(Result, results, diff_results=None, *, labels=None, depth=1, hot=None, - diff=None, - percent=None, + percent=False, all=False, compare=None, no_header=False, @@ -1007,10 +1006,10 @@ def table(Result, results, diff_results=None, *, ' (%d added, %d removed)' % ( sum(1 for n in table if n not in diff_table), sum(1 for n in diff_table if n not in table)) - if diff else '') + if diff_results is not None and not percent else '') if not small_header and not small_table and not summary else ''] - if not diff: + if diff_results is None or percent: for k in fields: header.append(k) else: @@ -1034,8 +1033,7 @@ def table(Result, results, diff_results=None, *, # normal entry? if ((compare is None or r == compare_r) - and not percent - and not diff): + and diff_results is None): for k in fields: entry.append( (getattr(r, k).table(), @@ -1043,7 +1041,7 @@ def table(Result, results, diff_results=None, *, if getattr(r, k, None) is not None else types[k].none) # compare entry? - elif not percent and not diff: + elif diff_results is None: for k in fields: entry.append( (getattr(r, k).table() @@ -1056,7 +1054,7 @@ def table(Result, results, diff_results=None, *, getattr(r, k, None), getattr(compare_r, k, None))))) # percent entry? - elif not diff: + elif percent: for k in fields: entry.append( (getattr(r, k).table() @@ -1147,7 +1145,7 @@ def table(Result, results, diff_results=None, *, getattr(table_.get(n), k, None), getattr(diff_table_.get(n), k, None)) for k in fields)) - if diff or percent + if diff_results is not None else (), # move compare entry to the top, note this can be # overridden by explicitly sorting by fields @@ -1563,10 +1561,10 @@ def main_(perf_paths, *, # find previous results? diff_results = None - if args.get('diff') or args.get('percent'): + if args.get('diff'): try: diff_results = read_csv( - args.get('diff') or args.get('percent'), + args.get('diff'), PerfResult, depth=depth, **args) @@ -1669,8 +1667,8 @@ if __name__ == "__main__": help="Specify CSV/JSON file to diff against.") parser.add_argument( '-p', '--percent', - help="Specify CSV/JSON file to diff against, but only show " - "percentage change, not a full diff.") + action='store_true', + help="Only show percentage change, not a full diff.") parser.add_argument( '-c', '--compare', type=lambda x: tuple(v.strip() for v in x.split(',')), diff --git a/scripts/perfbd.py b/scripts/perfbd.py index 258b2bd3..f09cfc1d 100755 --- a/scripts/perfbd.py +++ b/scripts/perfbd.py @@ -929,8 +929,7 @@ def table(Result, results, diff_results=None, *, labels=None, depth=1, hot=None, - diff=None, - percent=None, + percent=False, all=False, compare=None, no_header=False, @@ -981,10 +980,10 @@ def table(Result, results, diff_results=None, *, ' (%d added, %d removed)' % ( sum(1 for n in table if n not in diff_table), sum(1 for n in diff_table if n not in table)) - if diff else '') + if diff_results is not None and not percent else '') if not small_header and not small_table and not summary else ''] - if not diff: + if diff_results is None or percent: for k in fields: header.append(k) else: @@ -1008,8 +1007,7 @@ def table(Result, results, diff_results=None, *, # normal entry? if ((compare is None or r == compare_r) - and not percent - and not diff): + and diff_results is None): for k in fields: entry.append( (getattr(r, k).table(), @@ -1017,7 +1015,7 @@ def table(Result, results, diff_results=None, *, if getattr(r, k, None) is not None else types[k].none) # compare entry? - elif not percent and not diff: + elif diff_results is None: for k in fields: entry.append( (getattr(r, k).table() @@ -1030,7 +1028,7 @@ def table(Result, results, diff_results=None, *, getattr(r, k, None), getattr(compare_r, k, None))))) # percent entry? - elif not diff: + elif percent: for k in fields: entry.append( (getattr(r, k).table() @@ -1121,7 +1119,7 @@ def table(Result, results, diff_results=None, *, getattr(table_.get(n), k, None), getattr(diff_table_.get(n), k, None)) for k in fields)) - if diff or percent + if diff_results is not None else (), # move compare entry to the top, note this can be # overridden by explicitly sorting by fields @@ -1559,10 +1557,10 @@ def main_(paths, *, # find previous results? diff_results = None - if args.get('diff') or args.get('percent'): + if args.get('diff'): try: diff_results = read_csv( - args.get('diff') or args.get('percent'), + args.get('diff'), PerfBdResult, depth=depth, **args) @@ -1670,8 +1668,8 @@ if __name__ == "__main__": help="Specify CSV/JSON file to diff against.") parser.add_argument( '-p', '--percent', - help="Specify CSV/JSON file to diff against, but only show " - "percentage change, not a full diff.") + action='store_true', + help="Only show percentage change, not a full diff.") parser.add_argument( '-c', '--compare', type=lambda x: tuple(v.strip() for v in x.split(',')), diff --git a/scripts/stack.py b/scripts/stack.py index afdb0013..1dde7ea2 100755 --- a/scripts/stack.py +++ b/scripts/stack.py @@ -597,8 +597,7 @@ def table(Result, results, diff_results=None, *, labels=None, depth=1, hot=None, - diff=None, - percent=None, + percent=False, all=False, compare=None, no_header=False, @@ -649,10 +648,10 @@ def table(Result, results, diff_results=None, *, ' (%d added, %d removed)' % ( sum(1 for n in table if n not in diff_table), sum(1 for n in diff_table if n not in table)) - if diff else '') + if diff_results is not None and not percent else '') if not small_header and not small_table and not summary else ''] - if not diff: + if diff_results is None or percent: for k in fields: header.append(k) else: @@ -676,8 +675,7 @@ def table(Result, results, diff_results=None, *, # normal entry? if ((compare is None or r == compare_r) - and not percent - and not diff): + and diff_results is None): for k in fields: entry.append( (getattr(r, k).table(), @@ -685,7 +683,7 @@ def table(Result, results, diff_results=None, *, if getattr(r, k, None) is not None else types[k].none) # compare entry? - elif not percent and not diff: + elif diff_results is None: for k in fields: entry.append( (getattr(r, k).table() @@ -698,7 +696,7 @@ def table(Result, results, diff_results=None, *, getattr(r, k, None), getattr(compare_r, k, None))))) # percent entry? - elif not diff: + elif percent: for k in fields: entry.append( (getattr(r, k).table() @@ -789,7 +787,7 @@ def table(Result, results, diff_results=None, *, getattr(table_.get(n), k, None), getattr(diff_table_.get(n), k, None)) for k in fields)) - if diff or percent + if diff_results is not None else (), # move compare entry to the top, note this can be # overridden by explicitly sorting by fields @@ -1083,10 +1081,10 @@ def main(ci_paths, # find previous results? diff_results = None - if args.get('diff') or args.get('percent'): + if args.get('diff'): try: diff_results = read_csv( - args.get('diff') or args.get('percent'), + args.get('diff'), StackResult, depth=depth, **args) @@ -1168,8 +1166,8 @@ if __name__ == "__main__": help="Specify CSV/JSON file to diff against.") parser.add_argument( '-p', '--percent', - help="Specify CSV/JSON file to diff against, but only show " - "percentage change, not a full diff.") + action='store_true', + help="Only show percentage change, not a full diff.") parser.add_argument( '-c', '--compare', type=lambda x: tuple(v.strip() for v in x.split(',')), diff --git a/scripts/structs.py b/scripts/structs.py index 71d71515..7a31ed3f 100755 --- a/scripts/structs.py +++ b/scripts/structs.py @@ -735,8 +735,7 @@ def table(Result, results, diff_results=None, *, labels=None, depth=1, hot=None, - diff=None, - percent=None, + percent=False, all=False, compare=None, no_header=False, @@ -787,10 +786,10 @@ def table(Result, results, diff_results=None, *, ' (%d added, %d removed)' % ( sum(1 for n in table if n not in diff_table), sum(1 for n in diff_table if n not in table)) - if diff else '') + if diff_results is not None and not percent else '') if not small_header and not small_table and not summary else ''] - if not diff: + if diff_results is None or percent: for k in fields: header.append(k) else: @@ -814,8 +813,7 @@ def table(Result, results, diff_results=None, *, # normal entry? if ((compare is None or r == compare_r) - and not percent - and not diff): + and diff_results is None): for k in fields: entry.append( (getattr(r, k).table(), @@ -823,7 +821,7 @@ def table(Result, results, diff_results=None, *, if getattr(r, k, None) is not None else types[k].none) # compare entry? - elif not percent and not diff: + elif diff_results is None: for k in fields: entry.append( (getattr(r, k).table() @@ -836,7 +834,7 @@ def table(Result, results, diff_results=None, *, getattr(r, k, None), getattr(compare_r, k, None))))) # percent entry? - elif not diff: + elif percent: for k in fields: entry.append( (getattr(r, k).table() @@ -927,7 +925,7 @@ def table(Result, results, diff_results=None, *, getattr(table_.get(n), k, None), getattr(diff_table_.get(n), k, None)) for k in fields)) - if diff or percent + if diff_results is not None else (), # move compare entry to the top, note this can be # overridden by explicitly sorting by fields @@ -1224,10 +1222,10 @@ def main(obj_paths, *, # find previous results? diff_results = None - if args.get('diff') or args.get('percent'): + if args.get('diff'): try: diff_results = read_csv( - args.get('diff') or args.get('percent'), + args.get('diff'), StructResult, depth=depth, **args) @@ -1304,8 +1302,8 @@ if __name__ == "__main__": help="Specify CSV/JSON file to diff against.") parser.add_argument( '-p', '--percent', - help="Specify CSV/JSON file to diff against, but only show " - "percentage change, not a full diff.") + action='store_true', + help="Only show percentage change, not a full diff.") parser.add_argument( '-c', '--compare', type=lambda x: tuple(v.strip() for v in x.split(',')),