From 9f9d952e2751835197dc34673792be4ee4bc3f3c Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Mon, 25 Jun 2018 21:04:31 +0100 Subject: filter-active.py: Use sets of releases for filtering instead of lists --- scripts/filter-active.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'scripts') diff --git a/scripts/filter-active.py b/scripts/filter-active.py index 0fb274fc..c4215b48 100755 --- a/scripts/filter-active.py +++ b/scripts/filter-active.py @@ -32,10 +32,10 @@ class issue(deb822.Deb822): return True def get_releases(self): - releases = [] + releases = set() for field in self.d.keys(): if self.fieldIsRelease(field): - releases.append(field) + releases.add(field) return releases ignorePatterns = [re.compile('.*~$'), @@ -108,7 +108,7 @@ if __name__ == '__main__': if not options.states and not options.notstates: print('I: Excluding N/A, ignored and released issues') options.notstates = ['N/A', 'ignored', 'released'] - inc_releases = options.release + inc_releases = options.release and set(options.release) if options.color is None: options.color = sys.stdout.isatty() if options.color: @@ -135,26 +135,28 @@ if __name__ == '__main__': issues = filter_out_states(issues, inc_releases, options.states, options.notstates) - if not options.release: + if options.release: + list_releases = options.release + else: all_releases = set() for i in issues: - all_releases |= set(i.get_releases()) - inc_releases = sorted(list(all_releases)) + all_releases |= i.get_releases() + list_releases = sorted(list(all_releases)) - if len(inc_releases) == 1: + if len(list_releases) == 1: min_width = 0 max_width = 1000 else: min_width = 20 max_width = 20 sys.stdout.write(" ") - for release in inc_releases: + for release in list_releases: sys.stdout.write(" %-20.20s " % release) sys.stdout.write("\n") for i in issues: sys.stdout.write("%17s:" % i.name) - for release in inc_releases: + for release in list_releases: status = i.status(release) or "unknown" status_short = status.split(' ')[0] if options.color and status_color.has_key(status_short): -- cgit v1.2.3