from jpath.query import interpreter, context from jpath.query.data import StandardNull from jpath.query.utils import create_number import os if __name__ == "__main__": i = interpreter.Interpreter() i.get_binder("jpath").add_path(os.path.expanduser("~")) m = i.bind_module("jpath", "/test.jpath") result = m.call_function(context.DynamicContext( StandardNull(), create_number(0), create_number(0)), []) print "\nQuery result was: " + result.to_jpath()
def position(dynamic, check=None): if check is None: return utils.create_number(dynamic.context_position) return utils.create_boolean( utils.get_single_instance(check, d.Number).get_as_int() == dynamic.context_position)
def count(dynamic, sequence=None): if sequence is None: return utils.create_number(dynamic.context_size) return sequence.get_size()
def size(dynamic): thing = dynamic.context_item if not isinstance(thing, (d.List, d.Object)): raise e.TypeException("Expected " + str(thing) + " to be a list or object") return utils.create_number(dynamic.context_item.get_size())