From ba5f6b69435f70ceaed738906c8ed7a4a87dc61b Mon Sep 17 00:00:00 2001 From: Jonathan Corbet Date: Fri, 18 Jul 2008 15:04:55 -0600 Subject: [PATCH] Move regular expressions out to patterns.py ...I need them for an associated tool I'm working on. --- gitdm | 19 ++----------------- patterns.py | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 17 deletions(-) create mode 100644 patterns.py diff --git a/gitdm b/gitdm index d580414..5373b26 100755 --- a/gitdm +++ b/gitdm @@ -14,21 +14,7 @@ import database, ConfigFile import getopt, datetime import os, re, sys, rfc822, string - -# -# Some people, when confronted with a problem, think "I know, I'll use regular -# expressions." Now they have two problems. -# -- Jamie Zawinski -# -Pcommit = re.compile (r'^commit ([0-9a-f]+)$') -Pauthor = re.compile (r'^Author: ([^<]+)\s<([^>]+)>$') -Psob = re.compile (r'Signed-off-by:\s+([^<]+)\s+<([^>]+)>') -Pmerge = re.compile (r'^Merge:.*$') -Padd = re.compile (r'^\+[^\+].*$') -Prem = re.compile (r'^-[^-].*$') -Pdate = re.compile (r'^(Commit)?Date:\s+(.*)$') -Pfilea = re.compile (r'^---\s+(.*)$') -Pfileb = re.compile (r'^\+\+\+\s+(.*)$') +from patterns import * class patch: pass @@ -117,7 +103,6 @@ def AddDateLines(date, lines): if lines > 1000000: print 'Skip big patch (%d)' % lines return - dt = (date.year, date.month, date.day) try: DateMap[date] += lines except KeyError: @@ -130,7 +115,7 @@ def PrintDateStats(): datef = open ('datelc', 'w') for date in dates: total += DateMap[date] - datef.write ('%d/%02d/%02d %6d %7d\n' % (date[0], date[1], date[2], + datef.write ('%d/%02d/%02d %6d %7d\n' % (date.year, date.month, date.day, DateMap[date], total)) # diff --git a/patterns.py b/patterns.py new file mode 100644 index 0000000..b056f1d --- /dev/null +++ b/patterns.py @@ -0,0 +1,26 @@ +# +# Pull together regular expressions used in multiple places. +# +import re + +# +# Some people, when confronted with a problem, think "I know, I'll use regular +# expressions." Now they have two problems. +# -- Jamie Zawinski +# +Pcommit = re.compile (r'^commit ([0-9a-f ]+)$') +Pauthor = re.compile (r'^Author: ([^<]+)\s<([^>]+)>$') +Psob = re.compile (r'Signed-off-by:\s+([^<]+)\s+<([^>]+)>') +Pmerge = re.compile (r'^Merge:.*$') +Padd = re.compile (r'^\+[^\+].*$') +Prem = re.compile (r'^-[^-].*$') +Pdate = re.compile (r'^(Commit)?Date:\s+(.*)$') +Pfilea = re.compile (r'^---\s+(.*)$') +Pfileb = re.compile (r'^\+\+\+\s+(.*)$') + +# +# Merges are described with a variety of lines. +# +PExtMerge = re.compile(r'^ +Merge( branch .* of)? ([^ ]+)\n$') +PIntMerge = re.compile(r'^ +(Merge|Pull) .* into .*$') +PIntMerge2 = re.compile(r"^ +Merge branch(es)? '.*$")