aboutsummaryrefslogtreecommitdiffstats
path: root/version_detect/hg_keywords.py
diff options
context:
space:
mode:
Diffstat (limited to 'version_detect/hg_keywords.py')
-rw-r--r--version_detect/hg_keywords.py21
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)