I am trying to traverse a tree. My query works in Gremlin Console.
🞂 ./bin/gremlin.sh
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/home/tannersorensen/Downloads/apache-tinkerpop-gremlin-console-3.6.2/lib/groovy-2.5.15-indy.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
\,,,/
(o o)
-----oOOo-(3)-oOOo-----
plugin activated: tinkerpop.server
plugin activated: tinkerpop.utilities
plugin activated: tinkerpop.tinkergraph
gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin> g = traversal().withEmbedded(graph)
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V().has("name", "marko").emit().repeat(out()).tree().next()
==>v[1]={v[2]={}, v[3]={}, v[4]={v[3]={}, v[5]={}}}
However, I get an error in the Python language variant `gremlin_python`.
(env) 🞂 python
Python 3.8.10 (default, Nov 14 2022, 12:59:47)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from gremlin_python.process.anonymous_traversal import traversal
>>> from gremlin_python.process.graph_traversal import __
>>> from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection
>>> g = traversal().withRemote(DriverRemoteConnection('ws://localhost:8182/gremlin','g'),)
>>> v0 = g.addV().property("label", "v0").next()
>>> v1 = g.addV().property("label", "v1").next()
>>> v2 = g.addV().property("label", "v2").next()
>>> v3 = g.addV().property("label", "v3").next()
>>> v4 = g.addV().property("label", "v4").next()
>>> g.addE("link").from_(v0).to(v1).next()
e[150][140-link->142]
>>> g.addE("link").from_(v0).to(v2).next()
e[151][140-link->144]
>>> g.addE("link").from_(v2).to(v3).next()
e[152][144-link->146]
>>> g.addE("link").from_(v2).to(v4).next()
e[153][144-link->148]
>>> g.V().has("label", "v0").emit().repeat(__.out()).tree().next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/process/traversal.py", line 117, in next
return self.__next__()
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/process/traversal.py", line 48, in __next__
self.traversal_strategies.apply_strategies(self)
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/process/traversal.py", line 684, in apply_strategies
traversal_strategy.apply(traversal)
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/driver/remote_connection.py", line 78, in apply
remote_traversal = self.remote_connection.submit(traversal.bytecode)
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/driver/driver_remote_connection.py", line 105, in submit
results = result_set.all().result()
File "/usr/lib/python3.8/concurrent/futures/_base.py", line 444, in result
return self.__get_result()
File "/usr/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
raise self._exception
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/driver/resultset.py", line 90, in cb
f.result()
File "/usr/lib/python3.8/concurrent/futures/_base.py", line 437, in result
return self.__get_result()
File "/usr/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
raise self._exception
File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/driver/connection.py", line 90, in _receive
status_code = self._protocol.data_received(data, self._results)
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/driver/protocol.py", line 96, in data_received
message = self._message_serializer.deserialize_message(message)
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/driver/serializer.py", line 280, in deserialize_message
result = self._graphbinary_reader.to_object(b)
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/structure/io/graphbinaryV1.py", line 203, in to_object
return self.deserializers[DataType(bt)].objectify(buff, self, nullable)
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/structure/io/graphbinaryV1.py", line 502, in objectify
return cls.is_null(buff, reader, cls._read_list, nullable)
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/structure/io/graphbinaryV1.py", line 231, in is_null
return None if nullable and buff.read(1)[0] == 0x01 else else_opt(buff, reader)
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/structure/io/graphbinaryV1.py", line 509, in _read_list
the_list.append(r.read_object(b))
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/structure/io/graphbinaryV1.py", line 194, in read_object
return self.to_object(b)
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/structure/io/graphbinaryV1.py", line 203, in to_object
return self.deserializers[DataType(bt)].objectify(buff, self, nullable)
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/structure/io/graphbinaryV1.py", line 949, in objectify
return cls.is_null(buff, reader, cls._read_traverser, nullable)
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/structure/io/graphbinaryV1.py", line 231, in is_null
return None if nullable and buff.read(1)[0] == 0x01 else else_opt(buff, reader)
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/structure/io/graphbinaryV1.py", line 954, in _read_traverser
obj = r.read_object(b)
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/structure/io/graphbinaryV1.py", line 194, in read_object
return self.to_object(b)
File "/home/tannersorensen/env/lib/python3.8/site-packages/gremlin_python/structure/io/graphbinaryV1.py", line 203, in to_object
return self.deserializers[DataType(bt)].objectify(buff, self, nullable)
KeyError: <DataType.tree: 43>
Does anyone have an idea what went wrong? Do I need to configure the serialization protocol in some particular way when setting up the Gremlin Server?