From e5259a4559dd5843af77442c629a51039fa74dff Mon Sep 17 00:00:00 2001 From: Shubham Upreti Date: Tue, 1 Sep 2020 18:32:24 +0530 Subject: [PATCH 1/2] Parser for github issues created --- src/meetup_manager/meetup_manager/parser.py | 41 +++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/meetup_manager/meetup_manager/parser.py diff --git a/src/meetup_manager/meetup_manager/parser.py b/src/meetup_manager/meetup_manager/parser.py new file mode 100644 index 0000000..d13ba34 --- /dev/null +++ b/src/meetup_manager/meetup_manager/parser.py @@ -0,0 +1,41 @@ +import json +import re + + +def parser(issue: str): + ''' + Extracts out: + - Title of the talk + - Abstract + - Category + - Duration + - Level of Audience + - Speaker's Bio + ''' + + # Regex for comments + comments = r'(\<|\d+\.|One).+(-|\>|\.)$' + details = re.sub(comments, '', issue, flags=re.M).strip() + + issue = re.split(r'\*\*.+\*\*', details, 7, flags=re.M) + talk_details = { + 'title': None, + 'abstract': None, + 'category': None, + 'duration': None, + 'level': None, + 'bio': None, + 'pre-req': None + } + + j = 1 # Index zero in list is empty + for i in talk_details.keys(): + if j < len(issue): + talk_details[i] = issue[j].strip() + j += 1 + else: + break + + talk_details = json.dumps(talk_details) + + return json.loads(talk_details) From dfb9cf292d10b309798919d9c188dc29613c63aa Mon Sep 17 00:00:00 2001 From: Shubham Upreti Date: Sat, 12 Sep 2020 14:37:28 +0530 Subject: [PATCH 2/2] Review implemented --- src/meetup_manager/meetup_manager/parser.py | 28 ++++++++++----------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/meetup_manager/meetup_manager/parser.py b/src/meetup_manager/meetup_manager/parser.py index d13ba34..f615a78 100644 --- a/src/meetup_manager/meetup_manager/parser.py +++ b/src/meetup_manager/meetup_manager/parser.py @@ -3,7 +3,7 @@ def parser(issue: str): - ''' + """ Extracts out: - Title of the talk - Abstract @@ -11,21 +11,21 @@ def parser(issue: str): - Duration - Level of Audience - Speaker's Bio - ''' + """ # Regex for comments - comments = r'(\<|\d+\.|One).+(-|\>|\.)$' - details = re.sub(comments, '', issue, flags=re.M).strip() + comments = r"(\<|\d+\.|One).+(-|\>|\.)$" + details = re.sub(comments, "", issue, flags=re.M).strip() - issue = re.split(r'\*\*.+\*\*', details, 7, flags=re.M) + issue = re.split(r"\*\*.+\*\*", details, 7, flags=re.M) talk_details = { - 'title': None, - 'abstract': None, - 'category': None, - 'duration': None, - 'level': None, - 'bio': None, - 'pre-req': None + "title": None, + "abstract": None, + "category": None, + "duration": None, + "level": None, + "bio": None, + "pre-req": None, } j = 1 # Index zero in list is empty @@ -36,6 +36,4 @@ def parser(issue: str): else: break - talk_details = json.dumps(talk_details) - - return json.loads(talk_details) + return json.dumps(talk_details)