Question

I am passing a dictionary of the form

{'twitterid':121212, 'followers':[121,212323,2323,1221]}

to the function createVertex

def createVertex(userDict):
    vertex = g.vertices.create(twitterid=userDict['twitterid'])
    g.vertices.update(vertex.eid, userDict)

    while not 'followers' in list(vertex.data().iterkeys()):
        print "trying " + str(vertex.twitterid)

    return vertex

It gets stuck in while loop. I suspect there is a "commit" issue in update or a race issue. Can someone advise how to fix this problem?

Thanks

Was it helpful?

Solution

No race condition. vertex doesn't contain userDict in the example you provided because update() doesn't modify it. Use save() instead:

def createVertex(userDict):
    vertex = g.vertices.create(twitterid=userDict['twitterid'])

    vertex.followers = userDict['followers']
    vertex.save()

    return vertex

See https://github.com/espeed/bulbs/blob/master/bulbs/element.py#L505

However, you can do all of the above in one step:

vertex = g.vertices.create(userDict)

See https://github.com/espeed/bulbs/blob/master/bulbs/element.py#L551

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top