Передача чисел в гремлин через гоблина в питоне

Я хотел бы повторить немного прохождения в гремлине, как это:

g.V(1).repeat(out()).times(1)

с использованием goblin пакет для Python, и по умолчанию titan11 установить (что, я думаю, Titan+ Casssandra+ Gremlin+ Elassearch, но, ну, этот материал сбивает с толку).

В Python я пишу более или менее точно так же, как и выше, после выполнения некоторых специальных импортов:

from gremlin_python import statics
from gremlin_python.process.graph_traversal import __
statics.load_statics(globals())

# ... lots of other badass async python stuff and some networkx stuff etc

sg = g.V(seed_id).repeat(out()).times(1)

(см. https://github.com/mikedewar/graphLearning/blob/master/conditional_traversal.py для всех остальных битов и бобов, если вы думаете, что это может помочь)

Когда я перебираю sg Обход с помощью гоблина Я получаю ошибку Java от, я думаю, gremlin:

goblin.exception.GremlinServerError: 597: No signature of method: org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.times() is applicable for argument types: (java.lang.Long) values: [1]
Possible solutions: toSet(), size(), min(), take(int), sleep(long), is(java.lang.Object)

Поэтому я думаю, что, возможно, ему не нравится целое число, которое я передаю ему.

Пожалуйста помоги! Я хотел бы иметь возможность повторить вещи в Гремлине.

1 ответ

Решение

Это ошибка в старой реализации Groovy-транслятора, которая поставляется с Goblin для обеспечения обратной совместимости с GraphSON version 1. Это приводило к тому, что все целые числа были сериализованы как long. Поскольку times Подпись метода ожидает целое число, это привело к ошибке. Я исправил это с помощью этого коммита. Это исправление будет включено в следующий выпуск. Сейчас, пожалуйста, установите с Github:

pip install git+https://github.com/ZEROFAIL/goblin.git

Я понимаю, что вы не уверены в источнике этой проблемы, но, возможно, в будущем лучше начать с проблемы с Github.

Другие вопросы по тегам