|
@@ -40,9 +40,9 @@ def read_file_size_csv(inputf, detail=None):
|
|
|
|
|
|
for row in reader:
|
|
|
if detail:
|
|
|
- sizes[row[0]] = int(row[2])
|
|
|
+ sizes[(row[0], row[1])] = int(row[2])
|
|
|
else:
|
|
|
- sizes[row[1]] = int(row[3])
|
|
|
+ sizes[(None, row[1])] = int(row[3])
|
|
|
|
|
|
return sizes
|
|
|
|
|
@@ -73,19 +73,27 @@ def print_results(result, threshold):
|
|
|
|
|
|
from six import iteritems
|
|
|
list_result = list(iteritems(result))
|
|
|
- # result is a dictionary: name -> (flag, size difference)
|
|
|
- # list_result is a list of tuples: (name, (flag, size difference))
|
|
|
+ # result is a dictionary: (filename, pkgname) -> (flag, size difference)
|
|
|
+ # list_result is a list of tuples: ((filename, pkgname), (flag, size difference))
|
|
|
+ # filename may be None if no detail is requested.
|
|
|
+
|
|
|
+ maxpkgname=max(len(pkgname) for filename, pkgname in result)
|
|
|
|
|
|
for entry in sorted(list_result, key=lambda entry: entry[1][1]):
|
|
|
data = dict(
|
|
|
- name=entry[0],
|
|
|
+ filename=entry[0][0],
|
|
|
+ pkgname=entry[0][1],
|
|
|
action=entry[1][0],
|
|
|
size=entry[1][1],
|
|
|
+ maxpkgname=maxpkgname,
|
|
|
)
|
|
|
|
|
|
if threshold is not None and abs(data['size']) <= threshold:
|
|
|
continue
|
|
|
- print('{size:12d} {action:7s} {name}'.format(**data))
|
|
|
+ if data['filename']:
|
|
|
+ print('{size:12d} {action:7s} {pkgname:{maxpkgname}s} {filename}'.format(**data))
|
|
|
+ else:
|
|
|
+ print('{size:12d} {action:7s} {pkgname}'.format(**data))
|
|
|
|
|
|
|
|
|
# main #########################################################################
|
|
@@ -132,5 +140,5 @@ print('Size difference per %s (bytes), threshold = %s' % (keyword, args.threshol
|
|
|
print(80*'-')
|
|
|
print_results(delta, args.threshold)
|
|
|
print(80*'-')
|
|
|
-print_results({'TOTAL': ('', sum(new_sizes.values()) - sum(old_sizes.values()))},
|
|
|
+print_results({(None, 'TOTAL'): ('', sum(new_sizes.values()) - sum(old_sizes.values()))},
|
|
|
threshold=None)
|