From 3e6247093b6c4ae6903645cac47c9981f9d64692 Mon Sep 17 00:00:00 2001 From: Kévin Le Gouguec Date: Tue, 14 Apr 2020 19:02:07 +0200 Subject: Rename (package,old,new) namedtuple --- .local/bin/zypper-wassup | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) (limited to '.local') diff --git a/.local/bin/zypper-wassup b/.local/bin/zypper-wassup index 749052a..100f0ea 100755 --- a/.local/bin/zypper-wassup +++ b/.local/bin/zypper-wassup @@ -6,7 +6,7 @@ import re from subprocess import run -Package = namedtuple('Package', ('package', 'old', 'new')) +Update = namedtuple('Update', ('package', 'old', 'new')) ZYPPER_PATTERN = re.compile( r' +\| +'.join(( @@ -38,7 +38,7 @@ def zypper_list_updates(): zypp_output = execute(('zypper', 'list-updates')) return tuple( - Package(**match.groupdict()) + Update(**match.groupdict()) for match in ZYPPER_PATTERN.finditer(zypp_output) ) @@ -50,12 +50,12 @@ def source_package_name(package): return match.group('name') -def sort_by_source_package(packages): - sorted_packages = defaultdict(list) +def sort_by_source_package(updates): + sorted_updates = defaultdict(list) - for p in packages: + for u in updates: source_pkgs = execute( - ('rpm', '--query', '--queryformat', r'%{SOURCERPM}\n', p.package) + ('rpm', '--query', '--queryformat', r'%{SOURCERPM}\n', u.package) ) # Some packages, e.g. kernel-default and kernel-devel, may be @@ -65,9 +65,9 @@ def sort_by_source_package(packages): *_, last_source_pkg = source_pkgs.splitlines() name = source_package_name(last_source_pkg) - sorted_packages[name].append(p) + sorted_updates[name].append(u) - return sorted_packages + return sorted_updates class Sgr(IntEnum): @@ -120,30 +120,30 @@ def print_header(widths, name): def print_footer(i, n, widths): if i < n: - print('─┼─'.join('─'*widths[f] for f in Package._fields)) + print('─┼─'.join('─'*widths[f] for f in Update._fields)) def main(): print('Querying zypper list-updates… ', end='', flush=True) - packages = zypper_list_updates() - print(f'{len(packages)} updates.') + updates = zypper_list_updates() + print(f'{len(updates)} updates.') - if not packages: + if not updates: return widths = { - field: max(len(p._asdict()[field]) for p in packages) - for field in Package._fields + field: max(len(u._asdict()[field]) for u in updates) + for field in Update._fields } print('Sorting by source package… ', end='', flush=True) - packages = sort_by_source_package(packages) + updates = sort_by_source_package(updates) print('Done') - for i, src in enumerate(sorted(packages), 1): + for i, src in enumerate(sorted(updates), 1): print_header(widths, src) - for pkg, old, new in sorted(packages[src]): + for pkg, old, new in sorted(updates[src]): old_padding = padding(old, widths['old']) new_padding = padding(new, widths['new']) @@ -155,7 +155,7 @@ def main(): new+new_padding ))) - print_footer(i, len(packages), widths) + print_footer(i, len(updates), widths) if __name__ == '__main__': -- cgit v1.2.3