Невозможно добавить вершину с помощью Python в верстаке Neptune

Я пытаюсь собрать демонстрацию Neptune, используя Neptune workbench, но что-то не работает. У меня есть этот блок:

from __future__  import print_function  # Python 2/3 compatibility

from gremlin_python import statics
from gremlin_python.structure.graph import Graph
from gremlin_python.process.graph_traversal import __
from gremlin_python.process.strategies import *
from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection

graph = Graph()

cluster_url = #my cluster

remoteConn = DriverRemoteConnection( f'wss://{cluster_url}:8182/gremlin','g')

g = graph.traversal().withRemote(remoteConn)


import uuid

tmp = uuid.uuid4()
tmp_id=str(id)

def get_id(name):
    uid = uuid.uuid5(uuid.NAMESPACE_DNS, f"{name}.licensing.company.com")
    return str(uid)


def add_sku(name):
    tmp_id = get_id(name)
    g.addV('SKU').property('id', tmp_id, 'name', name)
    return name

def get_values():
    return g.V().properties().toList()


Проблема в том, что вызов add_sku не приводит к добавлению вершины к графу. Выполнение той же операции в ячейке с помощью магии гремлина работает, и я могу получать значения через python, но не могу добавлять вершины. Кто-нибудь видит, что мне здесь не хватает?


person lostinplace    schedule 28.05.2020    source источник


Ответы (1)


Код Python не работает, поскольку в нем отсутствует этап терминала (next () или iterate ()) в конце, что заставляет его выполнить оценку. Если вы добавите этап терминала, он должен работать:

g.addV('SKU').property('id', tmp_id, 'name', name).next()
person bechbd    schedule 28.05.2020
comment
для людей, приземляющихся на это, я использовал .iterate() вместо .next() - person lostinplace; 29.05.2020