From e2329d45b952ea4ae48d7ee91faf504b6b490583 Mon Sep 17 00:00:00 2001 From: Amanda Muniz Date: Thu, 22 Apr 2021 14:09:11 -0300 Subject: [PATCH] Applying SOLID and CLEAN CODE --- src/api/models/entity.py | 1 - src/api/models/intent.py | 4 ---- src/api/models/utter.py | 4 ---- src/api/parser.py | 42 +++++++++++++++++----------------------- 4 files changed, 18 insertions(+), 33 deletions(-) delete mode 100644 src/api/models/entity.py diff --git a/src/api/models/entity.py b/src/api/models/entity.py deleted file mode 100644 index f87f5c14..00000000 --- a/src/api/models/entity.py +++ /dev/null @@ -1 +0,0 @@ -# TODO \ No newline at end of file diff --git a/src/api/models/intent.py b/src/api/models/intent.py index 7419de1f..742a4a12 100644 --- a/src/api/models/intent.py +++ b/src/api/models/intent.py @@ -19,10 +19,6 @@ class Meta: fields = ['id', 'name', 'samples'] class IntentListSerializer(serializers.ModelSerializer): - # def to_representation(self, obj): - # ret = super().to_representation(obj) - # ret['type'] = 'intent' - # return ret class Meta: model = Intent diff --git a/src/api/models/utter.py b/src/api/models/utter.py index e0a387dc..16319b98 100644 --- a/src/api/models/utter.py +++ b/src/api/models/utter.py @@ -22,10 +22,6 @@ class Meta: fields = ['id', 'name', 'multiple_alternatives', 'alternatives'] class UtterListSerializer(serializers.ModelSerializer): - # def to_representation(self, obj): - # ret = super().to_representation(obj) - # ret['type'] = 'utter' - # return ret class Meta: model = Utter diff --git a/src/api/parser.py b/src/api/parser.py index dcc1fd66..6fa04c84 100644 --- a/src/api/parser.py +++ b/src/api/parser.py @@ -8,6 +8,7 @@ def format_utter(utter_name): else: return utter_name + class StoryParser: """ Generate a markdown string from a given @@ -17,19 +18,17 @@ def parse(self, story: Story): name = f'## {unidecode(story.name)}\n' body = '' - for c in story.content: - if c['type'] == "intent": - body += self._intent_parser(c) - elif c['type'] == "utter": - body += '\t' + self._utter_parser(c) + for content in story.content: + if content['type'] == "intent": + body += self._intent_parser(content) + elif content['type'] == "utter": + body += '\t' + self._utter_parser(content) return name + body + '\n' - def _intent_parser(self, intent): return f'* {unidecode(intent["name"])}\n' - - + def _utter_parser(self, utter): return f'- {unidecode(format_utter(utter["name"]))}\n' @@ -43,8 +42,8 @@ def parse(self, intent: Intent): name = f'## intent:{unidecode(intent.name)}\n' content = '' - for s in intent.samples: - content += f'- {s}\n' + for sample in intent.samples: + content += f'- {sample}\n' return name + content + '\n' @@ -63,38 +62,33 @@ def parse(self, project: Project): if not intents and not utters: return '' - content += self._generic_list_parser('intents', [unidecode(i.name) for i in intents]) - # content += self._generic_list_parser('entities', [e.name for e in entities]) + content += self._generic_list_parser('intents', [unidecode(intent.name) for intent in intents]) content += self._templates_parser(utters) - content += self._generic_list_parser('actions', [unidecode(format_utter(u.name)) for u in utters]) + content += self._generic_list_parser('actions', [unidecode(format_utter(utter.name)) for utter in utters]) return content def _generic_list_parser(self, name: str, elements: list): result = f'{unidecode(name)}:\n' - for e in elements: - result += f' - {e}\n' + for element in elements: + result += f' - {element}\n' return result + '\n' - - - - def _templates_parser(self, utters: list): result = f'templates:\n' - for u in utters: + for utter in utters: ident = 2 * ' ' - utter_name = format_utter(u.name) + utter_name = format_utter(utter.name) result += f'{ident}{unidecode(utter_name)}:\n' - for texts in u.alternatives: + for texts in utter.alternatives: ident = 4 * ' ' result += f'{ident}- text: |\n' - for t in texts: + for text in texts: ident = 10 * ' ' - result += f'{ident}{t}\n' + result += f'{ident}{text}\n' result += f'\n' return result + '\n'