lang-model/naive-nlu/tree_nlu/cli.py
2017-09-20 21:04:15 -04:00

44 lines
987 B
Python

from .knowledge_base import KnowledgeBase
from .tests import gac_100
from .modifiable_property import (
ModifiableProperty,
ModifiablePropertyWithAst,
is_modifiable_property,
)
bye_phrases = ['bye', 'exit']
def debug(knowledge):
for key in knowledge.knowledge:
print("\x1b[1m{}\x1b[0m {}".format(key, knowledge.knowledge[key]))
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
if data == '/debug':
debug(knowledge)
continue
ret = knowledge.process(data)
if ret:
result, _, _ = ret
if not is_modifiable_property(result):
print("<", result)
else:
result.setter()
print("OK")
print("< Bye!")