Hi Tiago,

I managed to get a self contained example. The strange behaviour appears when filtering/unfiltering between the moment I update the edge list propertymap and the moment I query this list.

Here's the code:

https://gist.github.com/glyg/2005df62820d35e7efe4


And here's the output:


*********************************
gt version:
 2.2.35 (commit c32ffd6c, Thu Sep 11 16:39:47 2014 +0200)

sytem info:
 3.4.1 |Anaconda 2.1.0 (64-bit)| (default, Sep 10 2014, 17:10:18) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
*********************************
A simple graph:

<Graph object, undirected, with 400 vertices and 1121 edges at 0x7fe8ad23fa58>
Filtered graph has 200 vertices
vertex 0 neighbours: ['(0, 21)', '(0, 20)']
Looking for (0, 21) in the neighbours:
 False
Looking for (0, 21) in the neighbours:
 True


Le 14/10/2014 08:59, Tiago de Paula Peixoto a écrit :
On 12.10.2014 16:19, Guillaume Gay wrote:
Here is maybe a code snippet demonstrating what I can't understand:

|>>> j_e = eptm.graph.edge(4747, 2693)

print('looking for: {}'.format(j_e))
looking for: (4747, 2693)
## List of edges we're looking in:''')
for e in eptm.cells.junctions[mother_cell]:
   print(e)
(4747, 2693) (4747, 2692) (980, 2693) (4989, 980) (4989, 4990) (4990, 2692)
print('\n Is {} in the list? {}'.format(
    j_e, j_e in eptm.cells.junctions[mother_cell]))
Is (4747, 2693) in the list? False|

Here, |eptm| and |eptm.cells| are just container classes, and |eptm.cells.junctions| is a dictionary with the graphs vertices as keys.
Well, I can't reproduce this:

      >>> l = [g.edge(76, 62)]
      >>> g.edge(76, 62) in l
      True

Are you sure your list contains Edge instances, and not tuples?

Unfortunately, without a self-contained example, I cannot investigate
further.

Best,
Tiago



_______________________________________________
graph-tool mailing list
graph-tool@skewed.de
http://lists.skewed.de/mailman/listinfo/graph-tool