diff options
Diffstat (limited to 'version_detect/hg_keywords.py')
-rw-r--r-- | version_detect/hg_keywords.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/version_detect/hg_keywords.py b/version_detect/hg_keywords.py new file mode 100644 index 0000000..edc9bae --- /dev/null +++ b/version_detect/hg_keywords.py @@ -0,0 +1,21 @@ +import re + +keyword_rx = re.compile('^\$(\w+)\:\s+(\S*)\s*\$$') + +# returns tuple (key, value) +# returns None if kwstring is not a keyword expansion +def extract_keyvalue(kwstring): + mo = keyword_rx.match(kwstring) + if mo is None: return None + + try: + return mo.group(1,2) + except IndexError: + return None + + + +def keywords(*kwstrings): + keyvalues = [extract_keyvalue(kws) for kws in kwstrings] + compacted_keyvalues = [kv for kv in keyvalues if kv is not None] + return dict(compacted_keyvalues) |