scripts: csv.py: Allowed custom o/n/d labels with -H/--hlabel
So now you can override the old/new/delta names directly: -Hocode=before => before ncode dcode Note the existing behavior of prefixing a common label is still preserved: -Hcode=before => obefore nbefore dbefore
This commit is contained in:
+7
-7
@@ -661,7 +661,7 @@ def table(Result, results, diff_results=None, *,
|
|||||||
# header
|
# header
|
||||||
if not no_header:
|
if not no_header:
|
||||||
header = ['%s%s' % (
|
header = ['%s%s' % (
|
||||||
','.join((hlabel(k) if hlabel is not None else k)
|
','.join((hlabel('',k) if hlabel is not None else k)
|
||||||
for k in by if hidden is None or k not in hidden),
|
for k in by if hidden is None or k not in hidden),
|
||||||
' (%d added, %d removed)' % (
|
' (%d added, %d removed)' % (
|
||||||
sum(1 for n in table if n not in diff_table),
|
sum(1 for n in table if n not in diff_table),
|
||||||
@@ -673,18 +673,18 @@ def table(Result, results, diff_results=None, *,
|
|||||||
if not small_header else '']
|
if not small_header else '']
|
||||||
if diff_results is None or percent_diff:
|
if diff_results is None or percent_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append(hlabel(k) if hlabel is not None else k)
|
header.append(hlabel('',k) if hlabel is not None else k)
|
||||||
elif small_diff:
|
elif small_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
else:
|
else:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('d'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('d',k) if hlabel is not None else 'd'+k))
|
||||||
lines.append(header)
|
lines.append(header)
|
||||||
|
|
||||||
# delete these to try to catch typos below, we need to rebuild
|
# delete these to try to catch typos below, we need to rebuild
|
||||||
|
|||||||
+7
-7
@@ -530,7 +530,7 @@ def table(Result, results, diff_results=None, *,
|
|||||||
# header
|
# header
|
||||||
if not no_header:
|
if not no_header:
|
||||||
header = ['%s%s' % (
|
header = ['%s%s' % (
|
||||||
','.join((hlabel(k) if hlabel is not None else k)
|
','.join((hlabel('',k) if hlabel is not None else k)
|
||||||
for k in by if hidden is None or k not in hidden),
|
for k in by if hidden is None or k not in hidden),
|
||||||
' (%d added, %d removed)' % (
|
' (%d added, %d removed)' % (
|
||||||
sum(1 for n in table if n not in diff_table),
|
sum(1 for n in table if n not in diff_table),
|
||||||
@@ -542,18 +542,18 @@ def table(Result, results, diff_results=None, *,
|
|||||||
if not small_header else '']
|
if not small_header else '']
|
||||||
if diff_results is None or percent_diff:
|
if diff_results is None or percent_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append(hlabel(k) if hlabel is not None else k)
|
header.append(hlabel('',k) if hlabel is not None else k)
|
||||||
elif small_diff:
|
elif small_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
else:
|
else:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('d'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('d',k) if hlabel is not None else 'd'+k))
|
||||||
lines.append(header)
|
lines.append(header)
|
||||||
|
|
||||||
# delete these to try to catch typos below, we need to rebuild
|
# delete these to try to catch typos below, we need to rebuild
|
||||||
|
|||||||
+11
-12
@@ -1892,9 +1892,6 @@ def collect_csv(csv_paths, *,
|
|||||||
for k, v in r.items()
|
for k, v in r.items()
|
||||||
if k != notes
|
if k != notes
|
||||||
and v.strip()}
|
and v.strip()}
|
||||||
# special handling for notes field
|
|
||||||
if notes is not None and notes in r:
|
|
||||||
r_[notes] = set(r[notes].split(','))
|
|
||||||
results.append(r_)
|
results.append(r_)
|
||||||
|
|
||||||
# read json?
|
# read json?
|
||||||
@@ -2338,7 +2335,7 @@ def table(Result, results, diff_results=None, *,
|
|||||||
# header
|
# header
|
||||||
if not no_header:
|
if not no_header:
|
||||||
header = ['%s%s' % (
|
header = ['%s%s' % (
|
||||||
','.join((hlabel(k) if hlabel is not None else k)
|
','.join((hlabel('',k) if hlabel is not None else k)
|
||||||
for k in by if hidden is None or k not in hidden),
|
for k in by if hidden is None or k not in hidden),
|
||||||
' (%d added, %d removed)' % (
|
' (%d added, %d removed)' % (
|
||||||
sum(1 for n in table if n not in diff_table),
|
sum(1 for n in table if n not in diff_table),
|
||||||
@@ -2350,18 +2347,18 @@ def table(Result, results, diff_results=None, *,
|
|||||||
if not small_header else '']
|
if not small_header else '']
|
||||||
if diff_results is None or percent_diff:
|
if diff_results is None or percent_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append(hlabel(k) if hlabel is not None else k)
|
header.append(hlabel('',k) if hlabel is not None else k)
|
||||||
elif small_diff:
|
elif small_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
else:
|
else:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('d'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('d',k) if hlabel is not None else 'd'+k))
|
||||||
lines.append(header)
|
lines.append(header)
|
||||||
|
|
||||||
# delete these to try to catch typos below, we need to rebuild
|
# delete these to try to catch typos below, we need to rebuild
|
||||||
@@ -3227,8 +3224,10 @@ def main(csv_paths, *,
|
|||||||
hidden=hidden,
|
hidden=hidden,
|
||||||
sort=sort,
|
sort=sort,
|
||||||
depth=depth,
|
depth=depth,
|
||||||
hlabel=(lambda hlabels_: (lambda k:
|
hlabel=(lambda hlabels_: (lambda p,k:
|
||||||
punescape(hlabels_[k]) if k in hlabels_ else k)
|
punescape(hlabels_[p+k]) if p+k in hlabels_
|
||||||
|
else p+punescape(hlabels_[k]) if k in hlabels_
|
||||||
|
else p+k)
|
||||||
)(dict(hlabels))
|
)(dict(hlabels))
|
||||||
if hlabels else None,
|
if hlabels else None,
|
||||||
tlabel=(lambda r: punescape(tlabel, PunescapeGetattr(r)))
|
tlabel=(lambda r: punescape(tlabel, PunescapeGetattr(r)))
|
||||||
|
|||||||
+7
-7
@@ -920,7 +920,7 @@ def table(Result, results, diff_results=None, *,
|
|||||||
# header
|
# header
|
||||||
if not no_header:
|
if not no_header:
|
||||||
header = ['%s%s' % (
|
header = ['%s%s' % (
|
||||||
','.join((hlabel(k) if hlabel is not None else k)
|
','.join((hlabel('',k) if hlabel is not None else k)
|
||||||
for k in by if hidden is None or k not in hidden),
|
for k in by if hidden is None or k not in hidden),
|
||||||
' (%d added, %d removed)' % (
|
' (%d added, %d removed)' % (
|
||||||
sum(1 for n in table if n not in diff_table),
|
sum(1 for n in table if n not in diff_table),
|
||||||
@@ -932,18 +932,18 @@ def table(Result, results, diff_results=None, *,
|
|||||||
if not small_header else '']
|
if not small_header else '']
|
||||||
if diff_results is None or percent_diff:
|
if diff_results is None or percent_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append(hlabel(k) if hlabel is not None else k)
|
header.append(hlabel('',k) if hlabel is not None else k)
|
||||||
elif small_diff:
|
elif small_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
else:
|
else:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('d'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('d',k) if hlabel is not None else 'd'+k))
|
||||||
lines.append(header)
|
lines.append(header)
|
||||||
|
|
||||||
# delete these to try to catch typos below, we need to rebuild
|
# delete these to try to catch typos below, we need to rebuild
|
||||||
|
|||||||
+7
-7
@@ -661,7 +661,7 @@ def table(Result, results, diff_results=None, *,
|
|||||||
# header
|
# header
|
||||||
if not no_header:
|
if not no_header:
|
||||||
header = ['%s%s' % (
|
header = ['%s%s' % (
|
||||||
','.join((hlabel(k) if hlabel is not None else k)
|
','.join((hlabel('',k) if hlabel is not None else k)
|
||||||
for k in by if hidden is None or k not in hidden),
|
for k in by if hidden is None or k not in hidden),
|
||||||
' (%d added, %d removed)' % (
|
' (%d added, %d removed)' % (
|
||||||
sum(1 for n in table if n not in diff_table),
|
sum(1 for n in table if n not in diff_table),
|
||||||
@@ -673,18 +673,18 @@ def table(Result, results, diff_results=None, *,
|
|||||||
if not small_header else '']
|
if not small_header else '']
|
||||||
if diff_results is None or percent_diff:
|
if diff_results is None or percent_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append(hlabel(k) if hlabel is not None else k)
|
header.append(hlabel('',k) if hlabel is not None else k)
|
||||||
elif small_diff:
|
elif small_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
else:
|
else:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('d'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('d',k) if hlabel is not None else 'd'+k))
|
||||||
lines.append(header)
|
lines.append(header)
|
||||||
|
|
||||||
# delete these to try to catch typos below, we need to rebuild
|
# delete these to try to catch typos below, we need to rebuild
|
||||||
|
|||||||
+7
-7
@@ -1019,7 +1019,7 @@ def table(Result, results, diff_results=None, *,
|
|||||||
# header
|
# header
|
||||||
if not no_header:
|
if not no_header:
|
||||||
header = ['%s%s' % (
|
header = ['%s%s' % (
|
||||||
','.join((hlabel(k) if hlabel is not None else k)
|
','.join((hlabel('',k) if hlabel is not None else k)
|
||||||
for k in by if hidden is None or k not in hidden),
|
for k in by if hidden is None or k not in hidden),
|
||||||
' (%d added, %d removed)' % (
|
' (%d added, %d removed)' % (
|
||||||
sum(1 for n in table if n not in diff_table),
|
sum(1 for n in table if n not in diff_table),
|
||||||
@@ -1031,18 +1031,18 @@ def table(Result, results, diff_results=None, *,
|
|||||||
if not small_header else '']
|
if not small_header else '']
|
||||||
if diff_results is None or percent_diff:
|
if diff_results is None or percent_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append(hlabel(k) if hlabel is not None else k)
|
header.append(hlabel('',k) if hlabel is not None else k)
|
||||||
elif small_diff:
|
elif small_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
else:
|
else:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('d'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('d',k) if hlabel is not None else 'd'+k))
|
||||||
lines.append(header)
|
lines.append(header)
|
||||||
|
|
||||||
# delete these to try to catch typos below, we need to rebuild
|
# delete these to try to catch typos below, we need to rebuild
|
||||||
|
|||||||
+7
-7
@@ -993,7 +993,7 @@ def table(Result, results, diff_results=None, *,
|
|||||||
# header
|
# header
|
||||||
if not no_header:
|
if not no_header:
|
||||||
header = ['%s%s' % (
|
header = ['%s%s' % (
|
||||||
','.join((hlabel(k) if hlabel is not None else k)
|
','.join((hlabel('',k) if hlabel is not None else k)
|
||||||
for k in by if hidden is None or k not in hidden),
|
for k in by if hidden is None or k not in hidden),
|
||||||
' (%d added, %d removed)' % (
|
' (%d added, %d removed)' % (
|
||||||
sum(1 for n in table if n not in diff_table),
|
sum(1 for n in table if n not in diff_table),
|
||||||
@@ -1005,18 +1005,18 @@ def table(Result, results, diff_results=None, *,
|
|||||||
if not small_header else '']
|
if not small_header else '']
|
||||||
if diff_results is None or percent_diff:
|
if diff_results is None or percent_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append(hlabel(k) if hlabel is not None else k)
|
header.append(hlabel('',k) if hlabel is not None else k)
|
||||||
elif small_diff:
|
elif small_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
else:
|
else:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('d'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('d',k) if hlabel is not None else 'd'+k))
|
||||||
lines.append(header)
|
lines.append(header)
|
||||||
|
|
||||||
# delete these to try to catch typos below, we need to rebuild
|
# delete these to try to catch typos below, we need to rebuild
|
||||||
|
|||||||
+7
-7
@@ -661,7 +661,7 @@ def table(Result, results, diff_results=None, *,
|
|||||||
# header
|
# header
|
||||||
if not no_header:
|
if not no_header:
|
||||||
header = ['%s%s' % (
|
header = ['%s%s' % (
|
||||||
','.join((hlabel(k) if hlabel is not None else k)
|
','.join((hlabel('',k) if hlabel is not None else k)
|
||||||
for k in by if hidden is None or k not in hidden),
|
for k in by if hidden is None or k not in hidden),
|
||||||
' (%d added, %d removed)' % (
|
' (%d added, %d removed)' % (
|
||||||
sum(1 for n in table if n not in diff_table),
|
sum(1 for n in table if n not in diff_table),
|
||||||
@@ -673,18 +673,18 @@ def table(Result, results, diff_results=None, *,
|
|||||||
if not small_header else '']
|
if not small_header else '']
|
||||||
if diff_results is None or percent_diff:
|
if diff_results is None or percent_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append(hlabel(k) if hlabel is not None else k)
|
header.append(hlabel('',k) if hlabel is not None else k)
|
||||||
elif small_diff:
|
elif small_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
else:
|
else:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('d'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('d',k) if hlabel is not None else 'd'+k))
|
||||||
lines.append(header)
|
lines.append(header)
|
||||||
|
|
||||||
# delete these to try to catch typos below, we need to rebuild
|
# delete these to try to catch typos below, we need to rebuild
|
||||||
|
|||||||
+7
-7
@@ -809,7 +809,7 @@ def table(Result, results, diff_results=None, *,
|
|||||||
# header
|
# header
|
||||||
if not no_header:
|
if not no_header:
|
||||||
header = ['%s%s' % (
|
header = ['%s%s' % (
|
||||||
','.join((hlabel(k) if hlabel is not None else k)
|
','.join((hlabel('',k) if hlabel is not None else k)
|
||||||
for k in by if hidden is None or k not in hidden),
|
for k in by if hidden is None or k not in hidden),
|
||||||
' (%d added, %d removed)' % (
|
' (%d added, %d removed)' % (
|
||||||
sum(1 for n in table if n not in diff_table),
|
sum(1 for n in table if n not in diff_table),
|
||||||
@@ -821,18 +821,18 @@ def table(Result, results, diff_results=None, *,
|
|||||||
if not small_header else '']
|
if not small_header else '']
|
||||||
if diff_results is None or percent_diff:
|
if diff_results is None or percent_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append(hlabel(k) if hlabel is not None else k)
|
header.append(hlabel('',k) if hlabel is not None else k)
|
||||||
elif small_diff:
|
elif small_diff:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
else:
|
else:
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('o'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('o',k) if hlabel is not None else 'o'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('n'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('n',k) if hlabel is not None else 'n'+k))
|
||||||
for k in fields:
|
for k in fields:
|
||||||
header.append('d'+(hlabel(k) if hlabel is not None else k))
|
header.append((hlabel('d',k) if hlabel is not None else 'd'+k))
|
||||||
lines.append(header)
|
lines.append(header)
|
||||||
|
|
||||||
# delete these to try to catch typos below, we need to rebuild
|
# delete these to try to catch typos below, we need to rebuild
|
||||||
|
|||||||
Reference in New Issue
Block a user