You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2016/06/17 14:23:37 UTC
[1/5] tinkerpop git commit: cpython gitignore
Repository: tinkerpop
Updated Branches:
refs/heads/TINKERPOP-1278 3dc16ac53 -> ac08ae678
cpython gitignore
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/210d1a87
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/210d1a87
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/210d1a87
Branch: refs/heads/TINKERPOP-1278
Commit: 210d1a87fc0532b77ccf67bed57e149982b1e08a
Parents: f5925e7
Author: Leifur Halldor Asgeirsson <la...@zerofail.com>
Authored: Thu Jun 16 10:13:10 2016 -0400
Committer: Leifur Halldor Asgeirsson <la...@zerofail.com>
Committed: Thu Jun 16 13:01:37 2016 -0400
----------------------------------------------------------------------
gremlin-variant/src/main/jython/gremlin_python/.gitignore | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/210d1a87/gremlin-variant/src/main/jython/gremlin_python/.gitignore
----------------------------------------------------------------------
diff --git a/gremlin-variant/src/main/jython/gremlin_python/.gitignore b/gremlin-variant/src/main/jython/gremlin_python/.gitignore
new file mode 100644
index 0000000..2a33696
--- /dev/null
+++ b/gremlin-variant/src/main/jython/gremlin_python/.gitignore
@@ -0,0 +1,2 @@
+__pycache__/
+*.py[cdo]
[3/5] tinkerpop git commit: bindings are now 2-tuples: ('symbol',
value)
Posted by ok...@apache.org.
bindings are now 2-tuples: ('symbol', value)
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/aeefd010
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/aeefd010
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/aeefd010
Branch: refs/heads/TINKERPOP-1278
Commit: aeefd010ad6589741ecb201fe70ac4b558d5829b
Parents: 2ea48c4
Author: Leifur Halldor Asgeirsson <la...@zerofail.com>
Authored: Thu Jun 16 17:36:37 2016 -0400
Committer: Leifur Halldor Asgeirsson <la...@zerofail.com>
Committed: Thu Jun 16 17:36:37 2016 -0400
----------------------------------------------------------------------
.../python/GremlinPythonGenerator.groovy | 10 +-
.../jython/gremlin_python/gremlin_python.py | 406 +++++++++----------
.../jython/gremlin_python/groovy_translator.py | 4 +-
3 files changed, 210 insertions(+), 210 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/aeefd010/gremlin-variant/src/main/groovy/org/apache/tinkerpop/gremlin/python/GremlinPythonGenerator.groovy
----------------------------------------------------------------------
diff --git a/gremlin-variant/src/main/groovy/org/apache/tinkerpop/gremlin/python/GremlinPythonGenerator.groovy b/gremlin-variant/src/main/groovy/org/apache/tinkerpop/gremlin/python/GremlinPythonGenerator.groovy
index 37b72f1..29c5a33 100644
--- a/gremlin-variant/src/main/groovy/org/apache/tinkerpop/gremlin/python/GremlinPythonGenerator.groovy
+++ b/gremlin-variant/src/main/groovy/org/apache/tinkerpop/gremlin/python/GremlinPythonGenerator.groovy
@@ -177,8 +177,8 @@ builtInRange = range
""" def ${method}(self, *args):
self.translator.addStep(self, "${method}", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
@@ -239,9 +239,9 @@ builtInRange = range
self.parts = [self._process_arg(arg) for arg in args]
def _process_arg(self, arg):
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
- return Raw(next(iter(arg.keys())))
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
+ return Raw(arg[0])
else:
return Raw(arg)
""")
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/aeefd010/gremlin-variant/src/main/jython/gremlin_python/gremlin_python.py
----------------------------------------------------------------------
diff --git a/gremlin-variant/src/main/jython/gremlin_python/gremlin_python.py b/gremlin-variant/src/main/jython/gremlin_python/gremlin_python.py
index 6978ada..4a58dc5 100644
--- a/gremlin-variant/src/main/jython/gremlin_python/gremlin_python.py
+++ b/gremlin-variant/src/main/jython/gremlin_python/gremlin_python.py
@@ -120,800 +120,800 @@ class PythonGraphTraversal(object):
def V(self, *args):
self.translator.addStep(self, "V", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def _and(self, *args):
self.translator.addStep(self, "_and", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def _as(self, *args):
self.translator.addStep(self, "_as", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def _from(self, *args):
self.translator.addStep(self, "_from", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def _in(self, *args):
self.translator.addStep(self, "_in", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def _is(self, *args):
self.translator.addStep(self, "_is", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def _not(self, *args):
self.translator.addStep(self, "_not", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def _or(self, *args):
self.translator.addStep(self, "_or", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def addE(self, *args):
self.translator.addStep(self, "addE", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def addInE(self, *args):
self.translator.addStep(self, "addInE", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def addOutE(self, *args):
self.translator.addStep(self, "addOutE", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def addV(self, *args):
self.translator.addStep(self, "addV", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def aggregate(self, *args):
self.translator.addStep(self, "aggregate", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def asAdmin(self, *args):
self.translator.addStep(self, "asAdmin", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def barrier(self, *args):
self.translator.addStep(self, "barrier", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def both(self, *args):
self.translator.addStep(self, "both", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def bothE(self, *args):
self.translator.addStep(self, "bothE", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def bothV(self, *args):
self.translator.addStep(self, "bothV", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def branch(self, *args):
self.translator.addStep(self, "branch", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def by(self, *args):
self.translator.addStep(self, "by", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def cap(self, *args):
self.translator.addStep(self, "cap", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def choose(self, *args):
self.translator.addStep(self, "choose", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def coalesce(self, *args):
self.translator.addStep(self, "coalesce", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def coin(self, *args):
self.translator.addStep(self, "coin", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def constant(self, *args):
self.translator.addStep(self, "constant", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def count(self, *args):
self.translator.addStep(self, "count", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def cyclicPath(self, *args):
self.translator.addStep(self, "cyclicPath", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def dedup(self, *args):
self.translator.addStep(self, "dedup", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def drop(self, *args):
self.translator.addStep(self, "drop", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def emit(self, *args):
self.translator.addStep(self, "emit", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def filter(self, *args):
self.translator.addStep(self, "filter", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def flatMap(self, *args):
self.translator.addStep(self, "flatMap", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def fold(self, *args):
self.translator.addStep(self, "fold", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def group(self, *args):
self.translator.addStep(self, "group", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def groupCount(self, *args):
self.translator.addStep(self, "groupCount", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def groupV3d0(self, *args):
self.translator.addStep(self, "groupV3d0", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def has(self, *args):
self.translator.addStep(self, "has", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def hasId(self, *args):
self.translator.addStep(self, "hasId", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def hasKey(self, *args):
self.translator.addStep(self, "hasKey", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def hasLabel(self, *args):
self.translator.addStep(self, "hasLabel", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def hasNot(self, *args):
self.translator.addStep(self, "hasNot", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def hasValue(self, *args):
self.translator.addStep(self, "hasValue", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def id(self, *args):
self.translator.addStep(self, "id", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def identity(self, *args):
self.translator.addStep(self, "identity", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def inE(self, *args):
self.translator.addStep(self, "inE", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def inV(self, *args):
self.translator.addStep(self, "inV", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def inject(self, *args):
self.translator.addStep(self, "inject", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def iterate(self, *args):
self.translator.addStep(self, "iterate", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def key(self, *args):
self.translator.addStep(self, "key", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def label(self, *args):
self.translator.addStep(self, "label", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def limit(self, *args):
self.translator.addStep(self, "limit", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def local(self, *args):
self.translator.addStep(self, "local", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def loops(self, *args):
self.translator.addStep(self, "loops", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def map(self, *args):
self.translator.addStep(self, "map", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def mapKeys(self, *args):
self.translator.addStep(self, "mapKeys", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def mapValues(self, *args):
self.translator.addStep(self, "mapValues", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def match(self, *args):
self.translator.addStep(self, "match", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def max(self, *args):
self.translator.addStep(self, "max", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def mean(self, *args):
self.translator.addStep(self, "mean", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def min(self, *args):
self.translator.addStep(self, "min", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def option(self, *args):
self.translator.addStep(self, "option", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def optional(self, *args):
self.translator.addStep(self, "optional", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def order(self, *args):
self.translator.addStep(self, "order", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def otherV(self, *args):
self.translator.addStep(self, "otherV", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def out(self, *args):
self.translator.addStep(self, "out", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def outE(self, *args):
self.translator.addStep(self, "outE", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def outV(self, *args):
self.translator.addStep(self, "outV", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def pageRank(self, *args):
self.translator.addStep(self, "pageRank", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def path(self, *args):
self.translator.addStep(self, "path", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def peerPressure(self, *args):
self.translator.addStep(self, "peerPressure", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def profile(self, *args):
self.translator.addStep(self, "profile", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def program(self, *args):
self.translator.addStep(self, "program", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def project(self, *args):
self.translator.addStep(self, "project", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def properties(self, *args):
self.translator.addStep(self, "properties", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def property(self, *args):
self.translator.addStep(self, "property", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def propertyMap(self, *args):
self.translator.addStep(self, "propertyMap", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def range(self, *args):
self.translator.addStep(self, "range", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def repeat(self, *args):
self.translator.addStep(self, "repeat", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def sack(self, *args):
self.translator.addStep(self, "sack", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def sample(self, *args):
self.translator.addStep(self, "sample", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def select(self, *args):
self.translator.addStep(self, "select", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def sideEffect(self, *args):
self.translator.addStep(self, "sideEffect", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def simplePath(self, *args):
self.translator.addStep(self, "simplePath", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def store(self, *args):
self.translator.addStep(self, "store", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def subgraph(self, *args):
self.translator.addStep(self, "subgraph", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def sum(self, *args):
self.translator.addStep(self, "sum", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def tail(self, *args):
self.translator.addStep(self, "tail", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def timeLimit(self, *args):
self.translator.addStep(self, "timeLimit", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def times(self, *args):
self.translator.addStep(self, "times", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def to(self, *args):
self.translator.addStep(self, "to", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def toE(self, *args):
self.translator.addStep(self, "toE", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def toV(self, *args):
self.translator.addStep(self, "toV", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def tree(self, *args):
self.translator.addStep(self, "tree", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def unfold(self, *args):
self.translator.addStep(self, "unfold", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def union(self, *args):
self.translator.addStep(self, "union", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def until(self, *args):
self.translator.addStep(self, "until", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def value(self, *args):
self.translator.addStep(self, "value", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def valueMap(self, *args):
self.translator.addStep(self, "valueMap", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def values(self, *args):
self.translator.addStep(self, "values", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
def where(self, *args):
self.translator.addStep(self, "where", *args)
for arg in args:
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
elif isinstance(arg, RawExpression):
self.bindings.update(arg.bindings)
return self
@@ -1640,9 +1640,9 @@ class RawExpression(object):
self.parts = [self._process_arg(arg) for arg in args]
def _process_arg(self, arg):
- if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
- self.bindings.update(arg)
- return Raw(next(iter(arg.keys())))
+ if isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str):
+ self.bindings[arg[0]] = arg[1]
+ return Raw(arg[0])
else:
return Raw(arg)
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/aeefd010/gremlin-variant/src/main/jython/gremlin_python/groovy_translator.py
----------------------------------------------------------------------
diff --git a/gremlin-variant/src/main/jython/gremlin_python/groovy_translator.py b/gremlin-variant/src/main/jython/gremlin_python/groovy_translator.py
index ae1462d..2e30841 100644
--- a/gremlin-variant/src/main/jython/gremlin_python/groovy_translator.py
+++ b/gremlin-variant/src/main/jython/gremlin_python/groovy_translator.py
@@ -104,8 +104,8 @@ class GroovyTranslator(Translator):
return lambdaString
else:
return "{" + lambdaString + "}"
- elif isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0], str): # bindings
- return arg.keys()[0]
+ elif isinstance(arg, tuple) and 2 == len(arg) and isinstance(arg[0], str): # bindings
+ return arg[0]
elif isinstance(arg, RawExpression):
return "".join(GroovyTranslator.stringOrObject(i) for i in arg.parts)
elif isinstance(arg, Raw):
[5/5] tinkerpop git commit: Merge branch 'raw_expr' of
https://github.com/leifurhauks/incubator-tinkerpop into TINKERPOP-1278
Posted by ok...@apache.org.
Merge branch 'raw_expr' of https://github.com/leifurhauks/incubator-tinkerpop into TINKERPOP-1278
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/ac08ae67
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/ac08ae67
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/ac08ae67
Branch: refs/heads/TINKERPOP-1278
Commit: ac08ae6786c5b905c9b221678eaf653c80d409af
Parents: 3dc16ac 65ca75d
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Fri Jun 17 08:19:38 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Fri Jun 17 08:19:38 2016 -0600
----------------------------------------------------------------------
docs/src/reference/gremlin-variants.asciidoc | 34 +
.../python/GremlinPythonGenerator.groovy | 31 +-
.../src/main/jython/gremlin_python/.gitignore | 2 +
.../jython/gremlin_python/gremlin_python.py | 619 +++++++++++++------
.../jython/gremlin_python/groovy_translator.py | 10 +-
5 files changed, 492 insertions(+), 204 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ac08ae67/gremlin-variant/src/main/groovy/org/apache/tinkerpop/gremlin/python/GremlinPythonGenerator.groovy
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/ac08ae67/gremlin-variant/src/main/jython/gremlin_python/gremlin_python.py
----------------------------------------------------------------------
[4/5] tinkerpop git commit: docs: usage example for
gremlin_python.RawExpression
Posted by ok...@apache.org.
docs: usage example for gremlin_python.RawExpression
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/65ca75d0
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/65ca75d0
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/65ca75d0
Branch: refs/heads/TINKERPOP-1278
Commit: 65ca75d008f25902b4a1376ad77d186cce5126dd
Parents: aeefd01
Author: Leifur Halldor Asgeirsson <la...@zerofail.com>
Authored: Thu Jun 16 17:37:49 2016 -0400
Committer: Leifur Halldor Asgeirsson <la...@zerofail.com>
Committed: Thu Jun 16 17:37:49 2016 -0400
----------------------------------------------------------------------
docs/src/reference/gremlin-variants.asciidoc | 34 +++++++++++++++++++++++
1 file changed, 34 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/65ca75d0/docs/src/reference/gremlin-variants.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/reference/gremlin-variants.asciidoc b/docs/src/reference/gremlin-variants.asciidoc
index 2ea9afd..04ee72f 100644
--- a/docs/src/reference/gremlin-variants.asciidoc
+++ b/docs/src/reference/gremlin-variants.asciidoc
@@ -157,3 +157,37 @@ g.V().both()[1]
g.V().both().name
----
+Inserting arbitrary expressions with Gremlin-Python
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To make use of APIs provided by your graph system vendor that aren't part of
+the gremlin traversal API, you can use `RawExpression`. `RawExpression` allows
+you to construct arbitrary expressions that collect bindings. When you pass
+strings and bindings to the `RawExpression` constructor, the arguments will
+be concatenated in the script that is sent to gremlin-server.
+
+The following example uses `RawExpression` to call the `Geoshape.point` static
+constructor method on the `Geoshape` class provided by TitanDB.
+
+[source,python]
+g.V().has('location', RawExpression('Geoshape.point(', ('x', 45), ', ', ('y', -45), ')'))
+# sends the following script to gremlin-server:
+# g.V().has("location", Geoshape.point(x, y))
+#
+# with the following bindings: {'x': 45, 'y': -45}
+
+To help readability, especially if you will be using the expression more than
+once, it is recommended to use this in conjunction with a helper class as in
+the following example:
+
+[source,python]
+class Geoshape(object):
+ @staticmethod
+ def point(latitude, longitude):
+ return RawExpression('Geoshape.point(', latitude, ', ', longitude, ')')
+
+The previous traversal can now be written much more simply:
+
+[source,python]
+g.V().has('location', Geoshape.point(('x', 45), ('y', -45)))
+
[2/5] tinkerpop git commit: add RawExpression to gremlin_python
Posted by ok...@apache.org.
add RawExpression to gremlin_python
As described on dev@tinkerpop.apache.org thread gremlin_python GLV
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/2ea48c4b
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2ea48c4b
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2ea48c4b
Branch: refs/heads/TINKERPOP-1278
Commit: 2ea48c4b586c1d21c4b730838f696ef299fbd49f
Parents: 210d1a8
Author: Leifur Halldor Asgeirsson <la...@zerofail.com>
Authored: Thu Jun 16 11:59:58 2016 -0400
Committer: Leifur Halldor Asgeirsson <la...@zerofail.com>
Committed: Thu Jun 16 16:23:46 2016 -0400
----------------------------------------------------------------------
.../python/GremlinPythonGenerator.groovy | 27 +++
.../jython/gremlin_python/gremlin_python.py | 219 +++++++++++++++++++
.../jython/gremlin_python/groovy_translator.py | 6 +
3 files changed, 252 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ea48c4b/gremlin-variant/src/main/groovy/org/apache/tinkerpop/gremlin/python/GremlinPythonGenerator.groovy
----------------------------------------------------------------------
diff --git a/gremlin-variant/src/main/groovy/org/apache/tinkerpop/gremlin/python/GremlinPythonGenerator.groovy b/gremlin-variant/src/main/groovy/org/apache/tinkerpop/gremlin/python/GremlinPythonGenerator.groovy
index 9289d99..37b72f1 100644
--- a/gremlin-variant/src/main/groovy/org/apache/tinkerpop/gremlin/python/GremlinPythonGenerator.groovy
+++ b/gremlin-variant/src/main/groovy/org/apache/tinkerpop/gremlin/python/GremlinPythonGenerator.groovy
@@ -179,6 +179,8 @@ builtInRange = range
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
""")
}
@@ -230,6 +232,31 @@ builtInRange = range
pythonClass.append("\n");
}
//////////////
+
+ pythonClass.append("""class RawExpression(object):
+ def __init__(self, *args):
+ self.bindings = dict()
+ self.parts = [self._process_arg(arg) for arg in args]
+
+ def _process_arg(self, arg):
+ if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
+ self.bindings.update(arg)
+ return Raw(next(iter(arg.keys())))
+ else:
+ return Raw(arg)
+""")
+
+ pythonClass.append("\n")
+ pythonClass.append("""class Raw(object):
+ def __init__(self, value):
+ self.value = value
+
+ def __str__(self):
+ return str(self.value)
+""")
+
+ pythonClass.append("\n")
+
pythonClass.append("""class P(object):
def __init__(self, operator, value, other=None):
self.operator = operator
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ea48c4b/gremlin-variant/src/main/jython/gremlin_python/gremlin_python.py
----------------------------------------------------------------------
diff --git a/gremlin-variant/src/main/jython/gremlin_python/gremlin_python.py b/gremlin-variant/src/main/jython/gremlin_python/gremlin_python.py
index 23d53e6..6978ada 100644
--- a/gremlin-variant/src/main/jython/gremlin_python/gremlin_python.py
+++ b/gremlin-variant/src/main/jython/gremlin_python/gremlin_python.py
@@ -122,600 +122,800 @@ class PythonGraphTraversal(object):
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def _and(self, *args):
self.translator.addStep(self, "_and", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def _as(self, *args):
self.translator.addStep(self, "_as", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def _from(self, *args):
self.translator.addStep(self, "_from", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def _in(self, *args):
self.translator.addStep(self, "_in", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def _is(self, *args):
self.translator.addStep(self, "_is", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def _not(self, *args):
self.translator.addStep(self, "_not", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def _or(self, *args):
self.translator.addStep(self, "_or", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def addE(self, *args):
self.translator.addStep(self, "addE", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def addInE(self, *args):
self.translator.addStep(self, "addInE", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def addOutE(self, *args):
self.translator.addStep(self, "addOutE", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def addV(self, *args):
self.translator.addStep(self, "addV", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def aggregate(self, *args):
self.translator.addStep(self, "aggregate", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def asAdmin(self, *args):
self.translator.addStep(self, "asAdmin", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def barrier(self, *args):
self.translator.addStep(self, "barrier", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def both(self, *args):
self.translator.addStep(self, "both", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def bothE(self, *args):
self.translator.addStep(self, "bothE", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def bothV(self, *args):
self.translator.addStep(self, "bothV", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def branch(self, *args):
self.translator.addStep(self, "branch", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def by(self, *args):
self.translator.addStep(self, "by", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def cap(self, *args):
self.translator.addStep(self, "cap", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def choose(self, *args):
self.translator.addStep(self, "choose", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def coalesce(self, *args):
self.translator.addStep(self, "coalesce", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def coin(self, *args):
self.translator.addStep(self, "coin", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def constant(self, *args):
self.translator.addStep(self, "constant", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def count(self, *args):
self.translator.addStep(self, "count", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def cyclicPath(self, *args):
self.translator.addStep(self, "cyclicPath", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def dedup(self, *args):
self.translator.addStep(self, "dedup", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def drop(self, *args):
self.translator.addStep(self, "drop", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def emit(self, *args):
self.translator.addStep(self, "emit", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def filter(self, *args):
self.translator.addStep(self, "filter", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def flatMap(self, *args):
self.translator.addStep(self, "flatMap", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def fold(self, *args):
self.translator.addStep(self, "fold", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def group(self, *args):
self.translator.addStep(self, "group", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def groupCount(self, *args):
self.translator.addStep(self, "groupCount", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def groupV3d0(self, *args):
self.translator.addStep(self, "groupV3d0", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def has(self, *args):
self.translator.addStep(self, "has", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def hasId(self, *args):
self.translator.addStep(self, "hasId", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def hasKey(self, *args):
self.translator.addStep(self, "hasKey", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def hasLabel(self, *args):
self.translator.addStep(self, "hasLabel", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def hasNot(self, *args):
self.translator.addStep(self, "hasNot", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def hasValue(self, *args):
self.translator.addStep(self, "hasValue", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def id(self, *args):
self.translator.addStep(self, "id", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def identity(self, *args):
self.translator.addStep(self, "identity", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def inE(self, *args):
self.translator.addStep(self, "inE", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def inV(self, *args):
self.translator.addStep(self, "inV", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def inject(self, *args):
self.translator.addStep(self, "inject", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def iterate(self, *args):
self.translator.addStep(self, "iterate", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def key(self, *args):
self.translator.addStep(self, "key", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def label(self, *args):
self.translator.addStep(self, "label", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def limit(self, *args):
self.translator.addStep(self, "limit", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def local(self, *args):
self.translator.addStep(self, "local", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def loops(self, *args):
self.translator.addStep(self, "loops", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def map(self, *args):
self.translator.addStep(self, "map", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def mapKeys(self, *args):
self.translator.addStep(self, "mapKeys", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def mapValues(self, *args):
self.translator.addStep(self, "mapValues", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def match(self, *args):
self.translator.addStep(self, "match", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def max(self, *args):
self.translator.addStep(self, "max", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def mean(self, *args):
self.translator.addStep(self, "mean", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def min(self, *args):
self.translator.addStep(self, "min", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def option(self, *args):
self.translator.addStep(self, "option", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def optional(self, *args):
self.translator.addStep(self, "optional", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def order(self, *args):
self.translator.addStep(self, "order", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def otherV(self, *args):
self.translator.addStep(self, "otherV", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def out(self, *args):
self.translator.addStep(self, "out", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def outE(self, *args):
self.translator.addStep(self, "outE", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def outV(self, *args):
self.translator.addStep(self, "outV", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def pageRank(self, *args):
self.translator.addStep(self, "pageRank", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def path(self, *args):
self.translator.addStep(self, "path", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def peerPressure(self, *args):
self.translator.addStep(self, "peerPressure", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def profile(self, *args):
self.translator.addStep(self, "profile", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def program(self, *args):
self.translator.addStep(self, "program", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def project(self, *args):
self.translator.addStep(self, "project", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def properties(self, *args):
self.translator.addStep(self, "properties", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def property(self, *args):
self.translator.addStep(self, "property", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def propertyMap(self, *args):
self.translator.addStep(self, "propertyMap", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def range(self, *args):
self.translator.addStep(self, "range", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def repeat(self, *args):
self.translator.addStep(self, "repeat", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def sack(self, *args):
self.translator.addStep(self, "sack", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def sample(self, *args):
self.translator.addStep(self, "sample", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def select(self, *args):
self.translator.addStep(self, "select", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def sideEffect(self, *args):
self.translator.addStep(self, "sideEffect", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def simplePath(self, *args):
self.translator.addStep(self, "simplePath", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def store(self, *args):
self.translator.addStep(self, "store", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def subgraph(self, *args):
self.translator.addStep(self, "subgraph", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def sum(self, *args):
self.translator.addStep(self, "sum", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def tail(self, *args):
self.translator.addStep(self, "tail", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def timeLimit(self, *args):
self.translator.addStep(self, "timeLimit", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def times(self, *args):
self.translator.addStep(self, "times", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def to(self, *args):
self.translator.addStep(self, "to", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def toE(self, *args):
self.translator.addStep(self, "toE", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def toV(self, *args):
self.translator.addStep(self, "toV", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def tree(self, *args):
self.translator.addStep(self, "tree", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def unfold(self, *args):
self.translator.addStep(self, "unfold", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def union(self, *args):
self.translator.addStep(self, "union", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def until(self, *args):
self.translator.addStep(self, "until", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def value(self, *args):
self.translator.addStep(self, "value", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def valueMap(self, *args):
self.translator.addStep(self, "valueMap", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def values(self, *args):
self.translator.addStep(self, "values", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
def where(self, *args):
self.translator.addStep(self, "where", *args)
for arg in args:
if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
self.bindings.update(arg)
+ elif isinstance(arg, RawExpression):
+ self.bindings.update(arg.bindings)
return self
@@ -1434,6 +1634,25 @@ statics['id'] = T.id
statics['key'] = T.key
statics['value'] = T.value
+class RawExpression(object):
+ def __init__(self, *args):
+ self.bindings = dict()
+ self.parts = [self._process_arg(arg) for arg in args]
+
+ def _process_arg(self, arg):
+ if isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0],str):
+ self.bindings.update(arg)
+ return Raw(next(iter(arg.keys())))
+ else:
+ return Raw(arg)
+
+class Raw(object):
+ def __init__(self, value):
+ self.value = value
+
+ def __str__(self):
+ return str(self.value)
+
class P(object):
def __init__(self, operator, value, other=None):
self.operator = operator
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2ea48c4b/gremlin-variant/src/main/jython/gremlin_python/groovy_translator.py
----------------------------------------------------------------------
diff --git a/gremlin-variant/src/main/jython/gremlin_python/groovy_translator.py b/gremlin-variant/src/main/jython/gremlin_python/groovy_translator.py
index dc9ac34..ae1462d 100644
--- a/gremlin-variant/src/main/jython/gremlin_python/groovy_translator.py
+++ b/gremlin-variant/src/main/jython/gremlin_python/groovy_translator.py
@@ -21,6 +21,8 @@ import sys
from aenum import Enum
from gremlin_python import P
+from gremlin_python import Raw
+from gremlin_python import RawExpression
from translator import Translator
if sys.version_info.major > 2:
@@ -104,6 +106,10 @@ class GroovyTranslator(Translator):
return "{" + lambdaString + "}"
elif isinstance(arg, dict) and 1 == len(arg) and isinstance(arg.keys()[0], str): # bindings
return arg.keys()[0]
+ elif isinstance(arg, RawExpression):
+ return "".join(GroovyTranslator.stringOrObject(i) for i in arg.parts)
+ elif isinstance(arg, Raw):
+ return str(arg)
else:
return str(arg)