From d23329b019bd21147544915d388e578c509ca166 Mon Sep 17 00:00:00 2001 From: kenkeiras Date: Sun, 17 Sep 2017 22:01:59 -0400 Subject: [PATCH] Add cli base. --- naive-nlu/cli.py | 4 ++++ naive-nlu/tree_nlu/cli.py | 34 +++++++++++++++++++++++++++++ naive-nlu/tree_nlu/tests/basic.py | 1 + naive-nlu/tree_nlu/tests/gac_100.py | 1 + 4 files changed, 40 insertions(+) create mode 100644 naive-nlu/cli.py create mode 100644 naive-nlu/tree_nlu/cli.py diff --git a/naive-nlu/cli.py b/naive-nlu/cli.py new file mode 100644 index 0000000..b268191 --- /dev/null +++ b/naive-nlu/cli.py @@ -0,0 +1,4 @@ +from tree_nlu import cli + +if __name__ == '__main__': + cli.main() diff --git a/naive-nlu/tree_nlu/cli.py b/naive-nlu/tree_nlu/cli.py new file mode 100644 index 0000000..701347e --- /dev/null +++ b/naive-nlu/tree_nlu/cli.py @@ -0,0 +1,34 @@ +import logging +from .knowledge_base import KnowledgeBase +from .tests import gac_100 +from .modifiable_property import ( + ModifiableProperty, + ModifiablePropertyWithAst, + is_modifiable_property, +) + + +bye_phrases = ['bye', 'exit'] + +def main(): + knowledge = gac_100.main() + while True: + try: + data = input("> ").strip() + except EOFError: + print("bye") + break + if data.lower() in bye_phrases: + break + if not data: + continue + + ret = knowledge.process(data) + if ret: + result, _, _ = ret + if not is_modifiable_property(result): + print("<", result) + else: + result.setter() + print("OK") + print("< Bye!") diff --git a/naive-nlu/tree_nlu/tests/basic.py b/naive-nlu/tree_nlu/tests/basic.py index d5d959a..b570608 100644 --- a/naive-nlu/tree_nlu/tests/basic.py +++ b/naive-nlu/tree_nlu/tests/basic.py @@ -155,3 +155,4 @@ def main(): test_assumption(False, knowledge, queryFalse) test_assumption(True, knowledge, queryTrue) + return knowledge diff --git a/naive-nlu/tree_nlu/tests/gac_100.py b/naive-nlu/tree_nlu/tests/gac_100.py index 74adb20..d6c09a9 100644 --- a/naive-nlu/tree_nlu/tests/gac_100.py +++ b/naive-nlu/tree_nlu/tests/gac_100.py @@ -741,3 +741,4 @@ def main(): raise NotImplementedError('Example type: {}'.format(example_type)) print("\r\x1b[K", end='') + return knowledge