From 75d18eb9f7a79852a015998507735cc4088a2fd7 Mon Sep 17 00:00:00 2001
From: davebshow <davebshow@gmail.com>
Date: Sun, 3 Jul 2016 01:12:40 -0400
Subject: [PATCH] moved _parse_traversal to query as a util func

---
 goblin/api.py   | 13 ++++---------
 goblin/query.py | 12 ++++++++++--
 2 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/goblin/api.py b/goblin/api.py
index f5faec2..2771d0e 100644
--- a/goblin/api.py
+++ b/goblin/api.py
@@ -155,17 +155,17 @@ class Session:
 
     def _get_vertex_by_id(self, element):
         traversal = self.g.V(element.id)
-        return self._parse_traversal(traversal)
+        return query.parse_traversal(traversal)
 
     def _get_edge_by_id(self, element):
         traversal = self.g.E(element.id)
-        return self._parse_traversal(traversal)
+        return query.parse_traversal(traversal)
 
     def _create_vertex(self, element):
         props = mapper.map_props_to_db(element, element.__mapping__)
         traversal = self.g.addV(element.__mapping__.label)
         traversal = self._add_properties(traversal, props)
-        return self._parse_traversal(traversal)
+        return query.parse_traversal(traversal)
 
     def _update_vertex(self, element):
         raise NotImplementedError
@@ -176,7 +176,7 @@ class Session:
         traversal = traversal.addE(element.__mapping__._label)
         traversal = traversal.to(self.g.V(element.target.id))
         traversal = self._add_properties(traversal, props)
-        return self._parse_traversal(traversal)
+        return query.parse_traversal(traversal)
 
     def _update_edge(self, element):
         raise NotImplementedError
@@ -189,11 +189,6 @@ class Session:
         self._binding = 0
         return traversal
 
-    def _parse_traversal(self, traversal):
-        script = traversal.translator.traversal_script
-        bindings = traversal.bindings
-        return script, bindings
-
     async def commit(self):
         raise NotImplementedError
 
diff --git a/goblin/query.py b/goblin/query.py
index 8d3ab1e..7c49515 100644
--- a/goblin/query.py
+++ b/goblin/query.py
@@ -1,3 +1,11 @@
+"""Query API and helpers"""
+
+
+def parse_traversal(traversal):
+    script = traversal.translator.traversal_script
+    bindings = traversal.bindings
+    return script, bindings
+
 class Query:
 
     def __init__(self, session, element_class):
@@ -18,9 +26,9 @@ class Query:
 
     # Methods that issue a query
     async def all(self):
-        script = self._traversal.translator.traversal_script
+        script, bindings = parse_traversal(self._traversal)
         stream = await self._engine.execute(
-            script, bindings=self._traversal.bindings)
+            script, bindings=bindings)
         # This should return and async iterator wrapper that can see and update
         # parent session object, but for the demo it works
         return stream
-- 
GitLab