espeed / bulbs

A Python persistence framework for graph databases like Neo4j, OrientDB and Titan.
http://bulbflow.org
Other
622 stars 83 forks source link

Identical vertices are equal but not identical #148

Open barraponto opened 9 years ago

barraponto commented 9 years ago

If you lookup the same vertex (or edge) twice:

V_a = graph.vertices.index.lookup(somelabel=someid).next()
V_b = graph.vertices.index.lookup(somelabel=someid).next()

Then they're considered equal:

V_a == V_b # true

But not identical:

V_a is V_b # false

A consequence of this behavior is that set([V_a, V_b]) will return a set with two equal elements although I would expect only one.

This comes from bulbs.element.Element implementing __eq__ but not __hash__.