blob: d47301b6fb0042356a64eb3266598ad2bfc5b964 [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
import sys
import copy
from .traversal import Traversal
from .traversal import TraversalStrategies
from .strategies import VertexProgramStrategy
from .traversal import Bytecode
from ..driver.remote_connection import RemoteStrategy
from .. import statics
from ..statics import long
class GraphTraversalSource(object):
def __init__(self, graph, traversal_strategies, bytecode=None):
self.graph = graph
self.traversal_strategies = traversal_strategies
if bytecode is None:
bytecode = Bytecode()
self.bytecode = bytecode
self.graph_traversal = GraphTraversal
def __repr__(self):
return "graphtraversalsource[" + str(self.graph) + "]"
def get_graph_traversal_source(self):
return self.__class__(self.graph, TraversalStrategies(self.traversal_strategies), Bytecode(self.bytecode))
def get_graph_traversal(self):
return self.graph_traversal(self.graph, self.traversal_strategies, Bytecode(self.bytecode))
def withBulk(self, *args):
source = self.get_graph_traversal_source()
source.bytecode.add_source("withBulk", *args)
return source
def withPath(self, *args):
source = self.get_graph_traversal_source()
source.bytecode.add_source("withPath", *args)
return source
def withSack(self, *args):
source = self.get_graph_traversal_source()
source.bytecode.add_source("withSack", *args)
return source
def withSideEffect(self, *args):
source = self.get_graph_traversal_source()
source.bytecode.add_source("withSideEffect", *args)
return source
def withStrategies(self, *args):
source = self.get_graph_traversal_source()
source.bytecode.add_source("withStrategies", *args)
return source
def with_(self, *args):
source = self.get_graph_traversal_source()
source.bytecode.add_source("with", *args)
return source
def withoutStrategies(self, *args):
source = self.get_graph_traversal_source()
source.bytecode.add_source("withoutStrategies", *args)
return source
def withRemote(self, remote_connection):
source = self.get_graph_traversal_source()
source.traversal_strategies.add_strategies([RemoteStrategy(remote_connection)])
return source
def withComputer(self, graph_computer=None, workers=None, result=None, persist=None, vertices=None,
edges=None, configuration=None):
return self.withStrategies(VertexProgramStrategy(graph_computer, workers, result, persist, vertices,
edges, configuration))
def E(self, *args):
traversal = self.get_graph_traversal()
traversal.bytecode.add_step("E", *args)
return traversal
def V(self, *args):
traversal = self.get_graph_traversal()
traversal.bytecode.add_step("V", *args)
return traversal
def addE(self, *args):
traversal = self.get_graph_traversal()
traversal.bytecode.add_step("addE", *args)
return traversal
def addV(self, *args):
traversal = self.get_graph_traversal()
traversal.bytecode.add_step("addV", *args)
return traversal
def inject(self, *args):
traversal = self.get_graph_traversal()
traversal.bytecode.add_step("inject", *args)
return traversal
def io(self, *args):
traversal = self.get_graph_traversal()
traversal.bytecode.add_step("io", *args)
return traversal
class GraphTraversal(Traversal):
def __init__(self, graph, traversal_strategies, bytecode):
super(GraphTraversal, self).__init__(graph, traversal_strategies, bytecode)
def __getitem__(self, index):
if isinstance(index, int):
return self.range(long(index), long(index + 1))
elif isinstance(index, slice):
low = long(0) if index.start is None else long(index.start)
high = long(sys.maxsize) if index.stop is None else long(index.stop)
if low == long(0):
return self.limit(high)
else:
return self.range(low,high)
else:
raise TypeError("Index must be int or slice")
def __getattr__(self, key):
return self.values(key)
def clone(self):
return GraphTraversal(self.graph, self.traversal_strategies, copy.deepcopy(self.bytecode))
def V(self, *args):
self.bytecode.add_step("V", *args)
return self
def addE(self, *args):
self.bytecode.add_step("addE", *args)
return self
def addV(self, *args):
self.bytecode.add_step("addV", *args)
return self
def aggregate(self, *args):
self.bytecode.add_step("aggregate", *args)
return self
def and_(self, *args):
self.bytecode.add_step("and", *args)
return self
def as_(self, *args):
self.bytecode.add_step("as", *args)
return self
def barrier(self, *args):
self.bytecode.add_step("barrier", *args)
return self
def both(self, *args):
self.bytecode.add_step("both", *args)
return self
def bothE(self, *args):
self.bytecode.add_step("bothE", *args)
return self
def bothV(self, *args):
self.bytecode.add_step("bothV", *args)
return self
def branch(self, *args):
self.bytecode.add_step("branch", *args)
return self
def by(self, *args):
self.bytecode.add_step("by", *args)
return self
def cap(self, *args):
self.bytecode.add_step("cap", *args)
return self
def choose(self, *args):
self.bytecode.add_step("choose", *args)
return self
def coalesce(self, *args):
self.bytecode.add_step("coalesce", *args)
return self
def coin(self, *args):
self.bytecode.add_step("coin", *args)
return self
def connectedComponent(self, *args):
self.bytecode.add_step("connectedComponent", *args)
return self
def constant(self, *args):
self.bytecode.add_step("constant", *args)
return self
def count(self, *args):
self.bytecode.add_step("count", *args)
return self
def cyclicPath(self, *args):
self.bytecode.add_step("cyclicPath", *args)
return self
def dedup(self, *args):
self.bytecode.add_step("dedup", *args)
return self
def drop(self, *args):
self.bytecode.add_step("drop", *args)
return self
def elementMap(self, *args):
self.bytecode.add_step("elementMap", *args)
return self
def emit(self, *args):
self.bytecode.add_step("emit", *args)
return self
def filter_(self, *args):
self.bytecode.add_step("filter", *args)
return self
def flatMap(self, *args):
self.bytecode.add_step("flatMap", *args)
return self
def fold(self, *args):
self.bytecode.add_step("fold", *args)
return self
def from_(self, *args):
self.bytecode.add_step("from", *args)
return self
def group(self, *args):
self.bytecode.add_step("group", *args)
return self
def groupCount(self, *args):
self.bytecode.add_step("groupCount", *args)
return self
def has(self, *args):
self.bytecode.add_step("has", *args)
return self
def hasId(self, *args):
self.bytecode.add_step("hasId", *args)
return self
def hasKey(self, *args):
self.bytecode.add_step("hasKey", *args)
return self
def hasLabel(self, *args):
self.bytecode.add_step("hasLabel", *args)
return self
def hasNot(self, *args):
self.bytecode.add_step("hasNot", *args)
return self
def hasValue(self, *args):
self.bytecode.add_step("hasValue", *args)
return self
def id_(self, *args):
self.bytecode.add_step("id", *args)
return self
def identity(self, *args):
self.bytecode.add_step("identity", *args)
return self
def inE(self, *args):
self.bytecode.add_step("inE", *args)
return self
def inV(self, *args):
self.bytecode.add_step("inV", *args)
return self
def in_(self, *args):
self.bytecode.add_step("in", *args)
return self
def index(self, *args):
self.bytecode.add_step("index", *args)
return self
def inject(self, *args):
self.bytecode.add_step("inject", *args)
return self
def is_(self, *args):
self.bytecode.add_step("is", *args)
return self
def key(self, *args):
self.bytecode.add_step("key", *args)
return self
def label(self, *args):
self.bytecode.add_step("label", *args)
return self
def limit(self, *args):
self.bytecode.add_step("limit", *args)
return self
def local(self, *args):
self.bytecode.add_step("local", *args)
return self
def loops(self, *args):
self.bytecode.add_step("loops", *args)
return self
def map(self, *args):
self.bytecode.add_step("map", *args)
return self
def match(self, *args):
self.bytecode.add_step("match", *args)
return self
def math(self, *args):
self.bytecode.add_step("math", *args)
return self
def max_(self, *args):
self.bytecode.add_step("max", *args)
return self
def mean(self, *args):
self.bytecode.add_step("mean", *args)
return self
def min_(self, *args):
self.bytecode.add_step("min", *args)
return self
def not_(self, *args):
self.bytecode.add_step("not", *args)
return self
def option(self, *args):
self.bytecode.add_step("option", *args)
return self
def optional(self, *args):
self.bytecode.add_step("optional", *args)
return self
def or_(self, *args):
self.bytecode.add_step("or", *args)
return self
def order(self, *args):
self.bytecode.add_step("order", *args)
return self
def otherV(self, *args):
self.bytecode.add_step("otherV", *args)
return self
def out(self, *args):
self.bytecode.add_step("out", *args)
return self
def outE(self, *args):
self.bytecode.add_step("outE", *args)
return self
def outV(self, *args):
self.bytecode.add_step("outV", *args)
return self
def pageRank(self, *args):
self.bytecode.add_step("pageRank", *args)
return self
def path(self, *args):
self.bytecode.add_step("path", *args)
return self
def peerPressure(self, *args):
self.bytecode.add_step("peerPressure", *args)
return self
def profile(self, *args):
self.bytecode.add_step("profile", *args)
return self
def program(self, *args):
self.bytecode.add_step("program", *args)
return self
def project(self, *args):
self.bytecode.add_step("project", *args)
return self
def properties(self, *args):
self.bytecode.add_step("properties", *args)
return self
def property(self, *args):
self.bytecode.add_step("property", *args)
return self
def propertyMap(self, *args):
self.bytecode.add_step("propertyMap", *args)
return self
def range_(self, *args):
self.bytecode.add_step("range", *args)
return self
def read(self, *args):
self.bytecode.add_step("read", *args)
return self
def repeat(self, *args):
self.bytecode.add_step("repeat", *args)
return self
def sack(self, *args):
self.bytecode.add_step("sack", *args)
return self
def sample(self, *args):
self.bytecode.add_step("sample", *args)
return self
def select(self, *args):
self.bytecode.add_step("select", *args)
return self
def shortestPath(self, *args):
self.bytecode.add_step("shortestPath", *args)
return self
def sideEffect(self, *args):
self.bytecode.add_step("sideEffect", *args)
return self
def simplePath(self, *args):
self.bytecode.add_step("simplePath", *args)
return self
def skip(self, *args):
self.bytecode.add_step("skip", *args)
return self
def store(self, *args):
self.bytecode.add_step("store", *args)
return self
def subgraph(self, *args):
self.bytecode.add_step("subgraph", *args)
return self
def sum_(self, *args):
self.bytecode.add_step("sum", *args)
return self
def tail(self, *args):
self.bytecode.add_step("tail", *args)
return self
def timeLimit(self, *args):
self.bytecode.add_step("timeLimit", *args)
return self
def times(self, *args):
self.bytecode.add_step("times", *args)
return self
def to(self, *args):
self.bytecode.add_step("to", *args)
return self
def toE(self, *args):
self.bytecode.add_step("toE", *args)
return self
def toV(self, *args):
self.bytecode.add_step("toV", *args)
return self
def tree(self, *args):
self.bytecode.add_step("tree", *args)
return self
def unfold(self, *args):
self.bytecode.add_step("unfold", *args)
return self
def union(self, *args):
self.bytecode.add_step("union", *args)
return self
def until(self, *args):
self.bytecode.add_step("until", *args)
return self
def value(self, *args):
self.bytecode.add_step("value", *args)
return self
def valueMap(self, *args):
self.bytecode.add_step("valueMap", *args)
return self
def values(self, *args):
self.bytecode.add_step("values", *args)
return self
def where(self, *args):
self.bytecode.add_step("where", *args)
return self
def with_(self, *args):
self.bytecode.add_step("with", *args)
return self
def write(self, *args):
self.bytecode.add_step("write", *args)
return self
# Deprecated - prefer the underscore suffixed versions e.g filter_()
def filter(self, *args):
self.bytecode.add_step("filter", *args)
return self
def id(self, *args):
self.bytecode.add_step("id", *args)
return self
def max(self, *args):
self.bytecode.add_step("max", *args)
return self
def min(self, *args):
self.bytecode.add_step("min", *args)
return self
def range(self, *args):
self.bytecode.add_step("range", *args)
return self
def sum(self, *args):
self.bytecode.add_step("sum", *args)
return self
class __(object):
graph_traversal = GraphTraversal
@classmethod
def start(cls):
return GraphTraversal(None, None, Bytecode())
@classmethod
def __(cls, *args):
return __.inject(*args)
@classmethod
def V(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).V(*args)
@classmethod
def addE(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).addE(*args)
@classmethod
def addV(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).addV(*args)
@classmethod
def aggregate(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).aggregate(*args)
@classmethod
def and_(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).and_(*args)
@classmethod
def as_(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).as_(*args)
@classmethod
def barrier(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).barrier(*args)
@classmethod
def both(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).both(*args)
@classmethod
def bothE(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).bothE(*args)
@classmethod
def bothV(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).bothV(*args)
@classmethod
def branch(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).branch(*args)
@classmethod
def cap(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).cap(*args)
@classmethod
def choose(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).choose(*args)
@classmethod
def coalesce(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).coalesce(*args)
@classmethod
def coin(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).coin(*args)
@classmethod
def constant(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).constant(*args)
@classmethod
def count(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).count(*args)
@classmethod
def cyclicPath(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).cyclicPath(*args)
@classmethod
def dedup(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).dedup(*args)
@classmethod
def drop(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).drop(*args)
@classmethod
def elementMap(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).elementMap(*args)
@classmethod
def emit(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).emit(*args)
@classmethod
def filter_(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).filter_(*args)
@classmethod
def flatMap(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).flatMap(*args)
@classmethod
def fold(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).fold(*args)
@classmethod
def group(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).group(*args)
@classmethod
def groupCount(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).groupCount(*args)
@classmethod
def has(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).has(*args)
@classmethod
def hasId(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).hasId(*args)
@classmethod
def hasKey(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).hasKey(*args)
@classmethod
def hasLabel(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).hasLabel(*args)
@classmethod
def hasNot(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).hasNot(*args)
@classmethod
def hasValue(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).hasValue(*args)
@classmethod
def id_(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).id_(*args)
@classmethod
def identity(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).identity(*args)
@classmethod
def inE(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).inE(*args)
@classmethod
def inV(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).inV(*args)
@classmethod
def in_(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).in_(*args)
@classmethod
def index(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).index(*args)
@classmethod
def inject(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).inject(*args)
@classmethod
def is_(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).is_(*args)
@classmethod
def key(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).key(*args)
@classmethod
def label(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).label(*args)
@classmethod
def limit(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).limit(*args)
@classmethod
def local(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).local(*args)
@classmethod
def loops(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).loops(*args)
@classmethod
def map(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).map(*args)
@classmethod
def match(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).match(*args)
@classmethod
def math(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).math(*args)
@classmethod
def max_(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).max_(*args)
@classmethod
def mean(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).mean(*args)
@classmethod
def min_(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).min_(*args)
@classmethod
def not_(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).not_(*args)
@classmethod
def optional(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).optional(*args)
@classmethod
def or_(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).or_(*args)
@classmethod
def order(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).order(*args)
@classmethod
def otherV(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).otherV(*args)
@classmethod
def out(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).out(*args)
@classmethod
def outE(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).outE(*args)
@classmethod
def outV(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).outV(*args)
@classmethod
def path(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).path(*args)
@classmethod
def project(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).project(*args)
@classmethod
def properties(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).properties(*args)
@classmethod
def property(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).property(*args)
@classmethod
def propertyMap(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).propertyMap(*args)
@classmethod
def range_(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).range_(*args)
@classmethod
def repeat(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).repeat(*args)
@classmethod
def sack(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).sack(*args)
@classmethod
def sample(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).sample(*args)
@classmethod
def select(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).select(*args)
@classmethod
def sideEffect(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).sideEffect(*args)
@classmethod
def simplePath(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).simplePath(*args)
@classmethod
def skip(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).skip(*args)
@classmethod
def store(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).store(*args)
@classmethod
def subgraph(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).subgraph(*args)
@classmethod
def sum_(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).sum_(*args)
@classmethod
def tail(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).tail(*args)
@classmethod
def timeLimit(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).timeLimit(*args)
@classmethod
def times(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).times(*args)
@classmethod
def to(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).to(*args)
@classmethod
def toE(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).toE(*args)
@classmethod
def toV(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).toV(*args)
@classmethod
def tree(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).tree(*args)
@classmethod
def unfold(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).unfold(*args)
@classmethod
def union(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).union(*args)
@classmethod
def until(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).until(*args)
@classmethod
def value(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).value(*args)
@classmethod
def valueMap(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).valueMap(*args)
@classmethod
def values(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).values(*args)
@classmethod
def where(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).where(*args)
# Deprecated - prefer the underscore suffixed versions e.g filter_()
@classmethod
def filter(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).filter_(*args)
@classmethod
def id(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).id_(*args)
@classmethod
def max(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).max_(*args)
@classmethod
def min(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).min_(*args)
@classmethod
def range(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).range_(*args)
@classmethod
def sum(cls, *args):
return cls.graph_traversal(None, None, Bytecode()).sum_(*args)
def V(*args):
return __.V(*args)
def addE(*args):
return __.addE(*args)
def addV(*args):
return __.addV(*args)
def aggregate(*args):
return __.aggregate(*args)
def and_(*args):
return __.and_(*args)
def as_(*args):
return __.as_(*args)
def barrier(*args):
return __.barrier(*args)
def both(*args):
return __.both(*args)
def bothE(*args):
return __.bothE(*args)
def bothV(*args):
return __.bothV(*args)
def branch(*args):
return __.branch(*args)
def cap(*args):
return __.cap(*args)
def choose(*args):
return __.choose(*args)
def coalesce(*args):
return __.coalesce(*args)
def coin(*args):
return __.coin(*args)
def constant(*args):
return __.constant(*args)
def count(*args):
return __.count(*args)
def cyclicPath(*args):
return __.cyclicPath(*args)
def dedup(*args):
return __.dedup(*args)
def drop(*args):
return __.drop(*args)
def elementMap(*args):
return __.elementMap(*args)
def emit(*args):
return __.emit(*args)
def filter_(*args):
return __.filter_(*args)
def flatMap(*args):
return __.flatMap(*args)
def fold(*args):
return __.fold(*args)
def group(*args):
return __.group(*args)
def groupCount(*args):
return __.groupCount(*args)
def has(*args):
return __.has(*args)
def hasId(*args):
return __.hasId(*args)
def hasKey(*args):
return __.hasKey(*args)
def hasLabel(*args):
return __.hasLabel(*args)
def hasNot(*args):
return __.hasNot(*args)
def hasValue(*args):
return __.hasValue(*args)
def id_(*args):
return __.id_(*args)
def identity(*args):
return __.identity(*args)
def inE(*args):
return __.inE(*args)
def inV(*args):
return __.inV(*args)
def in_(*args):
return __.in_(*args)
def index(*args):
return __.index(*args)
def inject(*args):
return __.inject(*args)
def is_(*args):
return __.is_(*args)
def key(*args):
return __.key(*args)
def label(*args):
return __.label(*args)
def limit(*args):
return __.limit(*args)
def local(*args):
return __.local(*args)
def loops(*args):
return __.loops(*args)
def map(*args):
return __.map(*args)
def match(*args):
return __.match(*args)
def math(*args):
return __.math(*args)
def max_(*args):
return __.max_(*args)
def mean(*args):
return __.mean(*args)
def min_(*args):
return __.min_(*args)
def not_(*args):
return __.not_(*args)
def optional(*args):
return __.optional(*args)
def or_(*args):
return __.or_(*args)
def order(*args):
return __.order(*args)
def otherV(*args):
return __.otherV(*args)
def out(*args):
return __.out(*args)
def outE(*args):
return __.outE(*args)
def outV(*args):
return __.outV(*args)
def path(*args):
return __.path(*args)
def project(*args):
return __.project(*args)
def properties(*args):
return __.properties(*args)
def property(*args):
return __.property(*args)
def propertyMap(*args):
return __.propertyMap(*args)
def range_(*args):
return __.range_(*args)
def repeat(*args):
return __.repeat(*args)
def sack(*args):
return __.sack(*args)
def sample(*args):
return __.sample(*args)
def select(*args):
return __.select(*args)
def sideEffect(*args):
return __.sideEffect(*args)
def simplePath(*args):
return __.simplePath(*args)
def skip(*args):
return __.skip(*args)
def store(*args):
return __.store(*args)
def subgraph(*args):
return __.subgraph(*args)
def sum_(*args):
return __.sum_(*args)
def tail(*args):
return __.tail(*args)
def timeLimit(*args):
return __.timeLimit(*args)
def times(*args):
return __.times(*args)
def to(*args):
return __.to(*args)
def toE(*args):
return __.toE(*args)
def toV(*args):
return __.toV(*args)
def tree(*args):
return __.tree(*args)
def unfold(*args):
return __.unfold(*args)
def union(*args):
return __.union(*args)
def until(*args):
return __.until(*args)
def value(*args):
return __.value(*args)
def valueMap(*args):
return __.valueMap(*args)
def values(*args):
return __.values(*args)
def where(*args):
return __.where(*args)
# Deprecated - prefer the underscore suffixed versions e.g filter_()
def filter(*args):
return __.filter_(*args)
def id(*args):
return __.id_(*args)
def max(*args):
return __.max_(*args)
def min(*args):
return __.min_(*args)
def range(*args):
return __.range_(*args)
def sum(*args):
return __.sum_(*args)
statics.add_static('V', V)
statics.add_static('addE', addE)
statics.add_static('addV', addV)
statics.add_static('aggregate', aggregate)
statics.add_static('and_', and_)
statics.add_static('as_', as_)
statics.add_static('barrier', barrier)
statics.add_static('both', both)
statics.add_static('bothE', bothE)
statics.add_static('bothV', bothV)
statics.add_static('branch', branch)
statics.add_static('cap', cap)
statics.add_static('choose', choose)
statics.add_static('coalesce', coalesce)
statics.add_static('coin', coin)
statics.add_static('constant', constant)
statics.add_static('count', count)
statics.add_static('cyclicPath', cyclicPath)
statics.add_static('dedup', dedup)
statics.add_static('drop', drop)
statics.add_static('elementMap', elementMap)
statics.add_static('emit', emit)
statics.add_static('filter_', filter_)
statics.add_static('flatMap', flatMap)
statics.add_static('fold', fold)
statics.add_static('group', group)
statics.add_static('groupCount', groupCount)
statics.add_static('has', has)
statics.add_static('hasId', hasId)
statics.add_static('hasKey', hasKey)
statics.add_static('hasLabel', hasLabel)
statics.add_static('hasNot', hasNot)
statics.add_static('hasValue', hasValue)
statics.add_static('id_', id_)
statics.add_static('identity', identity)
statics.add_static('inE', inE)
statics.add_static('inV', inV)
statics.add_static('in_', in_)
statics.add_static('index', index)
statics.add_static('inject', inject)
statics.add_static('is_', is_)
statics.add_static('key', key)
statics.add_static('label', label)
statics.add_static('limit', limit)
statics.add_static('local', local)
statics.add_static('loops', loops)
statics.add_static('map', map)
statics.add_static('match', match)
statics.add_static('math', math)
statics.add_static('max_', max_)
statics.add_static('mean', mean)
statics.add_static('min_', min_)
statics.add_static('not_', not_)
statics.add_static('optional', optional)
statics.add_static('or_', or_)
statics.add_static('order', order)
statics.add_static('otherV', otherV)
statics.add_static('out', out)
statics.add_static('outE', outE)
statics.add_static('outV', outV)
statics.add_static('path', path)
statics.add_static('project', project)
statics.add_static('properties', properties)
statics.add_static('property', property)
statics.add_static('propertyMap', propertyMap)
statics.add_static('range_', range_)
statics.add_static('repeat', repeat)
statics.add_static('sack', sack)
statics.add_static('sample', sample)
statics.add_static('select', select)
statics.add_static('sideEffect', sideEffect)
statics.add_static('simplePath', simplePath)
statics.add_static('skip', skip)
statics.add_static('store', store)
statics.add_static('subgraph', subgraph)
statics.add_static('sum_', sum_)
statics.add_static('tail', tail)
statics.add_static('timeLimit', timeLimit)
statics.add_static('times', times)
statics.add_static('to', to)
statics.add_static('toE', toE)
statics.add_static('toV', toV)
statics.add_static('tree', tree)
statics.add_static('unfold', unfold)
statics.add_static('union', union)
statics.add_static('until', until)
statics.add_static('value', value)
statics.add_static('valueMap', valueMap)
statics.add_static('values', values)
statics.add_static('where', where)
# Deprecated - prefer the underscore suffixed versions e.g filter_()
statics.add_static('filter', filter)
statics.add_static('id', id)
statics.add_static('max', max)
statics.add_static('min', min)
statics.add_static('range', range)
statics.add_static('sum', sum)