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/02 00:56:25 UTC
incubator-tinkerpop git commit: got complex P nesting working. going
to add a ProcessStandardSuite test case that does nasty P-nesting so we know
it works for all variants.
Repository: incubator-tinkerpop
Updated Branches:
refs/heads/TINKERPOP-1278 252d28431 -> 99834114d
got complex P nesting working. going to add a ProcessStandardSuite test case that does nasty P-nesting so we know it works for all variants.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/99834114
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/99834114
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/99834114
Branch: refs/heads/TINKERPOP-1278
Commit: 99834114dfefa2213482fe9e6c5aa42bac5e6ff6
Parents: 252d284
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Wed Jun 1 18:56:21 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Wed Jun 1 18:56:21 2016 -0600
----------------------------------------------------------------------
.../python/GremlinPythonGenerator.groovy | 17 ++++-
.../python/gremlin-python-3.2.1-SNAPSHOT.py | 79 ++++++++++----------
2 files changed, 55 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/99834114/gremlin-variant/src/main/groovy/org/apache/tinkerpop/gremlin/process/variant/python/GremlinPythonGenerator.groovy
----------------------------------------------------------------------
diff --git a/gremlin-variant/src/main/groovy/org/apache/tinkerpop/gremlin/process/variant/python/GremlinPythonGenerator.groovy b/gremlin-variant/src/main/groovy/org/apache/tinkerpop/gremlin/process/variant/python/GremlinPythonGenerator.groovy
index 1be203c..df3af56 100644
--- a/gremlin-variant/src/main/groovy/org/apache/tinkerpop/gremlin/process/variant/python/GremlinPythonGenerator.groovy
+++ b/gremlin-variant/src/main/groovy/org/apache/tinkerpop/gremlin/process/variant/python/GremlinPythonGenerator.groovy
@@ -139,18 +139,31 @@ class Helper(object):
}
pythonClass.append("\n\n");
- pythonClass.append("class P(object):\n");
+ pythonClass.append("""class P(object):
+ def __init__(self, pString):
+ self.pString = pString
+ def __repr__(self):
+ return self.pString
+""")
P.getMethods()
.findAll { P.class.isAssignableFrom(it.returnType) }
+ .findAll { !it.name.equals("or") && !it.name.equals("and") && !it.name.equals("not") }
.collect { methodMap[it.name] }
.toSet()
.each { method ->
pythonClass.append(
""" @staticmethod
def ${method}(*args):
- return "P.${method}(" + Helper.stringify(*args) + ")"
+ return P("P.${method}(" + Helper.stringify(*args) + ")")
""")
};
+ pythonClass.append(""" def _and(self, arg):
+ return P(self.pString + ".and(" + Helper.stringify(arg) + ")")
+ def _or(self, arg):
+ return P(self.pString + ".or(" + Helper.stringify(arg) + ")")
+ def _not(self, arg):
+ return P(self.pString + ".not(" + Helper.stringify(arg) + ")")
+""")
pythonClass.append("\n\n")
pythonClass.append("class Pop(object):\n");
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/99834114/gremlin-variant/variants/python/gremlin-python-3.2.1-SNAPSHOT.py
----------------------------------------------------------------------
diff --git a/gremlin-variant/variants/python/gremlin-python-3.2.1-SNAPSHOT.py b/gremlin-variant/variants/python/gremlin-python-3.2.1-SNAPSHOT.py
index 0ea7293..fcad0fe 100644
--- a/gremlin-variant/variants/python/gremlin-python-3.2.1-SNAPSHOT.py
+++ b/gremlin-variant/variants/python/gremlin-python-3.2.1-SNAPSHOT.py
@@ -96,57 +96,58 @@ class Order(object):
class P(object):
- @staticmethod
- def _or(*args):
- return "P._or(" + Helper.stringify(*args) + ")"
+ def __init__(self, pString):
+ self.pString = pString
+ def __repr__(self):
+ return self.pString
@staticmethod
def test(*args):
- return "P.test(" + Helper.stringify(*args) + ")"
+ return P("P.test(" + Helper.stringify(*args) + ")")
@staticmethod
def within(*args):
- return "P.within(" + Helper.stringify(*args) + ")"
+ return P("P.within(" + Helper.stringify(*args) + ")")
@staticmethod
def lt(*args):
- return "P.lt(" + Helper.stringify(*args) + ")"
+ return P("P.lt(" + Helper.stringify(*args) + ")")
@staticmethod
def eq(*args):
- return "P.eq(" + Helper.stringify(*args) + ")"
+ return P("P.eq(" + Helper.stringify(*args) + ")")
@staticmethod
def inside(*args):
- return "P.inside(" + Helper.stringify(*args) + ")"
+ return P("P.inside(" + Helper.stringify(*args) + ")")
@staticmethod
def gt(*args):
- return "P.gt(" + Helper.stringify(*args) + ")"
+ return P("P.gt(" + Helper.stringify(*args) + ")")
@staticmethod
def without(*args):
- return "P.without(" + Helper.stringify(*args) + ")"
+ return P("P.without(" + Helper.stringify(*args) + ")")
@staticmethod
- def _and(*args):
- return "P._and(" + Helper.stringify(*args) + ")"
+ def negate(*args):
+ return P("P.negate(" + Helper.stringify(*args) + ")")
@staticmethod
def outside(*args):
- return "P.outside(" + Helper.stringify(*args) + ")"
- @staticmethod
- def negate(*args):
- return "P.negate(" + Helper.stringify(*args) + ")"
+ return P("P.outside(" + Helper.stringify(*args) + ")")
@staticmethod
def clone(*args):
- return "P.clone(" + Helper.stringify(*args) + ")"
- @staticmethod
- def _not(*args):
- return "P._not(" + Helper.stringify(*args) + ")"
+ return P("P.clone(" + Helper.stringify(*args) + ")")
@staticmethod
def gte(*args):
- return "P.gte(" + Helper.stringify(*args) + ")"
+ return P("P.gte(" + Helper.stringify(*args) + ")")
@staticmethod
def neq(*args):
- return "P.neq(" + Helper.stringify(*args) + ")"
+ return P("P.neq(" + Helper.stringify(*args) + ")")
@staticmethod
def lte(*args):
- return "P.lte(" + Helper.stringify(*args) + ")"
+ return P("P.lte(" + Helper.stringify(*args) + ")")
@staticmethod
def between(*args):
- return "P.between(" + Helper.stringify(*args) + ")"
+ return P("P.between(" + Helper.stringify(*args) + ")")
+ def _and(self, arg):
+ return P(self.pString + ".and(" + Helper.stringify(arg) + ")")
+ def _or(self, arg):
+ return P(self.pString + ".or(" + Helper.stringify(arg) + ")")
+ def _not(self, arg):
+ return P(self.pString + ".not(" + Helper.stringify(arg) + ")")
class Pop(object):
@@ -249,12 +250,12 @@ class PythonGraphTraversal(object):
def coalesce(self, *args):
self.traversalString = self.traversalString + ".coalesce(" + Helper.stringify(*args) + ")"
return self
- def hasLabel(self, *args):
- self.traversalString = self.traversalString + ".hasLabel(" + Helper.stringify(*args) + ")"
- return self
def optional(self, *args):
self.traversalString = self.traversalString + ".optional(" + Helper.stringify(*args) + ")"
return self
+ def hasLabel(self, *args):
+ self.traversalString = self.traversalString + ".hasLabel(" + Helper.stringify(*args) + ")"
+ return self
def hasValue(self, *args):
self.traversalString = self.traversalString + ".hasValue(" + Helper.stringify(*args) + ")"
return self
@@ -417,12 +418,12 @@ class PythonGraphTraversal(object):
def otherV(self, *args):
self.traversalString = self.traversalString + ".otherV(" + Helper.stringify(*args) + ")"
return self
- def coin(self, *args):
- self.traversalString = self.traversalString + ".coin(" + Helper.stringify(*args) + ")"
- return self
def option(self, *args):
self.traversalString = self.traversalString + ".option(" + Helper.stringify(*args) + ")"
return self
+ def coin(self, *args):
+ self.traversalString = self.traversalString + ".coin(" + Helper.stringify(*args) + ")"
+ return self
def drop(self, *args):
self.traversalString = self.traversalString + ".drop(" + Helper.stringify(*args) + ")"
return self
@@ -501,12 +502,12 @@ class PythonGraphTraversal(object):
def until(self, *args):
self.traversalString = self.traversalString + ".until(" + Helper.stringify(*args) + ")"
return self
- def outV(self, *args):
- self.traversalString = self.traversalString + ".outV(" + Helper.stringify(*args) + ")"
- return self
def emit(self, *args):
self.traversalString = self.traversalString + ".emit(" + Helper.stringify(*args) + ")"
return self
+ def outV(self, *args):
+ self.traversalString = self.traversalString + ".outV(" + Helper.stringify(*args) + ")"
+ return self
def inject(self, *args):
self.traversalString = self.traversalString + ".inject(" + Helper.stringify(*args) + ")"
return self
@@ -544,12 +545,12 @@ class __(object):
def coalesce(*args):
return PythonGraphTraversal("__").coalesce(*args)
@staticmethod
- def hasLabel(*args):
- return PythonGraphTraversal("__").hasLabel(*args)
- @staticmethod
def optional(*args):
return PythonGraphTraversal("__").optional(*args)
@staticmethod
+ def hasLabel(*args):
+ return PythonGraphTraversal("__").hasLabel(*args)
+ @staticmethod
def hasValue(*args):
return PythonGraphTraversal("__").hasValue(*args)
@staticmethod
@@ -784,12 +785,12 @@ class __(object):
def until(*args):
return PythonGraphTraversal("__").until(*args)
@staticmethod
- def outV(*args):
- return PythonGraphTraversal("__").outV(*args)
- @staticmethod
def emit(*args):
return PythonGraphTraversal("__").emit(*args)
@staticmethod
+ def outV(*args):
+ return PythonGraphTraversal("__").outV(*args)
+ @staticmethod
def inject(*args):
return PythonGraphTraversal("__").inject(*args)
@staticmethod