diff options
author | Germán Póo-Caamaño <gpoo@gnome.org> | 2011-06-22 18:46:49 -0700 |
---|---|---|
committer | Germán Póo-Caamaño <gpoo@gnome.org> | 2011-06-22 19:27:47 -0700 |
commit | 70df53f20f22f3a591a1e3dbf30fb6c934be1c78 (patch) | |
tree | a2982f997a95a4e6f02e4427d02efe7cbe190205 /patterns.py | |
parent | 935be113b3ad3023b102ec00ba0272315a6d27e7 (diff) |
Use a dict of patterns instead of several global variables
The dictionary used allows the use of a single meaningful
variable with a cleaner code. Also, it is not harder to add
new patterns.
Signed-off-by: Germán Póo-Caamaño <gpoo@gnome.org>
Diffstat (limited to 'patterns.py')
-rw-r--r-- | patterns.py | 56 |
1 files changed, 31 insertions, 25 deletions
diff --git a/patterns.py b/patterns.py index 423c521..b679049 100644 --- a/patterns.py +++ b/patterns.py @@ -1,10 +1,12 @@ # +# -*- coding:utf-8 -*- # Pull together regular expressions used in multiple places. # # This code is part of the LWN git data miner. # # Copyright 2007-11 Eklektix, Inc. # Copyright 2007-11 Jonathan Corbet <corbet@lwn.net> +# Copyright 2011 Germán Póo-Caamaño <gpoo@gnome.org> # # This file may be distributed under the terms of the GNU General # Public License, version 2. @@ -16,28 +18,32 @@ import re # expressions." Now they have two problems. # -- Jamie Zawinski # -Pemail = r'\s+"?([^<"]+)"?\s<([^>]+)>' # just email addr + name -Pcommit = re.compile (r'^commit ([0-9a-f ]+)$') -Pauthor = re.compile (r'^Author:' + Pemail + '$') -Psob = re.compile (r'^\s+Signed-off-by:' + Pemail + '.*$') -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+(.*)$') -Preview = re.compile (r'^\s+Reviewed-by:' + Pemail + '.*$') -Ptest = re.compile (r'^\s+tested-by:' + Pemail + '.*$', re.I) -Prep = re.compile (r'^\s+Reported-by:' + Pemail + '.*$') -Preptest = re.compile (r'^\s+reported-and-tested-by:' + Pemail + '.*$', re.I) -# -# 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)? '.*$") -PIntMerge2 = re.compile(r"^ +Merge .*$") -# -# Another way to get the statistics (per file). It implies --numstat -Pnumstat = re.compile('^(\d+|-)\s+(\d+|-)\s+(.*)$') -Prename = re.compile('(.*)\{(.*) => (.*)\}(.*)') +_pemail = r'\s+"?([^<"]+)"?\s<([^>]+)>' # just email addr + name + +patterns = { + 'commit': re.compile (r'^commit ([0-9a-f ]+)$'), + 'author': re.compile (r'^Author:' + _pemail + '$'), + 'signed-off-by': re.compile (r'^\s+Signed-off-by:' + _pemail + '.*$'), + 'merge': re.compile (r'^Merge:.*$'), + 'add': re.compile (r'^\+[^+].*$'), + 'rem': re.compile (r'^-[^-].*$'), + 'date': re.compile (r'^(Commit)?Date:\s+(.*)$'), + # filea, fileb are used only in 'parche mode' (-p) + 'filea': re.compile (r'^---\s+(.*)$'), + 'fileb': re.compile (r'^\+\+\+\s+(.*)$'), + 'reviewed-by': re.compile (r'^\s+Reviewed-by:' + _pemail+ '.*$'), + 'tested-by': re.compile (r'^\s+tested-by:' + _pemail + '.*$', re.I), + 'reported-by': re.compile (r'^\s+Reported-by:' + _pemail + '.*$'), + 'reported-and-tested-by': re.compile (r'^\s+reported-and-tested-by:' + _pemail + '.*$', re.I), + # + # Merges are described with a variety of lines. + # + 'ExtMerge': re.compile(r'^ +Merge( branch .* of)? ([^ ]+:[^ ]+)\n$'), + 'IntMerge': re.compile(r'^ +(Merge|Pull) .* into .*$'), + # PIntMerge2 = re.compile(r"^ +Merge branch(es)? '.*$"), + 'IntMerge2': re.compile(r"^ +Merge .*$"), + # Another way to get the statistics (per file). + # It implies --numstat + 'numstat': re.compile('^(\d+|-)\s+(\d+|-)\s+(.*)$'), + 'rename' : re.compile('(.*)\{(.*) => (.*)\}(.*)'), +} |