9 PLUGIN_SEARCH_PATHS = [
10 os.path.join(os.path.dirname(__file__), "plugins/"),
19 class CliEntry(object):
24 def set_value(self, value):
34 def parse_command(userInput):
35 return OPERATIONS[userInput.strip()]
38 def ambiguous_parse(calc, userInput):
40 Node = parse_command(userInput)
41 calc.apply_operation(Node)
49 stack = history.CalcHistory()
50 rpnCalc = history.RpnCalcHistory(
52 entry, history.ErrorWarning(),
56 userInput = raw_input(">")
57 isUsed = ambiguous_parse(rpnCalc, userInput)
59 entry.set_value(userInput)
64 print "\t= %s" % str(node)
65 print "\t~= %s" % str(node.simplify(**CONSTANTS))
69 constantPlugins = plugin_utils.ConstantPluginManager()
70 constantPlugins.add_path(*PLUGIN_SEARCH_PATHS)
71 constantPlugins.enable_plugin(constantPlugins.lookup_plugin("Builtin"))
72 CONSTANTS.update(constantPlugins.constants)
74 operatorPlugins = plugin_utils.OperatorPluginManager()
75 operatorPlugins.add_path(*PLUGIN_SEARCH_PATHS)
76 operatorPlugins.enable_plugin(operatorPlugins.lookup_plugin("Builtin"))
77 OPERATIONS.update(operatorPlugins.operators)
81 if __name__ == "__main__":