From 42dd5c9aa42858649d5ed16e86db8d15941b0265 Mon Sep 17 00:00:00 2001 From: shbhmexe Date: Fri, 12 Dec 2025 14:32:41 +0530 Subject: [PATCH] Fix: credit arg, database hygiene, and stale globals cleanup - Pass the patch instance (not the patch class) to testcredit()/reportcredit() in gitdm.py and cncfdm.py - Close the database dump file handle in DumpDB() - Avoid mutable default args in FileType and treat empty patterns/order correctly - Make MapToEmployer() handle unsupported `unknown` values safely by defaulting to email mapping - Keep/restore LookupEmployer() signature (fix accidental syntax break) - Remove stale `Aggregate` global declarations in gerritdm.py and lpdm.py - Remove a trailing comma in reports.py Pct() call Signed-off-by: shbhmexe --- src/cncfdm.py | 8 ++++---- src/database.py | 14 ++++++++------ src/gerritdm.py | 2 +- src/gitdm.py | 8 ++++---- src/lpdm.py | 2 +- src/reports.py | 2 +- 6 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/cncfdm.py b/src/cncfdm.py index cfdf96de..ecec6065 100755 --- a/src/cncfdm.py +++ b/src/cncfdm.py @@ -487,7 +487,7 @@ def grabpatch(logpatch): if m: email = database.RemapEmail (m.group (2)) pa.addtester (LookupStoreHacker (m.group (1), email)) - pa.author.testcredit (patch) + pa.author.testcredit (pa) dkey = 'tested-by' if dkey not in matched: matched[dkey] = 1 @@ -499,7 +499,7 @@ def grabpatch(logpatch): if m: email = database.RemapEmail (m.group (2)) pa.addreporter (LookupStoreHacker (m.group (1), email)) - pa.author.reportcredit (patch) + pa.author.reportcredit (pa) dkey = 'reported-by' if dkey not in matched: matched[dkey] = 1 @@ -513,8 +513,8 @@ def grabpatch(logpatch): h = LookupStoreHacker (m.group (1), email) pa.addreporter (h) pa.addtester (h) - pa.author.reportcredit (patch) - pa.author.testcredit (patch) + pa.author.reportcredit (pa) + pa.author.testcredit (pa) dkey = 'reported-and-tested-by' if dkey not in matched: matched[dkey] = 1 diff --git a/src/database.py b/src/database.py index b9e751a5..21a1b1c6 100755 --- a/src/database.py +++ b/src/database.py @@ -211,6 +211,7 @@ def DumpDB (): empl.name)) if h.versions: out.write ('\tVersions: %s\n' % ','.join (h.versions)) + out.close () # # Hack: The first visible tag comes a ways into the stream; when we see it, @@ -315,13 +316,13 @@ def store (self): Employers[self.name] = self class FileType: - def __init__ (self, patterns={}, order=[]): - self.patterns = patterns - self.order = order + def __init__ (self, patterns=None, order=None): + self.patterns = patterns if patterns is not None else {} + self.order = order if order is not None else [] def guess_file_type (self, filename, patterns=None, order=None): - patterns = patterns or self.patterns - order = order or self.order + patterns = patterns if patterns is not None else self.patterns + order = order if order is not None else self.order for file_type in order: if file_type in patterns: @@ -437,7 +438,8 @@ def MapToEmployer (email, unknown = 0): elif unknown == 2: return [(nextyear, GetEmployer ('(Unknown)'), False)] else: - print "Unsupported unknown parameter handling value" + print "Unsupported unknown parameter handling value, defaulting to email" + return [(nextyear, GetEmployer (email), False)] def LookupEmployer (email, mapunknown = 0): diff --git a/src/gerritdm.py b/src/gerritdm.py index 2d0adaa9..787157c7 100755 --- a/src/gerritdm.py +++ b/src/gerritdm.py @@ -45,7 +45,7 @@ def ParseOpts (): global MapUnknown, DevReports global DumpDB - global CFName, DirName, Aggregate + global CFName, DirName opts, rest = getopt.getopt (sys.argv[1:], 'b:dc:h:l:o:uz') for opt in opts: diff --git a/src/gitdm.py b/src/gitdm.py index cbf656ea..a5d06204 100755 --- a/src/gitdm.py +++ b/src/gitdm.py @@ -268,14 +268,14 @@ def grabpatch(logpatch): if m: email = database.RemapEmail (m.group (2)) p.addtester (LookupStoreHacker (m.group (1), email)) - p.author.testcredit (patch) + p.author.testcredit (p) continue # Reported-by: m = patterns['reported-by'].match (Line) if m: email = database.RemapEmail (m.group (2)) p.addreporter (LookupStoreHacker (m.group (1), email)) - p.author.reportcredit (patch) + p.author.reportcredit (p) continue # Reported-and-tested-by: m = patterns['reported-and-tested-by'].match (Line) @@ -284,8 +284,8 @@ def grabpatch(logpatch): h = LookupStoreHacker (m.group (1), email) p.addreporter (h) p.addtester (h) - p.author.reportcredit (patch) - p.author.testcredit (patch) + p.author.reportcredit (p) + p.author.testcredit (p) continue # # If this one is a merge, make note of the fact. diff --git a/src/lpdm.py b/src/lpdm.py index b9c6afd9..59d95f5a 100755 --- a/src/lpdm.py +++ b/src/lpdm.py @@ -45,7 +45,7 @@ def ParseOpts (): global MapUnknown, DevReports global DumpDB - global CFName, DirName, Aggregate + global CFName, DirName opts, rest = getopt.getopt (sys.argv[1:], 'b:dc:h:l:o:uz') for opt in opts: diff --git a/src/reports.py b/src/reports.py index 695f4366..e4d5a30a 100755 --- a/src/reports.py +++ b/src/reports.py @@ -200,7 +200,7 @@ def ReportByBCEmpl (elist, totalbugs): count += 1 if count >= ListCount: break - EndReport ('Covers %f%% of bugs' % (Pct(reported, totalbugs, ))) + EndReport ('Covers %f%% of bugs' % (Pct(reported, totalbugs))) def CompareELChanged (e1, e2): return e2.changed - e1.changed