From 5ca71595a2785e6482915597d75fed740e5d6e07 Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Aug 14 2018 12:56:06 +0000 Subject: simplify ignore logic in rpmdiff function --- diff --git a/koji/rpmdiff.py b/koji/rpmdiff.py index a8f8269..cee94cd 100644 --- a/koji/rpmdiff.py +++ b/koji/rpmdiff.py @@ -73,19 +73,12 @@ class Rpmdiff: def __init__(self, old, new, ignore=None): self.result = [] - self.ignore = ignore self.old_data = { 'tags': {}, 'ignore': ignore } self.new_data = { 'tags': {}, 'ignore': ignore } - if self.ignore is None: - self.ignore = [] - - FILEIDX = [entry[:] for entry in self.__FILEIDX] - for tag in self.ignore: - for entry in FILEIDX: - if tag == entry[0]: - # store marked position for erasing data - entry[1] = -entry[1] - 100 - break + if ignore is None: + ignore = set() + else: + ignore = set(ignore) old = self.__load_pkg(old) new = self.__load_pkg(new) @@ -131,16 +124,16 @@ class Rpmdiff: self.__add(self.FORMAT, (self.REMOVED, f)) else: format = '' - for entry in FILEIDX: - if entry[1] >= 0 and \ - old_file[entry[1]] != new_file[entry[1]]: - format = format + entry[0] - diff = 1 - elif entry[1] < 0: + for entry in self.__FILEIDX: + # entry = [character, value] + if entry[0] in ignore: # erase fields which are ignored - old_file[-entry[1] - 100] = None - new_file[-entry[1] - 100] = None + old_file[entry[1]] = None + new_file[entry[1]] = None format = format + '.' + elif old_file[entry[1]] != new_file[entry[1]]: + format = format + entry[0] + diff = 1 else: format = format + '.' if diff: