*Here is a minimal example :*
from graph_tool.all import *
g=load_graph('test.xml')
_vertexIds = g.vertex_properties["_graphml_vertex_id"]
_edgeIds = g.edge_properties["_graphml_edge_id"]

*test.xml:*
<?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"; xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="
http://graphml.graphdrawing.org/xmlns
http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd";>
<key id="o" for="node" attr.name="origin" attr.type="double"/>
<key id="d" for="node" attr.name="destination" attr.type="double"/>
<key id="w" for="edge" attr.name="weight" attr.type="double"/>
<key id="n" for="edge" attr.name="name" attr.type="int"/>
<graph id="G" edgedefault="directed">
<node id="65091">
<data key="o">0.0</data>
<data key="d">6.76759405264e-06</data>
</node>
<edge id="1" source="65091" target="65221">
<data key="w">192.49624317</data>
<data key="n">1</data>
</edge>
<node id="16071">
<data key="o">5.41539461304e-05</data>
<data key="d">2.03027821579e-05</data>
</node>
<edge id="2" source="16071" target="16081">
<data key="w">269.676249521</data>
<data key="n">2</data>
</edge>
<edge id="3" source="16071" target="16061">
<data key="w">299.894548773</data>
<data key="n">3</data>
</edge>
</graph>
</graphml>


*The error message:*
Traceback (most recent call last):
  File "test.py", line 4, in <module>
    _edgeIds = g.edge_properties["_graphml_edge_id"]
  File "/usr/lib/python2.7/site-packages/graph_tool/__init__.py", line 995,
in __getitem__
    val = self.get_func(self.g, key)
  File "/usr/lib/python2.7/site-packages/graph_tool/__init__.py", line
1469, in <lambda>
    lambda g, k: g.__properties[("e", k)],
KeyError: ('e', '_graphml_edge_id')



On 29 May 2014 11:32, Tiago de Paula Peixoto <[email protected]> wrote:

> On 05/29/2014 03:43 PM, Flavien Lambert wrote:
> > Hi, is there a way to get the key 'id' of edges in the spirit of the
> vertices one like the following? _vertexIds works but not _edgeIds.
> >
> > g=load_graph(dataFolder+'networkFullyConnected.xml')
> > _vertexIds = g.vertex_properties["_graphml_vertex_id"]
> > _edgeIds = g.edge_properties["_graphml_edge_id"]
>
> The edge property will be there if the edge labeling in the file is not
> canonical. I.e., if in the beginning of the file you have something like
>
>     <graph id="G" edgedefault="undirected" parse.nodeids="canonical"
> parse.edgeids="canonical" parse.order="nodesfirst">
>
> that means that both the edge and node ids are canonical, and in that
> case the properties will not be available.
>
> I've tested with non-canonical labellings and I see both properties. If
> you see otherwise, please provide a short example.
>
> Best,
> Tiago
>
> --
> Tiago de Paula Peixoto <[email protected]>
>
>
> _______________________________________________
> graph-tool mailing list
> [email protected]
> http://lists.skewed.de/mailman/listinfo/graph-tool
>
>
_______________________________________________
graph-tool mailing list
[email protected]
http://lists.skewed.de/mailman/listinfo/graph-tool

Reply via email to