Rev 5449: Parse entries, extract bugs fron the entries (1105 bugs seen). in file:///home/vila/src/bzr/experimental/fixed-in/
Vincent Ladeuil
v.ladeuil+lp at free.fr
Mon Sep 27 23:20:36 BST 2010
At file:///home/vila/src/bzr/experimental/fixed-in/
------------------------------------------------------------
revno: 5449
revision-id: v.ladeuil+lp at free.fr-20100927222036-ye9qqlpq4bc4a542
parent: v.ladeuil+lp at free.fr-20100927214940-l0byjb3qjemkfrcd
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: fixed-in
timestamp: Tue 2010-09-28 00:20:36 +0200
message:
Parse entries, extract bugs fron the entries (1105 bugs seen).
-------------- next part --------------
=== modified file 'tools/fixed-in.py'
--- a/tools/fixed-in.py 2010-09-27 21:49:40 +0000
+++ b/tools/fixed-in.py 2010-09-27 22:20:36 +0000
@@ -20,6 +20,7 @@
release_re = re.compile("bzr[ -]")
release_prefix_length = len('bzr ')
+ bug_pattern = re.compile("(#(?:[0-9]+)(?:,\s)?)+")
def __init__(self, news):
self.news = news
@@ -52,6 +53,22 @@
return True
return False
+ def add_line_to_entry(self):
+ if self.lrs == '':
+ return False
+ self.entry += self.line
+ return True
+
+ def extract_bugs_from_entry(self):
+ # Not all entries will contain bugs and some entries are even garbage
+ # that is not parsed (yet).
+ # FIXME: Malone entries are different
+ for bug_number in self.bug_pattern.findall(self.entry):
+# import pdb; pdb.set_trace()
+ yield (bug_number, self.release, self.entry)
+ # We've consumed the entry
+ self.entry = ''
+
def parse_bugs(self):
for line in self.news:
self.set_line(line)
@@ -59,11 +76,13 @@
continue
try:
if self.confirm_release():
- yield (self.release,)
continue
finally:
self.may_be_release = None
-
+ if self.add_line_to_entry():
+ continue
+ for b in self.extract_bugs_from_entry():
+ yield b
def main():
(opts, args) = opt_parser.parse_args(sys.argv[1:])
@@ -75,17 +94,19 @@
news = open(opts.news_file)
parser = NewsParser(news)
try:
+ seen = 0
for b in parser.parse_bugs():
#(number, release, date, author, entry) = b
- (release,) = b
- (number, date, author, entry) = (123, '2010-01-01', 'joe',
- '(joe, #123)')
+ (number, release, entry,) = b
+ (date, author) = ('2010-01-01', 'joe',)
# indent entry
entry = '\n'.join([' ' + l for l in entry.splitlines()])
- if number == bug:
- print 'Bug #%s was fixed in bzr-%s:' % (number, release)
- print entry
+# if number == bug[1:]: # Strip the leading '#'
+ print 'Bug %s was fixed in bzr-%s:' % (number, release)
+ print entry
+ seen += 1
finally:
+ print '%s bugs seen' % (seen,)
news.close()
More information about the bazaar-commits
mailing list