def run_module(self, module, update, vars={}): interpreter = self.interpreter_constructor() module = interpreter.bind_module("jpath", module) wrapped_vars = utils.singleton(translate.json_to_jpath(vars)) result = module.call_with_values(self.make_context(), [wrapped_vars]) result = self.process_result(result, update) return result
def run_query(self, query, update, vars={}): interpreter = self.interpreter_constructor() module = interpreter.get_binder("jpath").create_query(query) wrapped_vars = utils.singleton(translate.json_to_jpath(vars)) result = module.call_with_values(self.make_context(), [wrapped_vars]) result = self.process_result(result, update) return result
def call(self, module_name, function_name, *args): interpreter = self.interpreter_constructor() module = interpreter.bind_module("jpath", module_name) function = module.get_function(function_name) wrapped_args = [translate.json_to_jpath(v) for v in args] result = function.call_with_values(self.make_context(), wrapped_args) return translate.jpath_to_json(result)