From 8fec65d7ba21fa081a97e1927fa78d92f7c735e4 Mon Sep 17 00:00:00 2001 From: Jeffrey Phillips Freeman <the@jeffreyfreeman.me> Date: Sun, 27 Mar 2022 23:00:50 +0300 Subject: [PATCH] Added better error handling and fixed g.E() traversal. --- goblin/session.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/goblin/session.py b/goblin/session.py index 7e5cd64..61a41fe 100644 --- a/goblin/session.py +++ b/goblin/session.py @@ -18,6 +18,7 @@ from gremlin_python.structure.graph import Edge, Vertex # type: ignore from goblin import exception, mapper from goblin.element import GenericEdge, GenericVertex, VertexProperty, ImmutableMode, LockingMode from goblin.manager import VertexPropertyManager +import traceback logger = logging.getLogger(__name__) @@ -158,6 +159,10 @@ class Session: msg = Message(200, result, '') result_set.queue_result(msg) except Exception as e: + print("Exception caught, will show up as a msg, traceback here:") + print(e) + for line in traceback.format_stack(): + print(line.strip()) msg = Message(500, None, e.args[0]) result_set.queue_result(msg) finally: @@ -172,12 +177,12 @@ class Session: current = self.current.get(hashable_id, None) if isinstance(obj, Vertex): # why doesn't this come in on the vertex? - label = await self._g.V(obj.id).label().next() + label = await self._g.V(hashable_id).label().next() if not current: current = self.app.vertices.get(label, GenericVertex)() - props = await self._get_vertex_properties(obj.id, label) + props = await self._get_vertex_properties(hashable_id, label) if isinstance(obj, Edge): - props = await self._g.E(obj.id).valueMap(True).next() + props = await self._g.E(hashable_id).valueMap(True).next() if not current: current = self.app.edges.get( props.get('label'), GenericEdge)() -- GitLab