summaryrefslogtreecommitdiffstats
path: root/gd_diff.py
diff options
context:
space:
mode:
authorrsiddharth <s@ricketyspace.net>2016-10-30 19:46:27 +0000
committerrsiddharth <s@ricketyspace.net>2016-10-30 19:48:20 +0000
commit95d6e1427dad0a8844080b91fdd91385a52a7c6f (patch)
treea7fbccce932bba3b1e203cc85473884d780ab9b8 /gd_diff.py
parentcf4d1f9279f88deb2d920f9fc611d29378168a87 (diff)
Add `slurp_fields_from_readme` function.
* gd_diff.py (slurp_fields_from_readme): New function. * tests/test_gd_diff.py (test_slurp_fields_from_readme): Test method for `slurp_fields_from_readme`
Diffstat (limited to 'gd_diff.py')
-rw-r--r--gd_diff.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/gd_diff.py b/gd_diff.py
index 4709d30..8d332f4 100644
--- a/gd_diff.py
+++ b/gd_diff.py
@@ -7,6 +7,7 @@
# <https://creativecommons.org/publicdomain/zero/1.0>
import os
+import re
import shlex
import sys
@@ -143,3 +144,32 @@ def read_gns_readme(release, pkg, local_dir):
readme_content = read_file(readme_path)
return readme_content
+
+
+def slurp_fields_from_readme(content):
+ """Returns dict containing fields slurped from `content`
+
+ - If a field is not defined or if its value is empty in the
+ `content`, then its corresponding value in the dict will be None.
+
+ """
+ # list of recognized fields.
+ field_list = [
+ 'Change-Type',
+ 'Changed-From-Debian',
+ ]
+
+ field_values = {}
+ for field in field_list:
+ pattern = r'{}:[ ]*(.+)'.format(field)
+ field_pattern = re.compile(pattern)
+ field_match = field_pattern.search(content)
+
+ if (field_match and
+ field_match.group(1) and
+ field_match.group(1).strip()):
+ field_values[field] = field_match.group(1).strip()
+ else:
+ field_values[field] = None
+
+ return field_values