44 lines
987 B
Python
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!")
|