import logging from .knowledge_base import KnowledgeBase from .visualization import ( show_knowledge, show_samples, ) from .tests import gac_100 from .modifiable_property import ( ModifiableProperty, ModifiablePropertyWithAst, is_modifiable_property, ) bye_phrases = ['bye', 'exit'] def main(): logging.getLogger().setLevel(logging.INFO) knowledge = gac_100.main() logging.getLogger().setLevel(logging.DEBUG) while True: try: data = input("> ").strip() except EOFError: print("bye") break if data.lower() in bye_phrases: break if not data: continue if data == '/show': show_knowledge(knowledge) continue elif data == '/samples': show_samples(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!")