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/27 17:44:33 UTC
tinkerpop git commit: simplified next() model and added
Traversal.next(amount).
Repository: tinkerpop
Updated Branches:
refs/heads/TINKERPOP-1278 b41fa42ec -> 8153231ed
simplified next() model and added Traversal.next(amount).
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/8153231e
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/8153231e
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/8153231e
Branch: refs/heads/TINKERPOP-1278
Commit: 8153231edc9878f57d76bb02af2ec6109d08259b
Parents: b41fa42
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Mon Jun 27 11:44:30 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Mon Jun 27 11:44:30 2016 -0600
----------------------------------------------------------------------
.../python/GraphTraversalSourceGenerator.groovy | 1 -
.../python/TraversalSourceGenerator.groovy | 39 ++++++++++----------
.../jython/gremlin_python/graph_traversal.py | 1 -
.../jython/gremlin_python/groovy_translator.py | 6 +--
.../jython/gremlin_python/jython_translator.py | 6 +--
.../main/jython/gremlin_python/translator.py | 1 -
.../src/main/jython/gremlin_python/traversal.py | 39 ++++++++++----------
.../python/driver/RESTRemoteConnectionTest.java | 19 ++++++++++
8 files changed, 63 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8153231e/gremlin-python/src/main/groovy/org/apache/tinkerpop/gremlin/python/GraphTraversalSourceGenerator.groovy
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/groovy/org/apache/tinkerpop/gremlin/python/GraphTraversalSourceGenerator.groovy b/gremlin-python/src/main/groovy/org/apache/tinkerpop/gremlin/python/GraphTraversalSourceGenerator.groovy
index 39bdc10..5867e86 100644
--- a/gremlin-python/src/main/groovy/org/apache/tinkerpop/gremlin/python/GraphTraversalSourceGenerator.groovy
+++ b/gremlin-python/src/main/groovy/org/apache/tinkerpop/gremlin/python/GraphTraversalSourceGenerator.groovy
@@ -56,7 +56,6 @@ specific language governing permissions and limitations
under the License.
'''
""")
- pythonClass.append("from aenum import Enum\n")
pythonClass.append("from traversal import RawExpression\n")
pythonClass.append("from traversal import PythonTraversal\n")
pythonClass.append("from statics import add_static\n")
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8153231e/gremlin-python/src/main/groovy/org/apache/tinkerpop/gremlin/python/TraversalSourceGenerator.groovy
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/groovy/org/apache/tinkerpop/gremlin/python/TraversalSourceGenerator.groovy b/gremlin-python/src/main/groovy/org/apache/tinkerpop/gremlin/python/TraversalSourceGenerator.groovy
index 504d240..1e38c65 100644
--- a/gremlin-python/src/main/groovy/org/apache/tinkerpop/gremlin/python/TraversalSourceGenerator.groovy
+++ b/gremlin-python/src/main/groovy/org/apache/tinkerpop/gremlin/python/TraversalSourceGenerator.groovy
@@ -83,26 +83,6 @@ class PythonTraversal(object):
return self
def __next__(self):
- return self.next()
-
- def toList(self):
- return list(iter(self))
-
- def toSet(self):
- return set(iter(self))
-
- def next(self, amount):
- count = 0
- tempList = []
- while count < amount:
- count = count + 1
- temp = next(self, None)
- if None == temp:
- break
- tempList.append(temp)
- return tempList
-
- def next(self):
if self.results is None:
self.results = self.remote_connection.submit(self.translator.target_language,
self.translator.traversal_script, self.bindings)
@@ -114,6 +94,25 @@ class PythonTraversal(object):
self.last_traverser = None
return object
+ def toList(self):
+ return list(iter(self))
+
+ def toSet(self):
+ return set(iter(self))
+
+ def next(self, amount=None):
+ if amount is None:
+ return self.__next__()
+ else:
+ count = 0
+ tempList = []
+ while count < amount:
+ count = count + 1
+ try: temp = self.__next__()
+ except StopIteration: return tempList
+ tempList.append(temp)
+ return tempList
+
""")
///////////
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8153231e/gremlin-python/src/main/jython/gremlin_python/graph_traversal.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/gremlin_python/graph_traversal.py b/gremlin-python/src/main/jython/gremlin_python/graph_traversal.py
index f0a4668..758c0da 100644
--- a/gremlin-python/src/main/jython/gremlin_python/graph_traversal.py
+++ b/gremlin-python/src/main/jython/gremlin_python/graph_traversal.py
@@ -16,7 +16,6 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
'''
-from aenum import Enum
from traversal import RawExpression
from traversal import PythonTraversal
from statics import add_static
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8153231e/gremlin-python/src/main/jython/gremlin_python/groovy_translator.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/gremlin_python/groovy_translator.py b/gremlin-python/src/main/jython/gremlin_python/groovy_translator.py
index 38334cb..c1bae1a 100644
--- a/gremlin-python/src/main/jython/gremlin_python/groovy_translator.py
+++ b/gremlin-python/src/main/jython/gremlin_python/groovy_translator.py
@@ -41,21 +41,21 @@ class GroovyTranslator(Translator):
step_name) + "(" + GroovyTranslator.stringify(*args) + ")"
def addSpawnStep(self, traversal, step_name, *args):
- newTranslator = GroovyTranslator(self.alias, self.source_language)
+ newTranslator = GroovyTranslator(self.alias, self.source_language, self.target_language)
newTranslator.traversal_script = self.traversal_script
newTranslator.traversal_script = newTranslator.traversal_script + "." + SymbolHelper.toJava(
step_name) + "(" + GroovyTranslator.stringify(*args) + ")"
traversal.translator = newTranslator
def addSource(self, traversal_source, source_name, *args):
- newTranslator = GroovyTranslator(self.alias, self.source_language)
+ newTranslator = GroovyTranslator(self.alias, self.source_language, self.target_language)
newTranslator.traversal_script = self.traversal_script
newTranslator.traversal_script = newTranslator.traversal_script + "." + SymbolHelper.toJava(
source_name) + "(" + GroovyTranslator.stringify(*args) + ")"
traversal_source.translator = newTranslator
def getAnonymousTraversalTranslator(self):
- return GroovyTranslator("__", self.source_language)
+ return GroovyTranslator("__", self.source_language, self.target_language)
@staticmethod
def stringOrObject(arg):
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8153231e/gremlin-python/src/main/jython/gremlin_python/jython_translator.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/gremlin_python/jython_translator.py b/gremlin-python/src/main/jython/gremlin_python/jython_translator.py
index c82008d..5372629 100644
--- a/gremlin-python/src/main/jython/gremlin_python/jython_translator.py
+++ b/gremlin-python/src/main/jython/gremlin_python/jython_translator.py
@@ -45,21 +45,21 @@ class JythonTranslator(Translator):
step_name) + "(" + JythonTranslator.stringify(*args) + ")"
def addSpawnStep(self, traversal, step_name, *args):
- newTranslator = JythonTranslator(self.alias, self.source_language)
+ newTranslator = JythonTranslator(self.alias, self.source_language, self.target_language)
newTranslator.traversal_script = self.traversal_script
newTranslator.traversal_script = newTranslator.traversal_script + "." + SymbolHelper.toJava(
step_name) + "(" + JythonTranslator.stringify(*args) + ")"
traversal.translator = newTranslator
def addSource(self, traversal_source, source_name, *args):
- newTranslator = JythonTranslator(self.alias, self.source_language)
+ newTranslator = JythonTranslator(self.alias, self.source_language, self.target_language)
newTranslator.traversal_script = self.traversal_script
newTranslator.traversal_script = newTranslator.traversal_script + "." + SymbolHelper.toJava(
source_name) + "(" + JythonTranslator.stringify(*args) + ")"
traversal_source.translator = newTranslator
def getAnonymousTraversalTranslator(self):
- return JythonTranslator("__", self.source_language)
+ return JythonTranslator("__", self.source_language, self.target_language)
@staticmethod
def stringOrObject(arg):
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8153231e/gremlin-python/src/main/jython/gremlin_python/translator.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/gremlin_python/translator.py b/gremlin-python/src/main/jython/gremlin_python/translator.py
index 1f324a2..7cfd752 100644
--- a/gremlin-python/src/main/jython/gremlin_python/translator.py
+++ b/gremlin-python/src/main/jython/gremlin_python/translator.py
@@ -31,7 +31,6 @@ class Translator(object):
self.source_language = source_language
self.target_language = target_language
self.traversal_script = alias
- self.statics = {}
@abstractmethod
def addStep(self, traversal, step_name, *args):
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8153231e/gremlin-python/src/main/jython/gremlin_python/traversal.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/gremlin_python/traversal.py b/gremlin-python/src/main/jython/gremlin_python/traversal.py
index ac81f0b..153e4fd 100644
--- a/gremlin-python/src/main/jython/gremlin_python/traversal.py
+++ b/gremlin-python/src/main/jython/gremlin_python/traversal.py
@@ -45,26 +45,6 @@ class PythonTraversal(object):
return self
def __next__(self):
- return self.next()
-
- def toList(self):
- return list(iter(self))
-
- def toSet(self):
- return set(iter(self))
-
- def next(self, amount):
- count = 0
- tempList = []
- while count < amount:
- count = count + 1
- temp = next(self, None)
- if None == temp:
- break
- tempList.append(temp)
- return tempList
-
- def next(self):
if self.results is None:
self.results = self.remote_connection.submit(self.translator.target_language,
self.translator.traversal_script, self.bindings)
@@ -76,6 +56,25 @@ class PythonTraversal(object):
self.last_traverser = None
return object
+ def toList(self):
+ return list(iter(self))
+
+ def toSet(self):
+ return set(iter(self))
+
+ def next(self, amount=None):
+ if amount is None:
+ return self.__next__()
+ else:
+ count = 0
+ tempList = []
+ while count < amount:
+ count = count + 1
+ try: temp = self.__next__()
+ except StopIteration: return tempList
+ tempList.append(temp)
+ return tempList
+
Barrier = Enum('Barrier', 'normSack')
add_static('normSack', Barrier.normSack)
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8153231e/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/python/driver/RESTRemoteConnectionTest.java
----------------------------------------------------------------------
diff --git a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/python/driver/RESTRemoteConnectionTest.java b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/python/driver/RESTRemoteConnectionTest.java
index 6805763..0035d4b 100644
--- a/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/python/driver/RESTRemoteConnectionTest.java
+++ b/gremlin-python/src/test/java/org/apache/tinkerpop/gremlin/python/driver/RESTRemoteConnectionTest.java
@@ -55,6 +55,12 @@ public class RESTRemoteConnectionTest {
}
@Test
+ public void testPythonGraphTraversalNext() throws Exception {
+ final String result = (String) jython.eval("g.V().repeat(__.out()).times(2).name.next()");
+ assertTrue(result.equals("lop") || result.equals("ripple"));
+ }
+
+ @Test
public void testPythonGraphTraversalToList() throws Exception {
final List<String> results = (List) jython.eval("g.V().repeat(__.out()).times(2).name.toList()");
assertEquals(2, results.size());
@@ -69,4 +75,17 @@ public class RESTRemoteConnectionTest {
assertTrue(results.contains("lop"));
assertTrue(results.contains("ripple"));
}
+
+ @Test
+ public void testPythonGraphTraversalNextAmount() throws Exception {
+ List<String> results = (List) jython.eval("g.V().repeat(__.out()).times(2).name.next(2)");
+ assertEquals(2, results.size());
+ assertTrue(results.contains("lop"));
+ assertTrue(results.contains("ripple"));
+ //
+ results = (List) jython.eval("g.V().repeat(__.out()).times(2).name.next(4)");
+ assertEquals(2, results.size());
+ assertTrue(results.contains("lop"));
+ assertTrue(results.contains("ripple"));
+ }
}